请教IO空接如何读为0?
最近想做一个外电平高低检测,不接设备,想IO读状态为0,如何实现?高阻+禁上拉,读回来还是1,IC是8H
现在想到的办法是外加一个下拉电阻,除了此办法,请教各位大侠还有没有其它办法?
设置成开漏试试,不行就把内置下拉电阻开了 御坂美琴我老婆 发表于 2024-8-9 09:09
设置成开漏试试,不行就把内置下拉电阻开了
8H 没有内置下拉 IO设置高阻,外部10K下拉 除了下拉电阻,估计没有其他办法。 本帖最后由 御坂美琴我老婆 于 2024-8-9 11:59 编辑
摇滚一族 发表于 2024-8-9 09:49
8H 没有内置下拉
哦哦,我这边也试了,开漏也确实会读到高电平,你如果不加外置下拉电阻确实不行了,但我也给你想了个昏招
P20=0;//泄放寄生电容
P20=1;//寄生电容开始充电
NOP2();//等待充电
DMABufferTX1 =P20;//读出
这样,设置成开漏,先让检测脚=0,对地下拉,然后再=1,回到不导通的读取状态,这个时候,漏电流会对引脚和板子的寄生电容充电,然后趁他没充满的时候读电平,由于如果有外接高电平的情况下,对这个寄生电容充电就会快,可以根据你要检测的外部高电平的输出能力调整等待时间
我这边测试45M主频的情况下,外部高电平为其他IO口,输出能力大概只有几十uA,等待时间要60个nop才能区分,如果外部高电平驱动能力有大概1mA的时候,等待时间只需要2个左右的nop就好,你根据你板子的情况看看能不能调的动
然后要注意的就是这种方法得对地下拉一瞬间,被测试的这个外部高电平的输出能力不能太大,必须有限流,不然会损坏管脚
御坂美琴我老婆 发表于 2024-8-9 11:45
哦哦,我这边也试了,开漏也确实会读到高电平,你如果不加外置下拉电阻确实不行了,但我也给你想了个昏招
...
好主意,我试试,谢谢 高阻状态,芯片管脚自身的泄漏电流不是固定不变的,同一芯片不同管脚,不同芯片,可能读出的结果都不一样.
楼主这个悬空读0的想法一开始就是不合适的.搞研发就怕总体方案出问题.方案不合适的话,后续要花太多精力去补救.
大的多数场合更喜欢开弱上拉然后管脚悬空读1. 好像只能接下拉电阻没其他办法了 网老四 发表于 2024-8-9 14:08
高阻状态,芯片管脚自身的泄漏电流不是固定不变的,同一芯片不同管脚,不同芯片,可能读出的结果都不一样.
楼主 ...
设备不接,显示0,设备接了,根据设备的输出状态显示0或1,这应该是很常见的情况吧
页:
[1]
2