#前置
通常,无法下载/下载失败,是由以下原因造成的:
- 模块没有开机(应测量vddio电压是否为2.8v);
- 串口线波特率不支持921600;
- 串口线接线错误(应tx-rx,rx-tx接线);
- 串口线和模块没有共地;
- 串口线的驱动存在异常;
- 模块供电不稳,导致运行失稳;
- 电脑u口带宽不足;
- 模块损坏。
#病例
客户反应无法下载。经过排查:
- 串口线是ft232芯片,稳定支持921600;
- 已经共地,且接线正确;
- 驱动完好,其他开发板可以正常下载、调试;
- 供电正常,几乎没有跌落;
- 模块已经正常开机,vddio为2.8v。
经过上述排查,认为基本情况正常。初步怀疑可能是模块局部损坏,导致能正常开机,但是无法下载。让客户测量host_uart tx/rx电压均为2.8v,属于正常值。
常见的可能性和排除方法,都试了,一筹莫展。
#灵机一动
忽然想到,有没有可能是焊接问题导致的通信异常呢?遂让客户进行排查:
- host_uart_tx —> 插针
- host_uart_rx —> 插针
- host_uart_tx —> host_uart_rx
- 其他针脚
通过这个方式,判断是否贴片时,某些针脚短路导致无法下载。经过客户确认,发现vddio和host_uart_rx短路:
排除短路后,可以正常下载:
由于vddio和host_uart_rx都是2.8v,所以测量电压时,没有及时发现这个问题,但是下载时,会导致通信异常,导致下载失败。