PWM硬件触发ADC

需要配置四个外设来实现PWM硬件触发ADC采样:eFlexPWM、ADC、XBARA、ADC_ETC

eFlexPWM

Enhanced Flex Pulse Width Modulator (eFlexPWM)

在配置完PWM的主要寄存器后,可以找一个输出触发寄存器:Output Trigger Control Register (SM0TCTRL - SM3TCTRL)
在这里插入图片描述
OUT_TRIG_EN位,可以知道PWM的输出触发为PWM_OUT_TRIG0和PWM_OUT_TRIG1,其中VAL0、VAL2和VAL4用于生成PWM_OUT_TRIG0,VAL1、VAL3和VAL5用于生成PWM_OUT_TRIG1。只要计数器值与VALx值匹配,PWM_OUT_TRIGx信号就会被置位。
因为方波控制电机需要在PWM高电平中间触发ADC,PWM设置为有符号中央对齐,那么VAL0生成触发正好在PWM高电平中间。

设计注意事项:
• 复位后,PWM输出引脚设置为带有内部弱上拉电阻(约2.0 V)的输入端口,或者默认情况下需要在引脚附近连接一个强外部下拉或上拉电阻(1-10kΩ)确保在不确定条件下的安全状态。防止MOS全打开导致短路。
• 无论占空比和时钟设置如何,有两种方法可以手动禁用PWM输出:
- 通过清零PWM_OUTEN的相应位禁用PWM输出,这将导致PWM引脚上的三态输出。
- 通过设置PWM_MASK的相应位,然后设置FORCE_OUT事件来禁用PWM输出,这将导致PWM引脚输出极性之前的逻辑0输出。

XBARA

Inter-Peripheral Crossbar Switch A (XBARA)
在这里插入图片描述
通过XBARA的框图可以看到外设之间可以随意连接,但是发现不能直接连接到ADC,而是先连接到ADC_ETC,然后ADC_ETC再连接ADC。那么设置PWM1的某个VAL值为TRGO,通过XBARA连接ADC_ETC即可。

通过查表可以知道PWM1的子模块1的触发输出为XBARA_IN40。
在这里插入图片描述
对应的ADC_ETC的XBARA输出为XBARA1_OUT103。
在这里插入图片描述
通过观察寄存器,发现需要配置Crossbar A Select Register 51 (XBARA_SEL51)寄存器,输入(XBARA_INn)要复用到XBARA_OUT102。
在这里插入图片描述
那么配置程序为:
在这里插入图片描述
这样就将PWM连接到ADC_ETC上,接下来配置ADC_ETC外设。

ADC_ETC(ADC外部触发控制)

ADC External Trigger Control (ADC_ETC)

①每个ADC_ETC有两个通道,每个通道支持四个从XBARA连接过来的ADC模块的外部触发事件,最多8个ADC外部触发源
(TRG0 ~ TRG7),每个TRIG包含8个链(CHAIN),每个链对应一个ADC通道。
②ADC_ETC有两个复位,ipg_hard_async_reset_b和sw_reset_n
③当ADC完成转换时,ADC将完整的adc_coco信号发送给ETC,然后ETC将正确的ADC转换结果存储到内部寄存器中,并清除adc_coco信号。
④8个TRGO,每个TRGO包含控制寄存器(CRTL)、计数寄存器(COUNTER)、链寄存器(CHAIN)、结果寄存器(RESULT)
⑤每两个TRG为1组,每个TRG可以配置8个ADC通道。
⑥每个ADC触发器都有独立的软件配置,包括中断使能(IE),背靠背ADC触发(B2B),HWTS和CSEL到ADC。 ADC_ETC有四个中断输出Done0,Done1,Done2和Error Interrupt。 Done0/1/2中断由每个ADC触发器的软件控制。
在这里插入图片描述
因为只用PWM一个触发源,这里先只配置一个TRIG0。
在这里插入图片描述
配置那个中断
B2B1 背靠背模式,就是触发ADC,这里置位
HWTS1 ADC硬件触发选择,在ADC外设中讲解,这里置位
CSEL1 ADC通道选择

ADC

Analog-to-Digital Converter (ADC)

ADC配置就相对简单,可以直接使用NXP的MDK包中ADC的例程。程序主要是配置ADCx_CFG和ADCx_HCn 两个寄存器
Configuration register (ADCx_CFG) 配置代码如下,主要是配置硬件触发选择。
在这里插入图片描述
Control register for hardware triggers (ADCx_HC0) 代码如下,主要配置输入通道选择为ADCH为ADC_ETC
在这里插入图片描述
在ADC中断中开启一个IO管脚翻转,对比PWM波形,可以粗略验证在PWM高电平中间触发ADC采样,波形如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值