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.

[参考译文] MSP430F6769A:关于再次提高 A/D 转换的精度 ASK

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1305034/msp430f6769a-regarding-improving-accuracy-of-a-d-conversion_ask-again

器件型号:MSP430F6769A

您好!

感谢您的评分

抱歉、 我错误地关闭了问题答案。。。

让我再提一个问题。

e2e.ti.com/.../msp430f6769a-regarding-improving-accuracy-of- a-d-conversion/4952023#4952023

此页面的内容列在 URL 的末尾。 请参阅。

您回答过、需要一个不同的 IQ 值来防止溢出、但如果 N 值需要、例如24、这是否意味着在发生溢出时需要更改 N 值?

由于 MSPF6769A 的 AD 转换位数为24位、我需要 IQ24数据、但如果这会导致溢出、是否可以更改 N 的值?

同样、在偏移二进制状态下、该值大约为964827590。

为了避免这种情况、通过查看数据表、您认为将该值乘以系数2或更大的_iq6或更小、即小于16777216的一半是正确的吗?

https://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/IQmathLib/latest/exports/MSP430-IQmathLib-UsersGuide.pdf

我认为我的想法是错误的,所以我会感激,如果你能启发我。

感谢您的理解。

俊晴

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

    您好!

    我不能完全理解你的观点。

    还包括如何防止溢出。 我展示了以下示例、介绍如何定义操作结果的 IQ 类型以 防止溢出。  

    IQ23 DATA_A = IQ24 DATA_B + IQ24 DATA_C。

    IQ16 DATA_A = IQ9 DATA_B * IQ7 DATA_C。

    IQ2 DATA_A = IQ9 DATA_B / IQ7 DATA_C。  

    此致、

    现金豪

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

    嗨、Cash

    对不起,我省略了我之前问的很多问题(URL 在第一句)。

    MSP430F6769A:关于提高 A/D 转换的精度- MSP 低功耗微控制器论坛- MSP 低功耗微控制器- TI E2E 支持论坛

    为了更详细地进行说明、我目前正在尝试使用 MSPF6769A 的内置 AD 转换器来获得高分辨率。

    因此、现在我想使用 IQmathlib 来提高分辨率。

    电流设置为偏移二进制法、OSR=1024、外部电源电压和外部基准。

    该程序根据 Resource Explorer 中的 msp430f677×a_sd24b_06.c 更改 CPU 设置。

    我想使用 IQmathlib 函数来提高这里的分辨率。

    MSP430F6769A 的分辨率为 δΣ24bit μ A、因此我想从它获得更高的性能。

    这是第一句的内容。

    目前方案的产出价值约为964827590。

    在第一句 URL 的回复中、

    "更好的方法是将您的比例因子应用于 ADC 结果、然后切换到 IQ24。 实际上可以一步完成。 假设您具有 IQ24格式的换算系数、只需乘法即可。 无需使用 IQmath 函数、只需进行常规乘法即可。

    由于您以零小数位数和24作为起始值、结果将为24、因此为 IQ24格式。 假设换算系数不会导致整数部分溢出、则效果很好。 如果它确实溢出、您需要不同的 IQ 格式。"

    它说。 这意味着、如果您设置 IQ24并尝试获取该值、24bit=16777216、因此如果您将964827590乘以2等等、它将溢出。 现在我不知道如何设置 IQN。

    由于 MSP430F6769A 的最大性能为24位、我认为 IQN 应该被设定为 N=24、但是我认为没有特别的规则、你应该只输入一个适当的 N。

    但是、我不知道 N 的正确值。

    我认为、如果 AD 转换获得的结果为 IQN (Result)、则会转换为 IQ 值、但我不知道单靠该值是否会提高分辨率精度或者提高分辨率精度。

    既然我不知道、您能给我一些建议吗?

    CCS 版本为12.5.0。

    感谢您的理解。

    俊晴

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

    尊敬的俊晴:

    现在我想使用 IQmathlib 来提高分辨率。

    我认为使用 IQ 格式不会提高您情况下的分辨率。 IQ 格式用于通过 定点数据表示浮点数据。 因为 MSP430不包含 FPU。 因此、定点算法对 MSP430 MCU 更加友好。 例如、将浮点数据转换为 IQ24和 IQ30格式。  

    _IQ24 (0.5243)= 0.5243*2^24 ~= 8,962,388.8 = 0x88 C155  

    _IQ30 (0.5243)= 0.5243*2^30 μ~= 562,962,838.3 = 0x218E 2196  

    然后转换回浮点格式并检查这两种格式之间的错误。  

    _IQ24: 0x88 C155/2^24 μ~= 0.524299979。  误差为0.524299979-0.5243 = 0.00000002

    _IQ30: 0x218E 2196/2^30 μ~= 0.524299999。  误差为0.524299999 - 0.5243 = 0.000000001

    总之、在这种情况下、使用 IQ30来表示浮点数据产生的误差小于 IQ24。 错误是由于忽略转换期间的数据的十进制部分所致。 但另一方面、IQ30格式的范围小于 IQ24格式。 您只能使用 IQ30格式来表示-2至 1.999 999 999之间的浮点数据。 对于 IQ24格式、范围为-128至 127.999 940。

    因此、如果您有一个浮点数据101.2345并要将其转换为 IQ 格式、它需要使用至少 IQ24格式或更低的格式来表示该数据。  

    此致、

    现金豪

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

    嗨、Cash

    感谢您的回答!

    我认为使用 IQ 格式不会提高您案例的分辨率。

    了解无法使用 IQmath 计算所需结果是否正确? 我们需要24位分辨率、因此我们需要浮点数而不是定点数。

    当我问他有关他的故事时、了解 IQmath 对于获取即使是定点数也可以接受的答案很有用、而且 IQmath 不适合需要浮点数的答案吗?

    如果是这样、请考虑使用其他方法而不使用 IQmath 来提高分辨率的方法。

    很抱歉、如果这意味着我无法使用它。

     期待您的答复。

    谢谢你。

    俊晴

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

    您好!

    明白我所寻找的结果无法使用 IQmath 计算是否正确? 由于我们需要24位的分辨率,因此我们需要浮点数而不是定点数。

    浮点和定点格式均可获得24位分辨率。 所以我们为什么更喜欢在 MSP430 MCU 中使用定点数据。 这是因为 MSP430没有集成的浮点处理单元。 如果大量计算都是浮点数据、则首选将浮点数据转换为定点数据、然后进行计算。 它将在 MSP430平台上节省大量时间和功耗。 使用定点数据无助于提高分辨率。   

    当我问他有关他的故事时,是否正确地理解 IQmath 对于获得即使是定点数字也可以接受的答案是有用的,而且 IQmath 不适合需要浮点数的答案?

    不可以、IQmath 也适用于需要浮点数的答案。 您可以使用定点数据进行计算、然后将最终的定点结果转换回浮点数。  

    此致、

    现金豪

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

    嗨、Cash

    感谢您的回答!

    使用定点数据对提高分辨率没有帮助。

    我明白了。

    这意味着、即使将其转换为定点数并执行计算、从一开始就不适合提高分辨率。

    使用 IQmath 提高精度和使用 FPU 提高精度不同于对待相同的想法。

    在任何情况下、由于 MSP430没有 FPU、因此预计高精度浮点运算会很困难、所以我想详细了解这一点。

    我认为我可能误解了上述内容,但如果你能向我提供进一步的指导,我会非常感激。

    非常感谢。

    此致、

    俊晴

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

    尊敬的俊晴:

    这意味着即使您将其转换为定点数并执行计算,它也不适合用于提高分辨率的目的。

    可以。 关于"高精度浮点运算"、我没有太多可分享的内容。 通常使用定点格式来替换浮点计算。 但是、它有一些限制。 每种 IQ 格式的范围都有限制。 因此、这种方法可能不适合您的应用。  

    此致、

    现金豪

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

    嗨、Cash

    感谢您的回答!

    我对使用 IQmathlib 无法提高分辨率感到非常失望。 不过、我能够获得有关 IQmath 的知识。 我认为当您必须开始工作时、它会派上用场。

    非常感谢您的指导!

    俊晴