|
STM32F103VCT6无法串口ISP问题解决
STM32F103VCT6(同一批次) 无法串口ISP下载程序终于解决
不过解决的方法真是郁闷又痛苦:居然是换MAX3232芯片,太痛苦了,一大批啊
下面来说说怎么郁闷的:
1.不能ISP的板子用自己写的串口测试程序从9600~115200的波特率都测试没问题
2.不能ISP的板子用115200,57600波特率基本都能识别芯片,用低波特率9600,19200反而不能识别
3.目前测试的情况看大约80%板子不能ISP,其他正常
4.MAX3232这次换的是上次买的,同一个供应商(经常在那儿买,如果他卖假货我估计早出问题)
所以感觉跟MAX3232关系不大,也有点关系,要不换了芯片不可能好了。
基于上面的现象做了以下分析:
1.我的程序和ST的ISP一个能通信,一个不能通信,相同硬件情况下那么我们就来分析软件上的不同
2.我的程序使用固定波特率,ST的ISP使用自动波特率,刚开始要做自适应处理
3.我的程序使用外部8M晶体,STM32进入ISP状态时晶体是无波形的,那么就应该使用的内部RC。
如果上面的分析都没错的话,我觉得问题就应该出在这里,内部RC本身参数一致性太差,与晶体不是一个
级别一般做通信都不建议使用。我不知道是否是我这批STM32F103VCT6才有该问题,因为我也用了STM32
48脚,64脚,100脚,至少5种型号CPU,第1次遇上该问题。
另外我测试了换之前的MAX3232和换之后的MAX3232波形,真看不出来有什么不同的
希望ST的人证实一下,另外提醒使用STM32芯片的同志编程接口最好保留2种方式,以前我的产品都是只
留了ISP接口,要是遇到这次的问题那就惨了。
STM32 的ISP程序应该识别有外部时钟就用外部时钟这样是不是好点呢 |
|