查看: 1977|回复: 1

[CodeWarrior] 经验:CW6.3调测S08GT16A芯片遇到的几个坑

[复制链接]

该用户从未签到

4

主题

35

帖子

0

注册会员

Rank: 2

积分
134
最后登录
2016-12-16
发表于 2016-7-15 10:13:47 | 显示全部楼层 |阅读模式
最近在调试S08GT16A的程序代码。其中发现了几个坑,给大家分享一下。使用环境CW6.3
芯片S08GT16A
PE模块:IIC(从CW10的版本中copy过来的,修改了一点)、UART(1wire模式)、TIMER1(用于判断串口接收超时以及接收空闲)、RTI、中断(KBIP4)


坑1:调测程序时,发现通过串口下发测试指令到单片机,要求单片机返回一个IIC上挂的E2PROM内指定地址存储的数据值。下发指令以1s间隔下发,结果一般到10次左右,返回的值就不对了,而且很快就复位了,原因是ILAD。

分析解决:示波器抓取IIC波形发现,下发的地址就不对。在仿真器中跟踪,最后发现在程序运行中存储IIC地址的变量被修改了。进一步分析发现是运行到TIMER时产生的。我在此用的是TIMERINT模块。发现该问题后,改用FREECNTR8计数器,结果发现问题还是存在。

最后自己写定时器的中断以及一些函数,只用PE 产生Init_TPM,问题就不复现了。


坑2:设定允许STOP3模式,结果实测发现待机状态下电流有2mA。


分析解决:该芯片的IO管脚默认为输入模式,且无上拉电阻配置。最初程序对此并未配置。后来将不用的IO管脚配置为上拉后电流降低到0.1mA。程序中使用外部时钟,关闭LVD功能,按手册参数电流应该在5uA左右。后来尝试将PTG口设置内部上拉(实际PTG口3个管脚分别用于BKGD/MS、XTAL、EXTAL)电流就降低到5uA了。
BKGD/MS外部已经有10K电阻上拉,另外2个管脚用于外部时钟,按照一般想法这个应该不用配置PTGPE寄存器上拉了,但是实际是需要的。


我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

16

主题

199

帖子

2

中级会员

Rank: 3Rank: 3

积分
443
最后登录
2019-12-24
发表于 2016-7-15 13:03:20 | 显示全部楼层
谢谢楼主的经验分享。
楼主的坑并不一定是坑,V6.3中是有GT16A的,为什么要从CW10中拷贝PE模块,都是PE但不兼容,拿过来用是有问题的,用V6.3的PE就不一定就是坑。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 14:26 , Processed in 0.081890 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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