1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
8 内核模块 8.1 Systick 使用介绍? 问题: 想使用 KL25 的 Systick 时钟,但却找不到 Systick 的具体介绍文档? 答案: Systick 时钟是 ARM Cortex 架构的可裁剪模块,存在于 NVIC 中(但大多数 IC 厂商都没有将其裁剪掉)。Kinetis 系列 MCU 的参考手册没有包含 Systick 的详 细介绍,但你可以通过 ARM 官网的 ARM Information Center 了解 Systick 时钟的寄 存器组成和具体介绍。 8.2 KL 系列 中 Systick 的可选时钟源有哪些? 问题: KL 系列的 Systick 可选时钟源为哪些?分别为多少? 答案: KL 系列的 Systick 时钟源可以通过内核的 systick 的控制状态寄存器中的 CLKSOURCE 位来选择,如果 CLKSOURCE=1, 则表示时钟选择为芯片内核 时钟; 如果 CLKSOURCE=0 ,则时钟由具体的 MCU 设计决定,kinetis 的 L 系列为 芯片内 核时钟除以 16。 8.3 Systick 的工作模式 问题: Systick 是否可以作为普通的定时器使用?可以工作在哪些模式下? 答案: systick 是可以作为普通的定时器使用的,关于 systick 可以工作在哪些模式 下,由于 Systick 时钟都是由内核时钟或者内核时钟的 16 分之 1 决定,而内核时钟 的只能在 RUN 模式以及 VLPR 模式下可以工作,其他模式下都是关闭的。所以 systick 也只能工作在 RUN 模式以及 VLPR 模式下。 8.4 Systick 的参考代码 问题: 官方是否有关于 Systick 相关的代码? 答案: 目前虽然没有独立关于 systick 的工程,但是在官方的 KL25 的 sample code 中还是有关于 systick 的代码可以参考,比如在 KL25_SC 中的 low_power_demo 工 程的 low_power_demo.c 中就有关于 systick 的代码。关于 systick 代码的初始化,也 可以参考如下的代码: void vfnPSYSTICK (void) { /* Set the core clk as clk so urce and pend the SysTick interrupt */ SYST_CSR |= SysTick_CSR_CLKSOURCE_MASK | SysTick_CSR_TICKINT_MASK; /* set the reload value */ SYST_RVR = 0x000000FF; /* Enable the SysTick */ SYST_CSR |= SysTick_CSR_ENABLE_MASK; } 9 TPM 模块 9.1 TPM 频率配置 问题: 我用 PE 工具新建了一个关于 TPM 应用的工程,在工程中将 TPM 模块配置 成中心对齐 PWM 模式,所以我想知道 PWM 的频率设置与哪些寄存器有关?根据 用户手册给出的 TPM 输出 PW M 周期计算公式(如下图 1 所示),即 T= (MOD x Time Step) / 2 。 但这与参考手册中关于 TPM 模块的 Up-Down Counting 计数模式(图 2 所示)相矛 盾。我觉得 PW M 周期计算公式为:T= (MOD x Time Step) × 2。 答案: 已确认图 1 所示的 TPM 周期计算公式为用户手册的文档错误,我会联系飞 思卡尔文档部门尽快予以修改,感谢你的问题。 9.2 TPM 模式配置 问题: 在设置 TPM 模块的时候,使用下面的操作一个寄存器, TPM1_C1SC |= TPM_CnSC_ELSA_MASK; TPM1_C1SC |= TPM_CnSC_ELSB_MASK; 运行第二句的时候,就不起作用了,为什么? 答案: 你需要这样操作: TPM1_C1SC = TPM_CnSC_ELSA_MASK | TPM_CnSC_ELSB_MASK; 因为,根据 reference manual 中的一句话:“When switching from on e channel mode to a different channel mode, the channel must first be disabled and this must be acknowledged in the LPTPM counter clock domain.”所以你上面的操作方式 会被视为一次模式切换,建议使用一条语句操作。 9.3 中心对齐(Center-aligned)PWM 生成 问题: 请问在 CW10.4 下,使用 PE 配置 TPM 输出 Center-aligned PWM,当工程编 译成功并烧录到 MCU 后,利用示波器观察输出的 PWM,发现并无任何的 PWM 波输出,这是怎么回事呢? 答案: PE 生成的 TPM 代码有个 Bug,这将在下一版的 PE 中更正。你需要 将 Channel (n) Status and Control (TPMx_CnSC)寄存器相关代码改成如下配置: /*TPM0_C0SC: ??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0, ??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,CHF=0,CHIE=0,ELSB=1,E LSA=0,??=0,DMA=0 */ TPM0_C0SC = (uint32_t)((TPM0_C0SC & (uint32_t)~(uint32_t)( TPM_CnSC_CHF_MASK | TPM_CnSC_CHIE_MASK | TPM_CnSC_ELSA_MASK | TPM_CnSC_DMA_MASK | 0xFFFFFF02U )) | (uint32_t)( TPM_CnSC_ELSB_MASK | TPM_CnSC_MSB_MASK )); 具体信息参看下图:
|
|
相关推荐
1个回答
|
|
谢谢楼主分享
|
|
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36421 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4867 浏览 1 评论
6108 浏览 1 评论
6818 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4249 浏览 0 评论
645浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
641浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
643浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
729浏览 2评论
844浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 12:20 , Processed in 1.030643 second(s), Total 48, Slave 41 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号