This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DRV425-busbar-EVM:重现精度测量

Guru**** 2394295 points
Other Parts Discussed in Thread: DRV425, ENERGIA, MSP430FR4133

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/641235/drv425-busbar-evm-reproducing-accuracy-measurements

部件号:DRV425-busbar-EVM
主题中讨论的其他部件:DRV425ENERGIAMSP430FR4133

团队,

我将在12月1日的TI罗彻斯特创新日向大约50位客户简要介绍TI的电流和磁感应创新。 在演示过程中,我将进行多个演示,包括DRV425母线EVM。 我拥有母线EVM,并且已经熟悉了它,但在参考设计中复制精度测量时遇到了问题。

我最初使用参考设计设置测试设备。 我在恒定电流模式下通过母线连接了一个电源,该母线可从0-3A扫描。 我通过USB为DRV425 EVM提供5V电源,并测量输出电压(蓝色导线)和参考电压(橙色导线)之间的电压。 我记录了输出电压和参考电压之间的差分电压,以及在以0.5A步长从0-3A扫描时电源上的电流。 我得到了一个非常好的线性结果。 但是,对于演示,我需要在投影仪上显示结果并将其转换为当前。 为此,我选择在ADC中读取两个电压,然后使用线性相关性将结果转换为电流。 我可以使用Energia 'erial plot'函数绘制结果。  

我的当前设置如下所示。 我有一个以恒流模式运行的电源,通过母线提供0-3A。 我正在垂直方向使用DRV425 EVM。 我正在通过笔记本电脑上的USB端口为EVM提供5V电源。 我正在使用MSP430FR4133启动板作为数据收集设备。 我正在分别将输出电压(蓝色线)和参考电压(橙色线)读入针1.3 和1.5 ,并使用MSP430的10位ADC来转换电压。 MSP430通过USB连接到我的笔记本电脑,在这里数据通过串行端口中继。  

我在下面附上了我的Energia代码和我收到的一些读数。 总之,我转换ADC中的Vout和Vref,然后从Vout中减去Vref,以获得可与母线中的电流相关的输出电压。 问题是在这种输出信号中,每个方向的随机变化都超过50mV。 为了解决这个问题,我尝试通过计算最后20个样本的平均值来平滑输出信号。 平均值可以帮助我,但我仍然得到15-20mV的常规变化,罕见的变化高达40mV。 即使是15mV误差也与0.6A误差相关(假设用户指南第10页给出的增益为23.9mV/A)。 在3安培时,这是一个巨大的变化。 我还尝试添加延迟,以使ADC有时间解决问题。 要再现用户文档中报告的精度测量结果,我需要改进哪些方面(精度优于0.6 %)?

感谢所有的帮助,祝您假期愉快。  

图1:无电流通过总线柱的电压输出。 正在使用平滑平均。

图2:通过总线柱的3安培输出电压。 使用平滑平均:

内部电压,vdiff,Vref;
浮动电流,C1,C2,C3, C4,C5,C6,C7,C8, C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20;
//设置例程在您按下RESET时运行一次:
void setup(){//
以9600位/秒初始化串行通信:
Serial.begin(9600);// msp430g2231必须使用4800
电压,vdiff,Vref =0;
serial.println;
再次
运行(循环)
void loop(){//
读取模拟引脚A3上的输入:
float sensorValue = analogRead (A3);//读取输出
延迟(2); //让ADC稳定
浮点传感器REF = analogRead (A5);//读入参考
输出=(传感器值*(3.3 / 1023.0))*1000;//转换为电压
参考=(传感器参考*(3.3 /1023))*1000;//转换为电压
= vdiff输出;//calculate voltage
////
//存储和更新过去的20个样本
C20=C19;
C19=C18;
C18=C17;
C17=C16;
C16=C15;
C15=C14;
C14=C13;
C13=C12;
C12=C11;
C11=C10;
C10 = C9;
C9 = C8;
C8 = C7;
C7 = C6;
C6 = C5;
C5 = C4;
C4 = C3;
C3 = C2;
C2 = C1;
C1 =电压;
//当前未使用的电流,首先尝试获取工作电压
//电流= 41.8390.7967万 * voltage/1000 - 2.55 ;
// if (电流> 5){
// current=C1;
//}
浮子输出=(电压+ C1+C3+C4+C6+C8+C9+C10+C11+C12+C13+C14+C15+C15+C16+C16+C20+C20+C20/C20+C20/C20+ADC20/C20+读 出最后一

个值/读出C20+C20/C20+C20/C20/C20/C20/C20/C20+C20/C20/C20/C20
serial.println(output);//打印输出
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在与Luke合作以脱机解决问题。  完成后,我将发布解决方案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luke,

    MSP430的启动板似乎没有靠近ADC输入的电容器位置。  添加电容器,使其靠近ADC输入端接地端。  我认为10nF应该可以与1KΩ Ω 的串联电阻器正常工作。