DSP电流采样程序解析课件.ppt

上传人:牧羊曲112 文档编号:1480432 上传时间:2022-11-30 格式:PPT 页数:14 大小:576.50KB
返回 下载 相关 举报
DSP电流采样程序解析课件.ppt_第1页
第1页 / 共14页
DSP电流采样程序解析课件.ppt_第2页
第2页 / 共14页
DSP电流采样程序解析课件.ppt_第3页
第3页 / 共14页
DSP电流采样程序解析课件.ppt_第4页
第4页 / 共14页
DSP电流采样程序解析课件.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《DSP电流采样程序解析课件.ppt》由会员分享,可在线阅读,更多相关《DSP电流采样程序解析课件.ppt(14页珍藏版)》请在三一办公上搜索。

1、一、电流采样的电路原理,图1,I_U:U相电流检测信号端(输出),电流传感器采样,-4V - +4V对应电流传感器量程电流。-电压代表U相电流负半周,+电压代表U相电流正半周,0v为0电流。H2: 连接到DSP的ADC模块,ADC的输入电压(电压范围不超过0 +3V)。图1 是霍尔电流传感器的输出进ADC前的调理电路,假设输出输入关系为:VH2 = k*VI_U + 1.5 (k为负值)。,图2,H2接到DSP的ADCINA5引脚调理电路关系:VH2 = k*VI_U + 1.5 (k为负值)则ADC的输入0V +1.5V 代表U相电流的正半周, +1.5V +3V代表U相电流的负半周, +1

2、.5V为0电流。,一、电流采样的电路原理,二、ADC模块采样,在程序” f280 xileg_vdc电流采样程序.c”中SMODE_SEL为1,表示ADC同步采样ADCINAx和ADCINBx。,在同步采样情况下,ADCCHSELSEQ1和ADCCHSELSEQ2寄存器的“CONV00 CONV07”的值决定16个结果寄存器ADCRESULT0 ADCRESULT15存放的是哪个ADC输入端的转换结果。CONV00决定ADCRESULT0和ADCRESULT1,CONV01决定ADCRESULT2和ADCRESULT3, ,CONV06决定ADCRESULT12和ADCRESULT13,CON

3、V07决定ADCRESULT14和ADCRESULT15。,二、ADC模块采样,上图表明CONVnn的值对应的ADC输入端口,二、ADC模块采样,在程序中,指定了P-ChSelect = 5,则CONV00 值为5,表示ADC同步采样ADCINA5和ADCINB5,将ADCINA5端口的转换结果存在ADCRESULT0,将ADCINB5端口的转换结果存在ADCRESULT1。,二、ADC模块采样,根据CMD配置文件可知,ADCRESULTn在2808的地址范围为:0 x7108 0 x7117,ADC结果存在ADCRESULTn的高12位,二、ADC模块采样,2047 = 0 x07FF, 2

4、048 = 0 x0800, 4095 = 0 x0FFF,图3,从图3可知,当ADCINA5 的输入为0V +1.5V 时,ADC结果为0 2047。输入为+1.5V +3V 时,ADC结果为2048 4095,ADCLO接模拟地,ADCINA5的结果存在ADCRESULT0的高12位,前面提到运放电路的关系是:VH2 = k*VI_U + 1.5 (k为负值), ADCINA5的输入0V +1.5V 代表U相电流的正半周, +1.5V +3V代表U相电流的负半周。所以ADCRESULT0的值0 x0000 0 x7FF0代表U相电流的正半周, 0 x8000 0 xFFF0代表U相电流的负

5、半周,0 x8000为0电流。,三、程序解析,void F280X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p) int16 DatQ15; int32 Tmp; / Wait until ADC conversion is completed while (AdcRegs.ADCST.bit.SEQ1_BSY = 1) ; DatQ15 = AdcRegs.ADCRESULT00 x8000; Tmp = (int32)p-ImeasAGain*(int32)DatQ15; p-ImeasA = (int16)(Tmp13); p-ImeasA += p-I

6、measAOffset; p-ImeasA *= -1; AdcRegs.ADCTRL2.all |= 0 x4040; /Reset the sequence ,等待ADC转换结果,三、程序解析,int16 DatQ15;DatQ15 = AdcRegs.ADCRESULT00 x8000;,DatQ15 =0 x8000 0 xFFF0 =0 x0000 0 x7FF0 =,ADCRESULT00 x0000 0 x7FF00 x8000 0 xFFF0,0 x80000 x80000 x8000,DatQ15 为16位有符号整型,高1位为符号位,低15位表示数值,所以可直接用Q15格式来

7、定标。DatQ15 值为IQ15(-1) IQ15(1)。,IQ15(-1) IQ15(0)IQ15(0) IQ15(1),因为运放电路关系假设为:y = kx + 1.5(k为负值),所以ADCRESULT0的值0 x0000 0 x7FF0代表电流的正半周,0 x8000 0 xFFF0代表电流的负半周。因此执行” DatQ15 = AdcRegs.ADCRESULT00 x8000;”语句后, DatQ15 的值0 x8000 0 xFFF0( IQ15(-1) IQ15(0) )代表电流的正半周, 0 x0000 0 x7FF0 (IQ15(0) IQ15(1))代表电流的负半周。,代

8、表电流的正半周,代表电流的负半周,三、程序解析,int16 ImeasA;p-ImeasA *= -1;,Tmp = (int32)p-ImeasAGain*(int32)DatQ15; p-ImeasA = (int16)(Tmp13); p-ImeasA += p-ImeasAOffset;,ImeasAGain = 0 x1FFF (Q13格式),ImeasAOffset = 0 x01B5 (Q15格式)。上述3行代码用于AD结果校正。ImeasA近似等于DatQ15。,DatQ15的值IQ15(-1) IQ15(0)代表电流的正半周,IQ15(0) IQ15(1)代表电流的负半周。为

9、了使ImeasA的值IQ15(-1) IQ15(0)代表电流的负半周, IQ15(0) IQ15(1)代表电流的正半周,所以ImeasA的值要乘 -1,也就是语句“p-ImeasA *= -1; ”,中点采样,ADCTRL2_INIT_STATE = 0 x0100 ,第8位为1,表明EPWMxSOCA脉冲触发ADC采样,中点采样,SOCASEL值为2,表明在TBCTR = TBPRD时产生EPWMxSOCA脉冲从而触发ADC采样。,中点采样,在程序中,计数模式为增减计数,所以TBCTR = TBPRD(TBPRD是最大计数值)时,为一个计数周期的中点,此时,ADC被触发,开始采样并转换结果,

10、在计数周期的中点时,已经没有开关的变化,一边桥臂全开,一边全关,合成0矢量。此时,占空比作用下的电流最平稳,干扰最小,电流进入续流状态。 相比在计数周期的零点采样,中点采样的滞后最小。,为什么选择中点采样,中点采样,是第1次中断程序开始的时候1.1是程序执行完pwm1.update(的时候,假设这时中断程序已运行48us,1.1,48us,TBPRD = 5000,计数模式为增减计数一个计数周期为:(5000100MHZ )2 = 100us,100us,中断频率为10KHZ,每隔100us中断一次,100us,第1次中断,48us,100us,第2次中断,52us,52us,48us,100us,第3次中断,52us,100us,上图红色箭头处就是ADC中点采样的地方,此时采样到的电流是第1次中断程序里占空比作用下的电流。在第2次中断程序的开始调用F280X_ileg2_dcbus_drv_read函数来读取ADC采样到的电流。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号