我们以KEA64系列来学习FTM, 其中KEA64系列包括:
- SKEAZN16AMLC®
- SKEAZN32AMLC®
- SKEAZN64AMLC®
- SKEAZN32AMLH®
- SKEAZN64AMLH®
其它系列的和KEA64类似,但也有点不同,具体要看各自的参考手册。
FTM的资源
- 两个双通道FlexTimer/PWM (FTM0和FTM1)
- FTM0:FTM0_CH0 和 FTM0_CH1,外部时钟输入FTM0_CLK
- FTM1:FTM1_CH0 和 FTM1_CH1,外部时钟输入FTM1_CLK
- 一个6通道FlexTimer/PWM (FTM2)
- FTM2_CH0
- FTM2_CH1
- FTM2_CH2
- FTM2_CH3
- FTM2_CH4
- FTM2_CH5
- 外部时钟输入FTM2_CLK
- 错误输入FTM2_FLT1 和 FTM2_FLT2
FTM的框图
FTM的时钟,可以选择 :
- no clock selected(FTM counter disable)
- system clock (BUS_CLK, 即TIMER_CLK)
- fixed frequency clock ( ICSFFCLK, 31.25KHz)
- external clock
PWM
基本步骤:
- 初始化时钟
- FEE mode, 40 MHz system clock, 20 MHz TIMER_CLK
- 初始化FTM模块的相关寄存器
- 配置PWM输出管脚
- 初始化PWM
- 启动PWM
Edge-Aligned PWM (Low-true pulses, set Output on match)
- DECAPEN = 0
- COMBINE = 0
- CPWMS = 0 (FTMx_SC)
- MSnB:MSnA = 1X (FTMx_CnSC)
- ELSnB:ELSnA = 0X (FTMx_CnSC)
Output Compare
TODO
Input capture
TODO
Pulse Width Timer
TODO
小结
TODO