l12723101 发表于 2024-2-6 01:08:11

关于IO输出电流的问题

最近需要用到PWM控制数码管亮度,于是产生了一个问题:IO口输出电流的20ma驱动能力具体是指什么?如果我从p0.0通过100欧限流电阻输出1khz占空比为10%的PWM波,那么输出的电流值是20x10%=2ma还是50x10%=5ma?,因为输出是数码管,驱动电流不大,不希望数码管因为io口限流出现复杂的亮度不一的情况,最后,这样的限流是怎么实现的?按照io口电路来看推挽输出应该是直接短接电源和地的,怎么实现的这种软电流限制?

王昱顺 发表于 2024-2-6 01:38:30

第一个问题,首先这个20ma是安全电流,就是说输出20ma以下都是安全的。以上虽然不会立刻芯片爆掉,但总归是会有发热影响的。
其次,数码管作为发光二极管是要采用二极管导通压降计算电流的,实际的电流计算应该是(电源电压-发光二极管导通压降)/总电阻(也就是限流电阻),因为二极管并非感性元器件,所以电流计算并不能按照百分比削弱,需要按照导通的最大峰值。使用了pwm,削弱的只有等效亮度和平均功率。
最后的亮度不均匀问题,最好的解决方案应该是通过软件实现每个段的动态刷新,这样同一瞬时时间只亮一个段码,就不会出现因为电流分配问题出现的亮度不均了

感应加热007 发表于 2024-2-6 06:19:44

点灯的话建议你去参考官方的试验箱,里面数码管多多的,亮度嘎嘎的,优秀例程看懂了再来讨论

21cnsound 发表于 2024-2-6 08:48:35

如果单片机直接驱动数码管,一般用共阳的,阳极公共端接VCC,对单片机来说是灌电流,灌电流远比拉电流的最大值20ma大,具体多少不记得了。
另外,LED的亮度和PWM的占空比不是线性关系,需要实际测试转换一下。

神农鼎 发表于 2024-2-6 10:08:45


神农鼎 发表于 2024-2-6 10:09:33


神农鼎 发表于 2024-2-6 10:11:17







hhh402 发表于 2024-2-6 15:56:10

神农鼎 发表于 2024-2-6 10:11


一直想找IO口电流资料,最新STC8H手册才有,还想问一下IO口20ma是指长期通电电流吧?如果是短时间1ms以下可以通过多大电流?有没有做过破坏性试验多少电流会烧毁IO?
表格给出了80ma对应压降,是否说明短时间内80ma不烧IO?

l12723101 发表于 2024-2-6 15:58:23

王昱顺 发表于 2024-2-6 01:38
第一个问题,首先这个20ma是安全电流,就是说输出20ma以下都是安全的。以上虽然不会立刻芯片爆掉,但总归是 ...

就是扫描方式,但是考虑到io电流限制,数码管最大电流就只能按(最大电流/扫描段数)来,这样的话两个断码每个位平均下来最大2-3ma,再加上有pwm调光所以担心亮度不够以及各笔位亮度不一的问题,如果采用位扫描,电流更小,1ma都不到了,而且太消耗资源,所以最好是能接受超过20ma的脉冲电流

l12723101 发表于 2024-2-6 16:00:31

21cnsound 发表于 2024-2-6 08:48
如果单片机直接驱动数码管,一般用共阳的,阳极公共端接VCC,对单片机来说是灌电流,灌电流远比拉电流的最 ...

我用公共端做片选的,推挽输出不需要考虑拉还是灌,输出能力差不多,线性关系已经转换过了,现在就是对这个io输出的特性不清楚,20ma是持续电流还是峰值电流
页: [1] 2
查看完整版本: 关于IO输出电流的问题