[汽车MCU – KEA] 终于搞定KEA串口波特率配置,外部时钟

[复制链接]
 楼主| Reuterking 发表于 2015-12-9 18:20 | 显示全部楼层 |阅读模式
这几天在使用CW调试KEA的串口波特率,一波三折。

仍然不是很清楚,CW的PE配置之后该怎么调用以确保所需配置是自己要的。是不是都是要在Main函数中再次调用后,然后才生效?暂时先继续下面的串口调试。

最先使用的是内部时钟,通过PLL锁频到40MHz。
开始没有使能slow trim value,后来使能后也没有用——波特率始终不是我通过PE配置的;是否需要在哪里合适调用一直没有看到相关的文档介绍;
然后使用通过PE使能外部时钟(8M),此时内部时钟仍然使用推荐值:32.798KHz——结果无效,甚至无时钟导致芯片无法运行;
然后使用这里推荐的FEI切换到FEE函数,切换有效!但是波特率设置仍然超偏无效;

有意思的是,因为32.798KHz不是40MHz的整数倍,因此,后续的PE配置参数中看到小数点很多。
既然40MHz是PLL的目标值,干脆,就将该值改为31.25KHz,于是大家皆大欢喜——128/1280都不亦乐乎地实现整数倍地处理8MHz,编译后重新下载,19200bps终于实现了!

——因为PE的缘故,看不到内部计算波特率的过程,因此很有可能,在其中的一些环节由于PLL需要锁频到40MHz的缘故,但是推荐值32.798KHz的存在,导致有些数值明显偏出也不做调整,结果导致使用这些数值进行波特率的运算时也超偏了。如果需要验证,可以不使用PLL,而是直接bypass掉,然后使用外部时钟的方式进行波特率设置。
神采奕奕 发表于 2015-12-9 20:02 | 显示全部楼层
学习!!
舒斯特尔 发表于 2015-12-9 20:08 | 显示全部楼层
串口波特率高了误码率有多大?
FSL_TICS_Robin 发表于 2015-12-10 08:57 | 显示全部楼层
由于芯片内部RC时钟源出厂默认频率可能不同,而PE可能统一设置成32.768kHz。 所以建议大家使用PE自动配置前先阅读自己芯片对应的数据手册“OSC and ICS specifications”表格,确定一下“Internal reference clock frequency,factory trimmed,”这个参数。(如下图KEA128的IRC出厂频率就为37.5kHz)
然后再参考【经验分享】使用CodeWarrior10.5软件的PE工具trim芯片内部慢速时钟

【经验分享】KE02芯片OpenSDA调试时IRC频率问题两帖进行配置。

IRC datasheet.jpg

 楼主| Reuterking 发表于 2015-12-10 10:48 | 显示全部楼层

因为后续要使用CAN接口,将不得不使用外部晶振。

本帖最后由 Reuterking 于 2015-12-10 10:56 编辑

单凭CW的默认配置,使用内部时钟时,19200bps应该是52.6us/bit,测试时为45us,达到16.89%了。
hzb32 发表于 2015-12-22 22:38 | 显示全部楼层
使用内部倍频之后的时钟好像不好调到合适的时钟
NXP_TICS_Robin 发表于 2015-12-23 08:55 | 显示全部楼层
hzb32 发表于 2015-12-22 22:38
使用内部倍频之后的时钟好像不好调到合适的时钟

内部时钟得参考我在四楼回复的方式设置,否则会出现问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

6

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部