查看: 5403|回复: 16

求助:HCS08AC60 BOOTLOADER无法获取MCU信息(已解决)

[复制链接]

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
发表于 2014-9-26 11:37:57 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-10-9 14:25 编辑

小弟第一次尝试bootloader,使用了AN2295SW,我将汇编程序中的BOOT_SIG_ENA写成0,不用外部引脚控制,点击上位机连接后,一直提示无法获取MCU信息,调试发现下位机发送的数据不对,为:C2 A0 9D 82 88 B0 98 80 98 A0 FD E6 FD C6 FF E6 82 80 80 A0 A1 83 B6 B0 80 ,跟踪至WRITE程序段中,发现执行到STA      SCDR时,寄存器A中的数值是正确的,但用串口接收到的就不对,比如第一个数值STA    SCDR时,A中的数据是82,但串口接收到的是C2。我一开始怀疑是波特率不对,但是获取MCU之前的通讯都是正常的。

不知道是何原因,请各位帮忙,谢谢!


故障截图

故障截图
回复

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 11:40:53 | 显示全部楼层
具体调试过程如下:
我使用串口助手与下位机建立连接:
打开电源,接收到下位机发送的数据:0xFC
串口助手发送数据:0xFC,未收到下位机信息
串口助手发送数据:0x00,收到下位机信息:0xFC
串口助手发送数据:0x49,收到下位机信息:C2 A0 9D 82 88 B0 98 80 98 A0 FD E6 FD C6 FF E6 82 80 80 A0 A1 83 B6 B0 80
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 11:41:33 | 显示全部楼层
具体调试过程如下:
我使用串口助手与下位机建立连接:
打开电源,接收到下位机发送的数据:0xFC
串口助手发送数据:0xFC,未收到下位机信息
串口助手发送数据:0x00,收到下位机信息:0xFC
串口助手发送数据:0x49,收到下位机信息:C2 A0 9D 82 88 B0 98 80 98 A0 FD E6 FD C6 FF E6 82 80 80 A0 A1 83 B6 B0 80
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 16:10:10 | 显示全部楼层
调试的结果是初始连接后,PC发出0XFC,MCU并不会接收到,直接去接收间断字符,而后调整波特率,再去发出0XFC,这就导致波特率被调整了
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-26 17:33:05 | 显示全部楼层
楼主你好,你把外部的控制引脚给disable, 你怎么进入到bootloader呢?
正常流程点击connect之后要紧接着按下reset按键,让上位机和你的MCU建立链接的。
你使能外部引脚控制再试试。
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-27 09:22:49 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-26 17:33
楼主你好,你把外部的控制引脚给disable, 你怎么进入到bootloader呢?
正常流程点击connect之后要紧接着按 ...

版主你好!
      我个人认为问题不在这里,程序里出了外部引脚控制外,还有个标准模式的,如果外部引脚控制disable,如下:
                                   ; STANDARD MODE OF BOOTLOADER STARTUP
         LDX      #T100MS
L2:      CLRA
L1:      BRSET    RDRF,SCS1,CAUGHT
         DBNZA    L1
         DBNZX    L2
     我通过强制关闭波特率调整后,可以获取MCU信息,但有两个警告,无法写入程序,无法擦除flash
信息栏里的信息如下:
Waiting for HC(S)08/ColdFire/Kinetis reset ACK (timeout: 8s)...received 0xfc (good).


WARNING! The SDID of the device [0x03D] is not (yet) supported!
Check AN2295SW for update!


Bootloader protocol version: 0x02 (S08, read command NOT supported)
CRC protocol NOT supported)
Bootloader version string: 亙f`
System device ID: 0x03D [unknown derivative] rev. 12
Number of memory blocks: 2
Memory block #1: 0x18E0-0x37FF
Memory block #2: 0x38C0-0xFD85
Erase block size: 512 bytes
Write block size: 128 bytes
Original vector table: 0xFF86-0xFFFF
New vector table:      0xFD86-0xFDFF

S19 Image Control.
Parsed S-record lines: 473  Bytes total: 14977
Source address range: 0x1860-0xFFFF


WARNING! S19 image will not fit into available memory (at address 0x1860)!

回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-27 13:48:29 | 显示全部楼层
感觉就是波特率出了问题,但就是不知道该怎样修改
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-9-27 15:35:56 | 显示全部楼层
我测试了下,下位机发送0xfc时,上位机接收的数据是正确的,但发送其他数据是不正确,比如下位机发送0XA8,上位机接收到的数据是0x58
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-28 13:18:54 | 显示全部楼层
yanbin560 发表于 2014-9-27 15:35
我测试了下,下位机发送0xfc时,上位机接收的数据是正确的,但发送其他数据是不正确,比如下位机发送0XA8, ...

那你做一个波特率调整呢。
另外你可以测试下你设置的波特率和实际的波特率是否是匹配的,可以用示波器抓出来看看。
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

60

帖子

0

注册会员

Rank: 2

积分
165
最后登录
1970-1-1
 楼主| 发表于 2014-10-8 08:30:19 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-28 13:18
那你做一个波特率调整呢。
另外你可以测试下你设置的波特率和实际的波特率是否是匹配的,可以用示波器抓 ...

版主好!我调试的结果是接收到上位机时钟调整的命令后,原程序调整幅度是0x80,我改成0x70就好了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-2 22:39 , Processed in 0.102675 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表