DSP电流采样程序解析1_第1页
DSP电流采样程序解析1_第2页
DSP电流采样程序解析1_第3页
DSP电流采样程序解析1_第4页
DSP电流采样程序解析1_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、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,CONV07决定ADC

3、RESULT14和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, 2048 = 0 x0800, 4

4、095 = 0 x0FFF图3从图3可知,当ADCINA5 的输入为0V +1.5V 时,ADC结果为0 2047。输入为+1.5V +3V 时,ADC结果为2048 4095ADCLO接模拟地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相电流的负半周,0 x8000为0电流。三、程序解

5、析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-ImeasAOffset; p-ImeasA

6、*= -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 xFFF00 x80000 x80000 x8000DatQ15 为16位有符号整型,高1位为符号位,低15位表示数值,所以可直接用Q15格式来定标。DatQ15 值为IQ15(-1) IQ15(1

7、)。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))代表电流的负负半周。代表电流的正正半周代表电流的负负半周三、程序解析int

8、16 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)代表电流的负半周。为了使为了使ImeasA的值的值IQ15(-1) IQ15

9、(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被触发,开始采样并转换结果 在计数周期的中点时,已经没有开关的变化,一边桥臂全开,一边全关,合成0矢量。此时,占空比作用下的电流最平稳,干扰最小,电流进入续流状态。 相比在计数周期的零点采样,中点采样的滞后最小。为什么选择中点采样中点采样 是第是第1次中断程序开始的时候次中断程序开始的时候1.1是程序执行完是程序执行完pwm1.update(&pwm1);的时候,假设这时中断程序已运行的时候,假设这时中断程序已运行48us1.148usTBPRD = 5000,计数模式为增减计数一个计数周期为:(5000100MHZ )2 = 100us100us中断频率为10KHZ,每隔100us中断一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论