我正在努力在G2231项目中嵌入CP2102 USB到串行适配器,以允许BSL刷新新固件,而无需使用Launchpad。 虽然CP2102具有3.3V稳压输出,但在BSL过程中,让G2231由其自身的稳压器供电可能会更简单,具体取决于电路。 但这需要为CP2102提供一种重置G2231的方法,以便它可以在BSL模式下恢复。
我不能只将CP2102的DTR输出连接到/RST,因为当CP2102断电时,其所有线路都会吸收大量电流,这会使/RST引脚保持低电流。 我看到在各种Arduino项目中使用的是通过电容器将DTR连接到/RST。 这使闪存软件可以使DTR线短暂降低以启动重置,然后恢复到高电平,但没有直接直流连接。 文档说我可以在不干扰SBW的情况下将一个2 nF盖从/RST接地,但我会将其转至DTR,而在断电时,DTR实际上是接地的。 当然,我需要确保有足够的电容来克服47k电阻器,使其足够长,足以触发重置。
我的问题是,当插入USB电缆时DTR变高,或者 在启动重置后突然变高时,会发生什么情况。 理论上,这将在/RST处呈现高达6.6V的峰值。 是否认为保护二极管会将多余的电压导回Vcc? 而对于一个耗电量如此之低的芯片,这是否会导致Vcc本身的峰值超过其绝对最大值?
在我看来,唯一真正安全的方法是从/RST添加(Vcc +.2V)齐纳二极管,但如果没有必要,我肯定不会这样做。 实际上,我是否应该不用担心这样小的峰值呢? 很显然,这是为Atmels做的。 你怎么看?