26
1035
3169
中级工程师
使用特权
发表回复 本版积分规则 回帖后跳转到最后一页
时间类勋章
人才类勋章
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号
@hjl2832 :好的,非常感谢!我使用下拉电阻,用示波器看了波形,在单片机重启时确实是可以将LE保持为低电平。
@powerwang921 单片机在重启过程中,直到程序初始化完成之前,IO口都是默认不受控制的状态,所有厂家的默认定义都是高阻开漏输入模式,这时用下拉电阻是可以保证IO口为低电平的,程序初始化完成后,IO口才能按照你程序的设定状态执行。
@hjl2832 :你好!请问下,我的程序在正常执行时是要将LE拉高的,就是让输出端跟随输入端,只有在要升级固件需要重启MCU,或者程序跑飞看门狗计数器溢出后重启MCU时才将LE拉低并让它保持这个状态直到重启完成,重新开始执行程序我再将LE拉高,LE加下拉电阻就可以吗?我们硬件工程师说这种情况不能加下拉电阻
@powerwang921 :其实我认为最简单的办法,就是其它老师提出的LE加下拉电阻,你的程序在空闲时一直保持锁存就对了,而不用管程序跑飞,就算复位也不影响LE的状态。
@powerwang921 :我又仔细看了你的提问,其实PIC的看门狗,有一种方法是响应中断,不是复位。那就是MCU设置成休眠模式,这时的看门狗相当于定时器,定时激活后,是唤醒单片机,而不是复位。当然,这个设置,还需要有选项字里设置是否在休眠时开启看门狗。(目前好像只有PIC的单片机支持配置休眠时停止,工作时运行。
@hjl2832 :我现在想我的做法可能是自相矛盾的,希望在程序跑飞的情况下来锁存输出,程序都跑飞了,根本就不可能执行任何代码了。是不是只能通过外部器件来监测程序是不是跑飞了?
@powerwang921 :程序跑飞时触发狗后就会跳到复位,执行硬件复位了,这时锁存输出状态有实际意义吗。与其这样还不如处理好初始化时的锁存输出状态到安全状态。 另外按你的说法,如果真要求锁存输出的安全,还要考虑硬件防异常,毕竟在单片机上电复位至初始化 完成这个过程中,IO口的状态是三态不受控制的。
我有喂狗操作,就是怕程序跑飞时不能及时锁存输出状态。