打印
[汽车MCU – KEA]

终于搞定KEA串口波特率配置,外部时钟

[复制链接]
3747|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这几天在使用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频率问题两帖进行配置。



使用特权

评论回复
5
Reuterking|  楼主 | 2015-12-10 10:48 | 只看该作者

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

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

单凭CW的默认配置,使用内部时钟时,19200bps应该是52.6us/bit,测试时为45us,达到16.89%了。

使用特权

评论回复
6
hzb32| | 2015-12-22 22:38 | 只看该作者
使用内部倍频之后的时钟好像不好调到合适的时钟

使用特权

评论回复
7
NXP_TICS_Robin| | 2015-12-23 08:55 | 只看该作者
hzb32 发表于 2015-12-22 22:38
使用内部倍频之后的时钟好像不好调到合适的时钟

内部时钟得参考我在四楼回复的方式设置,否则会出现问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

0

粉丝