2)COMPARATOR(比较器)配置:
COMP1
COMP3与COMP1的配置类似,不同点是比较器的负向输入端为DAC3的1通道输出。
当配置完COMP后,还要设置COMP输出高电平时,PWM关断的条件。
当电感电流大于参考值时,将TA1和TB1设为低电平,关断PWM输出。
这样就搭建完成内部的峰值电流环。
3)DAC
DAC的输出就是COMP负向输入引脚。
每个DAC都有两个输出通道,但不是每个DAC的输出电压都能通过引脚进行输出。从上图中可以看到DAC1的两个通道都能通过MCU的引脚进行输出,而DAC3的两个通道输出只能连接到片内的外设上。
4)ADC3配置:
ADC3(输出电压采样)
在配置ADC的触发选项之前,需要先配置HRTIM的ADC触发事件(ADC Trigger 3),所以再回到HRTIM的配置界面:
在External Trigger Conversion Source中选择High Resolution Timer Trigger 3 event。
因为ADC3是通过DMA传递采样值的,因此配置完ADC3后,要直接配置DMA外设。
5)DMA配置
选择(1)DMA外设后,在(2)处按“Add”,然后在(3)处选择添加ADC3,产生DMA请求信号,接着在(4)处取消勾选,在(5)选择“Word”,在(6)的工作模式选择“Circular”。因为本例中并不需要手动处理DMA中断,所以在生成的代码中不需要生成DMA的中断服务。如下图:
DMA传送的输出电压采样值是直接送到FMAC中进行处理的,接下来进行FMAC的配置。
6)FMAC配置
FMAC只要在页面中激活就行,比较简单。因为要在FMAC中断中进行恒压环路的计算,所以要使能FMAC中断。
并且由代码生成器负责生成FMAC中断服务。
ADC3通过DMA通道将输出电压采样值直接传送到一个内存地址指向的变量,而FMAC的X1缓存的基地址指针也指向该内存变量的地址,ADC3的采样值就送到FMAC的缓冲区里面了。这样从ADC3开始采样到采样值的读取,再到电压环路的计算都不占用CPU的开销时间,也没有进入中断和出中断的延时,这样加大了电压环路的相位裕度,有利于电压环路稳定性的改善。
7)ADC1的配置:
ADC1(输出电流采样)
选择ADC1的IN3通道做为Iout_FB的采样通道。
给该通道设个标签,方便以后引用。
然后返回到HRTIM外设配置界面,配置ADC的触发事件(ADC Trigger 1)。
ADC Trigger 1用来触发ADC1。返回到ADC1的配置界面:
ADC1的采样值在ADC1的中断服务中直接读取,不要通过DMA传递,所以不要使能DMA的请求。
因为ADC1采样完成后需要在中断中计算恒流环路,所以要使能ADC1的中断。
需要代码生成器产生中断服务
这样ADC1配置完成了。
说明一下:ADC的采样方式分为规则采样和注入采样,这两种采样方式的差别自行查找。DMA传送的ADC采样值只能用规则采样方式,不能用注入采样。且ADC Trigger1、3只能用于规则方式,ADC Trigger2、4只能用于注入方式。
所以,可以看到前面的ADC工作方式都是在“ADC_Regular_ConversionMode”标签下进行配置的。
8)串口的配置
配置通讯波特率,字长及校验位、停止位。
使能USART2的全局中断。
由代码生成器生成相应的中断服务
完成上面工作后,配置生成外设的代码结构
为每个外设都独立生成一对c\h文件,方便查找和修改。
最后可以生成代码了。
生成的代码如上图所示,接下来就要进行代码的编写了。
在本文附件中提供笔者的ioc配置文件。