TMS320F28377D用sysconfig配置ADC的PPB中断

标题:TMS320F28377D使用sysconfig配置ADC的PPB中断

现在在做永磁同步电机的项目,使用在机械臂上,因为使用的是一个恒压源供电,在负载工作时可能会有堵转的风险,所以应该检测三项逆变桥的母线电流,当电流达到一定值时(堵转)需要立刻停止电机工作,在查询资料后发现DSP的芯片设计的有该功能,即ADC的PPB(Post Processing Blocks Configurations,后处理模块)模块。

第一章:关于PPB的介绍

可以参考博客:TMS320F28388D 学习笔记3 ADC后处理块(Post-Processing Blocks)

简单的说就时,PPB模块支持以下功能

1:在减小软件开销的情况下对ADC的误差进行校正,(后面会介绍在哪里配置)

2:在ADC大于某一值或者小于某一值的时候触发中断,同时可以改变PWM的值,(这是本博客重点关注的配置)

第二章:使用Sysconfig配置多路ADC,(EPWM触发)

本章节配置主要参考博客:10DSP学习-利用syscfg配置ADC,并使用EPWM触发转换

ADC的触发源有软件触发,EPWM触发,定时器触发,之所以选择EPWM触发,是因为在FOC算法里,在每次EPWM设置完成后,我们都应该检测电流,从而通过PID计算下次EPWM的值

2.1:sysconfig的配置

2.1.1ADC部分的配置

我的ADC配置如下

在这里插入图片描述

SOC1通道配置为

在这里插入图片描述

其他路也是如此,引脚ADCINx对应通道SOCx,均为EPWM1A配置

:值得注意的是采样窗时间应该与你的RC滤波电路的时间常数相对应,因为28377没有在每次采样自动泄放采样电容的功能,所以采样窗太小,与外部RC滤波电路时间常数不匹配时,会引入混叠。并且这个混叠不能通过PPB给误差去掉,因为我实测混叠只在ADC采样值较大时产生,并对其他路ADC结果有不确定的影响。

2.1.2:PPB的配置

在这里插入图片描述

2.2:EPWM的配置

因为ADC是EPWM触发,所以EPWM需要做以下配置
在这里插入图片描述

2.3:ADC中断函数

__interrupt void INT_MyADC_EVT_ISR(void)
{
    OLED_ShowString(3,1,"ADC ERR");
    EPWM_setCounterCompareValue(MyEPWM1_BASE, EPWM_COUNTER_COMPARE_A,0);
    EPWM_setCounterCompareValue(MyEPWM2_BASE, EPWM_COUNTER_COMPARE_A,0);
    EPWM_setCounterCompareValue(MyEPWM4_BASE, EPWM_COUNTER_COMPARE_A,0);
    Interrupt_clearACKGroup(INT_MyADC_EVT_INTERRUPT_ACK_GROUP);
}

在识别到母线电流值大于一定的值时,设置三路EPWM为0,将逆变桥的上桥臂关闭,此时下桥臂为开启状态,但是不会形成电流回路,后面还会更新将两个桥臂都关闭的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值