问题描述
自己绘制了一套基于Arduino MEGA的电路,没有在板子上面绘制CH340的标准下载电路,只保留了UART0的插针用于调试和下载程序。
使用ISP烧录完bootloader后,发现无法使用USB-TTL工具烧录程序
问题解决过程
在网上搜索了相关资料,发现有两个解决方法
1、在编译完成,出现上传时,按一下复位按钮
2、使用带有DTR的USB转TTL工具
先测试方法一,按下面方式连接
开发板 | USB-TTL |
---|---|
RX | TX |
TX | RX |
GND | GND |
在编译完成,出现“上传”时,按下复位按钮。发现仍旧无法烧录。
怀疑两个问题:
1、焊接问题,RX TX收发不正常。使用ISP工具烧录了带有UART0功能的代码,运行正常,排除这个问题。
2、RST电路有问题。在程序运行时,按下复位键,程序可以重新运行,排除。
截止到这儿,就只能试下带有DRT功能的USB-TTL工具了。这种工具比较难找,正好手上有一个。
开发板 | USB-TTL |
---|---|
RX | TX |
TX | RX |
RESET | DTR(中间加0.1uF电容耦合) |
GND | GND |
该电路不是直接接入到开发板上的,需要用一个0.1uF的耦合电容,来产生一个瞬变的复位脉冲,具体电路如下图所示: |
使用4芯杜邦线,其中一个线中间剪开,焊接了一个0.1uf的电容。上机测试。
点击“上传”后,发现仍旧不能正常上传。继续排查与标准Arduino MEGA电路的区别。发现自己绘制的电路中,复位电路使用了0.1uF的电容,怀疑是不是这个电容容值过大导致的。
这个是否影响信号需要使用示波器进行观察,但本着试试改小能不能解决问题的思路,没有对波形进行测试。直接将该电容改成了pf级别的电容。
更改电容后,能够正常上传。至此问题解决。
问题总结
1、电路参考的时候,最小系统电路要保证完整。包括电源、下载电路(这儿还有ISP)、复位电路、晶振电路
2、电路有问题时,需要对能够导致问题的各部分电路先进行功能测试,保证焊接没有问题、原理图连接时对的。
3、网上的解决方案并不一定都能用,有时候还是需要自己做尝试。