FSL_TICS_ZP 发表于 2014-9-28 16:10:06

【经验分享】AN2295调试总结

AN2295调试总结
       不久之前,FSL_TICS_ZJJ发布了一篇名为《基于AN2295的K53bootloader修改步骤》的经验分享,以将AN2295代码从默认支持K60移植到K53为例,详细的介绍了移植过程的步骤。
       但有客户反映,按照文章介绍的步骤修改完成后,但在调试过程会有出错发生(如图1所示),这是咋回事呢?难道是文章介绍的步骤不对吗?

图 1 AN2295错误提示
       根据错误提示,我们会发现问题出在MCU在遵循FC协议与PC建立连接过程中,由于无法在Timeout时间段,正确的匹配好串口波特率,而发出可被PC识别的应答信号(0xFC),最终导致MCU无法与PC建立正确的联系。关于FC协议,请参考《 AN2295 bootloader文档解析(一)》文档,在此文档中,已详细介绍过FC协议,所以此文档就不对此做过多介绍啊。
       既然找到问题出处,那就好对症下药啊,经过测试,我决定与大伙分享两个AN2295代码调试的技巧。
       1.波特率公式修改
       在rs232.c中,UART_Initialization()函数用于初始化UART的波特率配置,在rs232.h中,定义了UART_SBR、UART_BRFA的值,当然我们也可以从新定义UART_SBR、UART_BRFA的值,使其配置更加精确,避免MCU进行过多的匹配。
•        UART_Initialization( )

•        UART_SBR与UART_BRFA配置

       2. 连接步骤修改
   在《AN2295—Developer’s Serial Bootloader 解析(三)》中,介绍过上位机软件与Target Device建立连接的步骤,具体如下:
    【1】:选择合适的COM;
    【2】 :选择协定好的波特率;
    【3】:选择User code工程生成的S19文件;
    【4】:点击Connect,接着复位Target,使得Boot loader例程重新运行。
修改:
   【4】:复位Target Device,跟着马上点击Connect,建立连接(如图3所示)

图 3
       大家以后在调试AN2295时,碰到Target Device无法与PC建立连接,不妨使用以上两个技巧试试。

       完整文档下载:
      

FSL_TICS_ZP 发表于 2014-9-28 16:10:55

如有什么错误或者不足,欢迎网友指正,并请在后面跟帖!

32MCU 发表于 2014-9-28 17:32:26

收藏。以后用得着。

FSL_TICS_ZP 发表于 2014-9-29 09:02:06

32MCU 发表于 2014-9-28 17:32
收藏。以后用得着。

谢谢支持,有问题欢迎留贴交流!

huangzzjy22 发表于 2014-9-29 11:39:33

路过,进来飘一下

FSL_TICS_ZP 发表于 2014-9-29 11:44:44

huangzzjy22 发表于 2014-9-29 11:39
路过,进来飘一下

谢谢支持,有问题欢迎留贴交流!

tim 发表于 2014-9-29 11:47:03

飞思卡尔的版主真很尽力,这样用芯片更有信心了

huangzzjy22 发表于 2014-9-29 13:27:44

看上去很nice

FSL_TICS_ZP 发表于 2014-9-29 13:35:26

tim 发表于 2014-9-29 11:47
飞思卡尔的版主真很尽力,这样用芯片更有信心了

谢谢支持,让客户放心的使用FSL芯片是我们的目标!

qchwu 发表于 2014-12-3 13:42:09

这问题是解决了,但是根本原因可能并不是修正了波特率,而是由于CPU系统时钟的不稳定,不同系列的CPU,采用内部晶振后,得到的频率可能会不同,导致串口的波特率也不同。

qchwu 发表于 2014-12-3 13:50:22

本帖最后由 qchwu 于 2014-12-3 13:52 编辑

我目前在做基于AN2295的串口Bootloader,程序在K60D100的开发板上已经能正常工作了,但是将程序移植到K60F120的板子上时,可以进入Bootloader,也可以发送0xFC,但是,当我发送身份验证的命令:0x49时,出来的数据就错误了,但是,分步调试时,所有的数据都正常。
下面是分步运行,正确的数据。


下面是连续运行的错误数据:



串口自适应程序我也试过了,没有效果,

qchwu 发表于 2014-12-3 13:53:49

如果是系统时钟不稳定,那该如何解决呢?

FSL_TICS_ZP 发表于 2014-12-3 13:56:56

qchwu 发表于 2014-12-3 13:53
如果是系统时钟不稳定,那该如何解决呢?

你好,
AN2295串口使用的好像是内部时钟,如果觉得不准或不符合要求的话,可以试试将串口时钟源定义成其他时钟源。

qchwu 发表于 2014-12-3 14:12:18

谢谢您!
外部时钟也试了,进入PEE模式,系统频率100M,总线频率25M,经过测试,觉得还不如内部时钟精度。

qchwu 发表于 2014-12-3 14:15:17

https://community.freescale.com/docs/DOC-95039

qchwu 发表于 2014-12-4 13:44:53

FSL_TICS_ZP 发表于 2014-12-3 13:56
你好,
AN2295串口使用的好像是内部时钟,如果觉得不准或不符合要求的话,可以试试将串口时钟源定义成其 ...

能否有其他的办法解决这个问题?

FSL_TICS_ZP 发表于 2014-12-4 16:07:51

qchwu 发表于 2014-12-3 13:50
我目前在做基于AN2295的串口Bootloader,程序在K60D100的开发板上已经能正常工作了,但是将程序移植到K60F1 ...

你好,
能解释一下你的单步操作是怎样一个流程,我觉得不应该单步正确而全速运行是有问题的啊!

qchwu 发表于 2014-12-4 16:35:05

FSL_TICS_ZP 发表于 2014-12-4 16:07
你好,
能解释一下你的单步操作是怎样一个流程,我觉得不应该单步正确而全速运行是有问题的啊! ...

DEBUG模式下,按F10.分步运行BOOT_CMD_IDENT的函数段。输出就是正确的,

秦天 发表于 2014-12-4 18:26:19

挺不错的分享 以前怎么没看到

zdhxzy1981 发表于 2014-12-5 09:09:32

好贴,必收藏!!!

fengyunyu 发表于 2014-12-23 14:13:19

下载,空了学习下。

lininglive 发表于 2014-12-23 14:59:55

{:smile:}{:smile:}技术贴 赞!

superrf 发表于 2014-12-23 16:36:08

技术贴,学习

vaneno 发表于 2016-4-26 15:44:04

现在我调到这里进行不下去了,发生了什么?
页: [1]
查看完整版本: 【经验分享】AN2295调试总结