TLE82453使用

TLE82453使用颤振芯片 TLE82453 的使用 STM32F4XX 单片机实现简单的颤振效果

1.TLE82453

1.1 TLE82453简介

TLE82453使用

1.2 TLE82453时序

 

TLE82453使用

  注意读数据要读两次,第一次丢弃,第二次是需要的数值。

1.3 TLE82453 初始化

extern void TLE82453_Init(void) {   DWORD_U result = {0};   // Disable chip   TLE82453_EN_CLR;     // Set RESN pin from low to high.   TLE82453_RESN_CLR;   DelayMS(10);   TLE82453_RESN_SET;   DelayMS(20);     // Set Clock Divider Registe,M=38,N=7,so Fdith = 5MHZ/39/128=1KHZ   // Set Clock Divider Registe,M=38,N=7,so Fdith =1KHZ   result.dword = TLE82453_RWReg(0,TLE_W|RCLKDVD|FCLK_WDEN|FDITH_DIV_M|FDITH_DIV_N|FSYS_DIV_8);     // Set Configuration Register   result.dword = TLE82453_RWReg(0,TLE_W|RCFG|RCFG_FME|RCFG_FM0|RCFG_FM1|RCFG_FM2|RCFG_CH2_SR1|RCFG_CH1_SR1|RCFG_CH0_SR1);     // Integrator Threshold & Open On Register,Open load current = 58mA   result.dword = TLE82453_RWReg(0,TLE_W|RINTT_OL|CH0|RINTT_OL_VALUE);   result.dword = TLE82453_RWReg(0,TLE_W|RINTT_OL|CH1|RINTT_OL_VALUE);   result.dword = TLE82453_RWReg(0,TLE_W|RINTT_OL|CH2|RINTT_OL_VALUE);     // Set Autozero Register,RSETPOINT_EN must = 0,AZ is defualt function   //result.dword = TLE82453_RWReg(0,TLE_W|RAUTOZERO|RAUTOZERO_START|CH0);   //result.dword = TLE82453_RWReg(0,TLE_W|RAUTOZERO|RAUTOZERO_START|CH1);   //result.dword = TLE82453_RWReg(0,TLE_W|RAUTOZERO|RAUTOZERO_START|CH2);     // Set PWM period register,5MHZ/312/16 = 1KHZ   result.dword = TLE82453_RWReg(0,TLE_W|RPWM_PERIOD|RPWM_PERIOD_KI|RPWM_PERIOD_VALUE|CH0);   result.dword = TLE82453_RWReg(0,TLE_W|RPWM_PERIOD|RPWM_PERIOD_KI|RPWM_PERIOD_VALUE|CH1);   result.dword = TLE82453_RWReg(0,TLE_W|RPWM_PERIOD|RPWM_PERIOD_KI|RPWM_PERIOD_VALUE|CH2);     // Set Setpoint register,682*1500/2047=499.7mA   result.dword = TLE82453_RWReg(0,TLE_W|RSETPOINT|RSETPOINT_EN|RSETPOINT_AL|RSETPOINT_VALUE|CH0);    result.dword = TLE82453_RWReg(0,TLE_W|RSETPOINT|RSETPOINT_EN|RSETPOINT_AL|RSETPOINT_VALUE|CH1);    result.dword = TLE82453_RWReg(0,TLE_W|RSETPOINT|RSETPOINT_EN|RSETPOINT_AL|RSETPOINT_VALUE|CH2);       // Set Integrator Register   result.dword = TLE82453_RWReg(0,TLE_W|RINT_LIMIT|CH0|RINT_LIMIT_HL|RINT_LIMIT_LL);      result.dword = TLE82453_RWReg(0,TLE_W|RINT_LIMIT|CH1|RINT_LIMIT_HL|RINT_LIMIT_LL);      result.dword = TLE82453_RWReg(0,TLE_W|RINT_LIMIT|CH2|RINT_LIMIT_HL|RINT_LIMIT_LL);     // Set Dither Register,steps=3,step size=18,3*18*1500/2047=39.6mA   // SYNC = 1,so a new dither period will not start until the start of the next PWM cycle   result.dword = TLE82453_RWReg(0,TLE_W|RDITHER|CH0|RDITHER_EN|RDITHER_SYNC|RDITHER_SETP_SIZE|RDITHER_SETP_NUM(3));      result.dword = TLE82453_RWReg(0,TLE_W|RDITHER|CH1|RDITHER_EN|RDITHER_SYNC|RDITHER_SETP_SIZE|RDITHER_SETP_NUM(3));      result.dword = TLE82453_RWReg(0,TLE_W|RDITHER|CH2|RDITHER_EN|RDITHER_SYNC|RDITHER_SETP_SIZE|RDITHER_SETP_NUM(3));        // If no fault, enable chip   DelayUS(20);   TLE82453_RWReg(0,TLE_R|RDIAG);   DelayUS(20);   result.dword = TLE82453_RWReg(0,TLE_R|RDIAG);   DelayUS(20);   TLE82453_RWReg(0,TLE_R|RICVID);   DelayUS(20);   result.dword = TLE82453_RWReg(0,TLE_R|RICVID);   if( result.dword == RICVID_ID )     TLE82453_EN_SET; }

2.STM32F4XX实现简单颤振

2.1输出电流反馈采样率

采用ADC软件触发+DMA搬移,以使用两个通道为例,计算每个通道采样率。

The total conversion time is calculated as follows:

Tconv = Sampling time + 12 cycles

设置如下:

With ADCCLK = 15 MHz and sampling time = 28 cycles:

Tconv = 28 + 12 = 40 cycles,则单通道最大采样率为375kbps。

配置为28cycles以下采集不稳;

配置为28cycles,两个通道各取4次平均,能实现46.8k采样率;

配置为28cycles,两个通道各取8次平均,能实现23.4k采样率;

配置为28cycles,两个通道各取16次平均,能实现11.7k采样率;

配置为28cycles,两个通道各取32次平均,能实现5.85k采样率;

考虑恒流控制频率最大一般不会超过2KHZ,先选取11.7k采样率。

2.2 STM32F4XX实现颤振

STM32F4XX采用类似TLE82453的控制方法,并做一定的简化,例如step_size的刷新选择在输出PWM的溢出中断中进行,这样不需要再为颤振单独设置一个定时器了,默认颤振周期和PWM周期是同步的,颤振频率最大只能是输出PWM频率的1/4。PID的参数需要合理设置,响应时间要足够小,否则颤振效果较差。大多数场景可能只需要几路颤振,考虑到TLE82453的价格,损失部分性能可以接受,可以根据项目成本和性能要求折衷选择。

TLE82453使用

 

2.3 PID参数1

steps=3,step_size=30波形,kp=0.625,ki=0.0625,kd=0.0625:    

TLE82453使用  TLE82453使用

TLE82453使用  TLE82453使用

左边一列为普通高边开关的恒流和颤振;右边一列为TLE82453的恒流和颤振。

这个PID参数由于设置不合理,和TLE82453对比效果比较差。

2.4 PID参数2

Steps=3,step_size=30波形,kp=1,ki=0.01,kd=0:

   TLE82453使用  TLE82453使用TLE82453使用  TLE82453使用

左边一列为普通高边开关的恒流和颤振;右边一列为TLE82453的恒流和颤振。

这个PID参数调大了P值,减小了I值,输出效果接近TLE82453。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224175.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:32
下一篇 2026年3月17日 下午12:33


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号