关于Arduino复位电路的设计思考
最近在设计一个更加简洁的Arduino开发板,这个开发板只会留出来6个完全一样的4p 接口,可以插接BIT系列模块。
在设计的过程中还是遇到了一个小问题作此总结。是关于一个复位电路的,先看下如下这个复位电路的原理图:
看起来很简单,MCU_RST连接到atmega328的的复位引脚,CH340_RST连接到ch340的rst引脚,这个引脚功能是在下载时候让IDE软件控制 arduino复位。c8设计的是个上电复位电容,s1是手动复位按键。R6是上拉电阻。
焊接完板子测试的时候发现通过Arduino IDE怎么也烧录不进去程序,一直卡在正在下载的地方。
于是用逻辑分析仪抓取c7两端的波形,在arduino ide进行下载的时候,可以看到CH340_RST会拉低,但是到了MCU_RST就没有了复位信号。
刚开始怀疑c7这个电容坏了,但是0.1uf的电容坏了除了被烧也从没讲过会无缘无故有次品的。换了之后事实证明c7并没有问题。
那么就只能从原理上进行个重新的分析,正常MCU_RST一直被R6拉高到高电平,当IDE进行烧录下载的时候CH340_RST引脚会被拉低,这时候c7右端就会变低从而出现一个短暂的充电过程,即c7左端会出现一个短暂的低电平。当c7充满以后,c7的左端恢复到高电平,MCU_RST也编程了高。这中间出现那个短暂的低电平就可以让mcu进行复位。
那现在这个预期短暂的低电平没有出现,那就有可能是相连的其他电路造成的。这时候才想起来去关注到了c8,因为c7在充电的时候c8正好进行了放点。这样原本预期的低电平正好被c7 和c8共同作用下没有了。
卸掉c8,再次实验OK!
请教一下 为什么一定要接C7,如果不接 是否也可以呢? 还有c7 为什么是0.1uF 而不是其他值?
文章里面分析了原理,0.1uf是复位电容常用的值