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.

[参考译文] MSP430F6736A:从 SigmaDelta ADC 输出中查找电压值

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1057418/msp430f6736a-finding-voltage-value-from-sigmadelta-adc-output

器件型号:MSP430F6736A

您好!
我在 MSP430F6736A 中使用 Σ-Δ ADC 来转换13.5Hz 的输入信号、幅度为100mVpp、偏移为50mV。

SMCLK 用作 SD24_B 时钟源、OSR =607

但输出具有超过24位。 当我使用它转换为电压时  

voltion[i]=(float)(results[i]*3/con);        //con=0x1000000 (2^24)


电压[i]约为20、但输入信号为100mVpp、偏移为50mV。 当从 Results [i]中删除偏移后计算电压时 、结果电压介于-200.36mV 和200.756mV 之间

请帮我提供有关此处可能发生的情况的建议。

谢谢、此致、

Anusree

 

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

    你(们)好  

    SD24是一个不同的输入 ADC、它将在内部减去直流电压。

    全销售产出取决于您的 OSR。  Con 不是基于过采样率的24位值。  

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

    感谢您的回复。

    我将获得28位输出。我使用2^28重新计算了输出。

    但对于13.5Hz 的 sqare 信号、获得的值为1.309和1.415、幅值为100mVpp、偏移为50mV。

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

    寄存器中 ADC 的值是多少?  它是否能够正确反映 ADC 收集的电压。 因为我不知道您在软件中添加了什么计算。 结果[i]和电压[i]的变量类型是什么?

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

    results[]的类型为 unsigned long 和 voltage:float


    我认为该寄存器能够反映 ADC 收集的电压。
    当我绘制这些值时、我得到正弦波、计算出的频率接近13.5Hz、峰间值接近100mV (1.415 -1.309)

    unsigned int resultsH[Num_for_Results]、resultsL[Num_for_Results];
    long unsigned int results[Num_for_results]、FR[Num_for_results];

    案例 SD24BIV_SD24IFG0:
    resultsH[索引]= SD24BMEMH0;// SD24MEM0 IFG
    resultsL[索引]= SD24BMEML0;// SD24MEM0 IFG
    如果(+index == Num_for_results)

    for (i=0;<Num_of_Results;i++))

    FR[i]=resultsH[i];
    results[i]=(FR[i][16])|(resultsL[i]);
    Mean+=Results[i];//查找 Mean (过零)

    VOLT[i]=(float)(results[i]*3)/CON;// SigmaDelta ADC 输出的电压值

    Mean=Mean/Num_of_results;//to find mean (过零)
    for (i=0;<Num_of_Results;i++))

    R[i]= results[i]-mean;//删除偏移
    VOLTGE_r[i]=(float)(r[i]*3)/CON;//移位信号的电压值

    当我从结果中删除平均值[]并计算电压时,它几乎在-50mV 至50mV 的范围内。

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

    尊敬的 Anusree:

    有了问题、我可以加入并尝试快速帮助您。

    谢谢!

    此致

    Johnson  

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

    您是否在调试模式下观察过平均值? 您可以在 观察表达式中添加所有变量、以查找哪些中间变量不会作为例外执行。