nRF52832 — 有关Drive configuration的相关配置

来源:互联网 发布:淘宝卖家那里改包邮 编辑:程序博客网 时间:2024/06/05 21:58

 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 XX  作       者:ZHS(文化人)

 XX  联系方式:982376496@qq.com(联系请注明CSDN)

 XX  版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了

 XX  要说的话:作者水平有限,难免有不足之处,恳请指正!

 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

写在前面在项目开发中,曾遇到过因IO口驱动能力不足导致串口通讯异常的问题,请看这篇博客;当时

不知道什么原因,后来回过头来看这个问题,又查了一些资料,终于找到了答案。


       参考文章1:单击查看(http://blog.sina.com.cn/s/blog_1637bc2740102xh9a.html)

       参考文章2:单击查看(http://blog.csdn.net/u011422605/article/details/52468271)

SDK中的相关配置:


配置解释:

The different options specify how a configured GPIO pin sinks current when you set it low (write 0 to the pin) and how a configured pin sources current when you set it high (write 1 to the pin).

  • Standard means the pin will be sourced or sinked with up to 0.5 mA for the assigned signal (high or low)
  • High source means the pin will be sourced with up to 5.0 mA for high signal
  • High sink means the pin will be sinked with up to 15.0 mA for low signal
  • Disconnected means there is no drive, the pin is high impedance. Consequently, there is no current flowing to or from the pin, no matter the drive of any external circuit connected to the pin

配置的中文解释:

       主要是修改了IO口的驱动能力,当设置为Standard(S)时,IO口给指定的电平,拉电流和灌电流都高达0.5mA;当设置为High(H)时,IO口输出低电平,灌电流会高达15mA,IO口输出高电平,拉电流会高达5mA;当设置为Disconnect(D)时,IO口为高阻态,如果没有外部上下拉电路,IO口是处在悬浮状态。

还是没明白?别急,且继续往下看~

一、两个概念:

       灌电流(sink current),对一个端口而言,如果电流方向是向其内部流动的则是“灌电流”,比如一个IO通过一个电阻和一个LED连接至VCC,当IO输出为逻辑0时能不能点亮LED,去查该器件手册中sink current参数。
       拉电流(sourcing current),对一个端口而言,如果电流方向是向其外部流动的则是“拉电流”,比如一个IO通过一个电阻和一个LED连至GND,当该IO输出为逻辑1时能不能点亮LED,去查该器件手册中sourcing current参数。

 给一个直观解释


图中PB0输出0,LED会亮,PB0的电流方向是流向PB0也就是灌电流了;

PB1要输出1,LED会亮,PB1的电流方向是从PB1流出,也就是拉电流了。

    拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数,这种说法一般用在数字电路中。    

    这里首先要说明,芯片手册中的拉、灌电流是一个参数值,是芯片在实际电路中允许输出端拉、灌电流的上限值(允许最大值)。而下面要讲的这个概念是电路中的实际值。      

    由于数字电路的输出只有高、低(0,1)两种电平值,高电平输出时,一般是输出端对负载提供电流,其提供电流的数值叫“拉电流”低电平输出时,一般是输出端要吸收负载的电流,其吸收电流的数值叫“灌(入)电流”

    对于输入电流的器件而言:灌入电流和吸收电流都是输入的,灌入电流是被动的,吸收电流是主动的。如果外部电流通过芯片引脚向芯片内‘流入’称为灌电流(被灌入)反之如果内部电流通过芯片引脚从芯片内‘流出’称为拉电流(被拉出)

二、为什么能够衡量输出能力:

    当逻辑门输出端是低电平时,灌入逻辑门的电流称为灌电流,灌电流越大,输出端的低电平就越高。由三极管输出特性曲线也可以看出,灌电流越大,饱和压降越大,低电平越大。

然而,逻辑门的低电平是有一定限制的,它有一个最大值UOLMAX。在逻辑门工作时,不允许超过这个数值,TTL逻辑门的规范规定UOLMAX ≤0.4~0.5V。所以,灌电流有一个上限。
    当逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流。拉电流越大,输出端的高电平就越低。这是因为输出级三极管是有内阻的,内阻上的电压降会使输出电压下降。拉电流越大,输出端的高电平越低。

    然而,逻辑门的高电平是有一定限制的,它有一个最小值UOHMIN。在逻辑门工作时,不允许超过这个数值,TTL逻辑门的规范规定UOHMIN ≥2.4V。所以,拉电流也有一个上限。

    可见,输出端的拉电流和灌电流都有一个上限,否则高电平输出时,拉电流会使输出电平低于UOHMIN;低电平输出时,灌电流会使输出电平高于UOLMAX。所以,拉电流与灌电流反映了输出驱动能力。(芯片的拉、灌电流参数值越大,意味着该芯片可以接更多的负载,因为,例如灌电流是负载给的,负载越多,被灌入的电流越大)
    由于高电平输入电流很小,在微安级,一般可以不必考虑,低电平电流较大,在毫安级。所以,往往低电平的灌电流不超标就不会有问题。用扇出系数来说明逻辑门来驱动同类门的能力,扇出系数No是低电平最大输出电流和低电平最大输入电流的比值