TI例程中相电流采样问题
各位老师好:我现在用TI的例程做电机的相电流采样,
DatQ15 = AdcRegs.ADCRESULT0^0x8000;
Tmp = (int32)p->ImeasAGain*(int32)DatQ15;
p->ImeasA = (int16)(Tmp>>13);
p->ImeasA += p->ImeasAOffset;
p->ImeasA *= -1;
这个是它给的代码,想不通这个 DatQ15,这个值感觉好奇怪,怎么一下就成了Q15的数的,而且这个ImeasAGain和ImeasAOffset应该怎么确定呢??
麻烦老师指点,谢谢了! 没用过TI的芯片,但初步了解过TI有的芯片自带Q1.15固定浮点数支持,你说的这个可能就是芯片内支持的。
ImeasAGain,放大倍数:假设最大电流10A,采样电阻0.02欧姆,信号电压=10A*0.02欧姆=0.2V。然而ADC参考电压一般是3.3V,为了充分利用ADC所有的分辨率,就需要把0.2V放大到接近3.3V,理论上最佳的放大倍数=3.3V/0.2V=16.5。实际放大倍数要看放大器的倍数,如果是外部放大器,就看硬件电路;如果是内部可编程放大器PGA,就要看初始PGA放大倍数配置了。
ImeasAOffset,初始偏移:在电流为0时,ADC读取的值不为0,这时读取的值就是偏移值 sheldencn 发表于 2018-8-17 20:06
没用过TI的芯片,但初步了解过TI有的芯片自带Q1.15固定浮点数支持,你说的这个可能就是芯片内支持的。
Ime ...
老师,您能帮我看下吗?我现在用的是HDC020 电流传感器采样电流,电流有这样的对应关系0A:2.5V,+20A:3.5V,-20A:1.5V,I=(signal*3/2-2.5)*5。
现在用下面这些代码进行AB相电流采样,我在电流为0时,用偏移量将Ia和Ib控制在零附近,现在电机运行时,Ia会变化,但是感觉变化的有问题,Ib一直就不变,而且很小。
实在不知道这代码问题出在哪了,老师,您能帮我看看吗?
感谢!
c_ch_ori=((float)AdcRegs.RESULT0)*3.0/65520.0+adclo;
d_ch_ori=((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
Ia=(c_ch_ori*3/2-2.5)*5+0.012;
Ib=(d_ch_ori*3/2-2.5)*5+0.03; AdcRegs.ADCRESULT0里的数据是左对齐的,是一个16位数据,所以是Q15格式的
页:
[1]