本帖最后由 Libby@ 于 2024-9-12 15:07 编辑
#技术资源# SAML10是一款低功耗32位MCU,为了生成调制的红外信号,使用了可配置逻辑模块(CCL)和定时器计数器(TC)。其中,TC0负责生成红外信号的载波频率,TC1则用于调制信号的生成。CCL的真值表被设置为0x1,对应于NOR逻辑功能。通过调整TC1的比较值,可以实现占空比的变化。为使TC1的比较值和周期动态更新,采用了DMA(直接内存访问),其中两个DMA通道分别将内存中预设的数组数据传输到TC1的寄存器中。这样,系统可以在睡眠模式下自动更新TC1的比较值,而无需唤醒CPU执行相关操作。通过MCC Harmony工具进行配置,极大简化了编写代码过程。 TC0负责生成固定的载波频率
TC1用作调制信号
使用 DMA 来自动更新 TC1 的周期和比较值,动态改变红外信号的调制周期和占空比
为了确保调制信号与载波频率同步,TC1 会在 TC0 产生的溢出事件时递增,所以采用的事件系统EVENT。
CCL的配置,TC0和TC1作为输入,波形通过CCL输出
通过以上配置,生成工程文件,以下是main.c 文件,添加了DMA传输配置及TC1调制波的参数,工作在Standby模式。 最后输出的波形
以上快速配置 SAML10外设 CCL、TC ,结合 DMA和事件,实现一个低功耗编码发送器。
欢迎大家留言讨论
|