杰发科技AC7840——PWM的触发ADC采样

鉴于7801的辣鸡文档,7840相对清晰,而且寄存器也正常一点

另外7801用了SPI的引脚来输出pwm,会有问题,他这个引脚有上拉电阻,默认会是高电平,影响分析结果

我们从7840重新开始分析

1. PWM的中断

从代码里面可以看到pwm有基本的2个中断,溢出中断的匹配中断

2. 什么是PWM

问了做pwm验证的大佬,给了以下三句话,这个就是pwm的精髓

初始值,确定PWM通道的初始电平

匹配点,将PWM通道的电平修改为匹配电平

溢出点,将PWM通道的电平修改为溢出的电平

为了理解这个问题,我们在后面引入了一个小尾巴问题和第一个周期波形异常问题

3. 关于PWM的尾巴

上面波形是66%占空比,低电平有效,5个周期之后deinit pwm模块

下面是溢出中断

会发现高电平有效后面有个小尾巴

是因为高电平有效,周期结束时候会反转电平,但是因为deinit了,pwm会拉低,所以出现了小尾巴。

4. 判断初始电平是否生效

时钟源改成None会保持初始电平,可以看到pwm为一直高或者一直低(取决于配置值)

5. 第一个周期问题

以下四种波形在溢出点看着都比较奇怪,向上计数模式

低电平有效,初始化低电平,向上计数模式

第一个高电平时间和和后面的一样是500us,说明是在高电平期间内

可以看到这个正常,是加了前面一小段的低电平

低电平有效,初始化高电平,向上计数模式

当改成初始化是高电平时候,第一个脉冲编程672us,超过了一个周期666us,为什么会没有低电平。

这两个红色竖杠中间的应该是低电平,但是因为初始电平是高电平,然后因为没有溢出中断把他拉低,所以他保持高电平 在第二个竖杠之后是匹配点,因为有效值是低电平,匹配点会拉高,所以维持高电平。

如果要第一个周期保持完整,在这种情况下就要配置初始电平为低电平。

在初始值是0的情况下,我们只需要关注匹配点和溢出点即可。

通过这个第一周期的异常问题,我们对pwm的理解更深了。

以下手册上的文字描述其实作用不大了。

6. ADC的中断

这里可以看到adc只有2个中断,其中eco是某个注入组转换完成中断,因此我们可以通过这个来判断adc采样完成的时间

7. ADC注入组长度

还以为配置有问题,没想到它寄存器是这样

8. PWM最大值触发ADC采样

主要在电机的电流采样过程中使用,为了保持所有的adc采样在中间点,我们改成中心对齐模式,最大点触发采样

配置最大值触发使能

9. init触发采样

偶然发现init触发采样正好符合我们的要求

在中心点采样,第一个波形开始采样

触发源如下

pwm配置如下

因为是低电平有效,初始电平是低电平,中心对齐模式,刚好丢了第一个周期,init又刚好触发了

需要确认是上升触发,这样在关闭deinit pwm时候是一个完整的周期

如果是下降沿触发,在关闭deinit pwm时候会多出半个周期

如果上溢出和下溢出都开启的情况下

发现少了2个周期

是因为中心对齐模式 上升下降的溢出都开,要多计算一个边沿,所以少了2个周期

至此,pwm触发adc,我们找到了一个合适的波形来触发,让他在中心点开始采样。

init触发+上溢出+高电平有效+初始低电平

10.ADC使用注意事项

adc的使用只能这几种模式,否则无法正常触发

只设置规则组长度1的时候,不能开启注入组不连续模式

只设置规则组长度1的时候,不能开启规则组非连续模式

开了注入组,必须开启扫描模式,否则也无法完成正常触发

相关推荐
嵌入式老菜鸟qq1252427737 小时前
关于S2-LP休眠
单片机·嵌入式硬件·mcu·射频工程
学嵌入式的小杨同学13 小时前
STM32 进阶封神之路(十八):RTC 实战全攻略 —— 时间设置 + 秒中断 + 串口更新 + 闹钟功能(库函数 + 代码落地)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
学嵌入式的小杨同学13 小时前
STM32 进阶封神之路(十七):RTC 实时时钟深度解析 —— 从时钟源到寄存器配置(底层原理 + 面试重点)
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
EVERSPIN1 天前
32位MCU副屏方案
mcu·32位mcu
学嵌入式的小杨同学1 天前
STM32 进阶封神之路(十五):DHT11 单总线实战 —— 温湿度检测从时序解析到代码落地(库函数 + 寄存器)
vscode·stm32·单片机·嵌入式硬件·mcu·智能硬件·pcb工艺
学嵌入式的小杨同学1 天前
STM32 进阶封神之路(十六):PWM 波深度实战 —— 定时器输出 + LED 调光 + 电机调速(库函数 + 寄存器)
stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程·智能硬件
liu_endong3 天前
RTOS基于7840——任务创建、启动、切换、删除
mcu·rtos·杰发科技·autochips·车规芯片
豆豆饿啦4 天前
【瑞萨AI挑战赛】#01 快速开始
嵌入式硬件·mcu·物联网·iot
进击的小头4 天前
第8篇:PI控制器设计实战演练
c语言·python·mcu·算法
豆豆饿啦4 天前
【瑞萨AI挑战赛】#02 DL任务说明及训练
人工智能·嵌入式硬件·mcu·物联网·iot