- CH340E内置晶振,且封装较小,对空间有限的地方较友好,但成本也相对高点。同时只RTS#一个可以控制的输出信号,较CH340G等其它信号少了DTR#信号线。如果同时都有DTR#和RTS#的话就可以分别控制STM32的NRST,BOOT0了。
- CH340E 只有一个RTS#信号输出(CTS#只能输入),那就要换个思路了:
- RTS#先通过一个电容隔离来控制NRST复位,同时通过一个三极管来对另一个电容充电,电容又接到BOOT0。
- 由于电容充放电是需要时间的,所以当需要拉高BOOT0时,就通过拉低RTS#时间长点将电容充满电。不需要BOOT0拉高时,RTS#就拉低时间短点。(BOOT0只要在复位时保持一段时间高电平就能让STM32进入ISP模式,不需要一直保持)
- 用万用表量BOOT0对地时,发现有500K左右的电阻。所以 BOOT0接的电容会自行放电,不需要再接电阻了。同时上拉电阻也不能太大,以保证电容的最终电压足够高来触发BOOT0。BOOT0接的电容也要足够大来保证放电时间足够长。
- 修改R33,R36,C15来修改充电时间,修改C15来修改放电时间。C15容量越大充放电时间越长
最终控制方式:
1.正常复位时,RTS# 低电平时间为5ms(<10ms),高电平时间为5ms(<10ms),空闲为高电平。为保证成功率,可翻多转2次。
2.进入ISP时,RTS# 低电平时为1000ms(>250ms),然后正常复位