打印
[Kinetis]

KEA串口波特率配置,外部时钟

[复制链接]
1125|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
500days|  楼主 | 2016-1-18 20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天在使用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掉,然后使用外部时钟的方式进行波特率设置。

相关帖子

沙发
Bermanrep| | 2016-1-19 20:55 | 只看该作者
19200的话误码率有多少?

使用特权

评论回复
板凳
fortunely| | 2016-1-19 23:54 | 只看该作者
内核参考时钟使用8MHz外部晶振时,设置RDIV = 256,
8M/256 * 1280 = 40MHz ,其中pll倍频1280,参考芯片手册page116 (In FEE mode, FLL output frequency = OSC/RDIV *1280. Select the OSC and RDIV carefully to keep the FLL output
frequency within the limits.)

“有意思的是,因为32.798KHz不是40MHz的整数倍”, 你没有理解,准确来说应该是使用内部参考时钟时,内部时钟是可以直接通过pll倍频而不需要分频的,参考Page112, page286图
48MHz对应37.5kHz, 40MHz对应31.25kHz。
至于SCTRIM的作用原理尚不清楚。


使用特权

评论回复
地板
dentsgot| | 2016-1-21 18:18 | 只看该作者
这个是不是也支持低功耗啊,低功耗波特率能达到多少?

使用特权

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

本版积分规则

17

主题

120

帖子

3

粉丝