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.

[参考译文] MSP430F5529:稳定的正弦波生成

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1323519/msp430f5529-a-stable-sinewave-generation

器件型号:MSP430F5529

您好、专家!

我在 msp430f5529中生成了一个正弦波、而我在比较控制器和信号发生器产生的正弦波时观察到了一个相移。

我正 试图在不发生相移的情况下生成稳定的正弦波、就像信号发生器一样、

我相信、借助我们的 MSP430、我们也能做到这一点、任何人都能告诉我可能的方法。

谢谢。此致、

TeX

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

    您将相位与什么进行比较? 或者您是否观察到频率变化?

    要获得高频率精度、您需要高质量的晶体;我认为商用信号发生器的精度一般为1ppm 或更高。

    更一般地说:您是如何产生波形的? 我在 F5529数据表中没有看到 DAC。

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

    谢谢你的答复布鲁斯爵士,

    我将其与 Analog Discovery 2 Digilent 进行比较、而我则使用 AD5663 DAC 来生成正弦波。

    我直接从 MSP430生成方波、以便将其与模拟发现2进行比较

    我更换了一些我拥有的晶体.. 但仍然面临这一问题布鲁斯爵士。

    请给我一些其他的建议来测试它。

    谢谢。此致、

    TeX

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

    您是如何生成方波的?

    您是否使用中断将数据发送到 DAC?

    我认为我们需要查看您的代码。 您希望以多高的频率?

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

    尊敬的 Keith:

    仅使用其中一个计时器示例与方波进行比较。

    使用 DAC 时不使用中断。

    我观察到在我们的控制器侧发生的相移仅通过在 MSP430中生成方波进行观察、并且还从信号发生器生成了相同的方波。

    此致、

    TeX

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

    快速的第一个实验是调整波形发生器的频率、以查看您是否可以使用 F5529信号对其进行"锁定"。 这将告诉您(a)频率是否(动态)变化以及(b)偏离程度。

    我还没有使用过 AD5663、但对这样的 DAC 来说、关键在于/LDAC 的精度。 我想您使用一个计时器来驱动该计时器、这样可以将问题(退回)到底层时钟(大概是 SMCLK)。 在 P2.2中输入 SMCLK 可能值得直接进行检查。

    您可以尝试的操作:

    1) 1)通过调整计时器常数(尤其是 CCR0)来调整/LDAC 周期。  

    2) 2)如果您使用 DCO+FLL、则可以调整 UCSCTL2:FLLN 以调整 MCLK/SMCLK、这样可能会提供比计时器更高的分辨率。

    3) 3)您可能通过使用另一个波形发生器将时钟输入到(例如) TA0CLK 来驱动/LDAC、从而了解时钟匹配情况。 这不是一个长期的解决方案、但可以告诉您 F5529时钟是否真正是个问题。

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

    感谢您的回复、  

    我会返回给您、提供测试结果。

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

    如果您只是尝试为正弦波创建 SYNC 信号、则最好通过将数据发送到 DAC 的代码来实现该功能。

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

    我应该指出的是、如果您只在 main 中有一个更新 DAC 的循环、则任何中断都可能窃取周期、这些周期会逐渐使主循环与任何计时器不同步。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用的是 DCO+FLL、则可以调整 UCSCTL2:FLLN 来调整 MCLK/SMCLK、这可能提供比计时器更高的分辨率。

    是否有更好地理解 Bruce 的示例程序?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我应该指出,如果您只需在 main 中有一个循环来更新 DAC

    是的,基思! 我在 main 中有循环

    任何中断都可能窃取周期,这些周期将逐渐使主循环与任何计时器不同步。

    这是怎么可能的 Keith ? 我在哪里可以了解到这一点???

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

    我不知道任何 TI 关于调整 FLLN 的示例。 然而、在(例如)示例 MSP430F55xx_UCS_02.c 中、没有魔法:

    https://dev.ti.com/tirex/explore/node?node=A__ACRVkGHiAiOjRIE2BAsg5A__msp430ware__IOGqZri__LATEST

    "249"仅为(8.192MHz / 32.768kHz)-1。 如果您增加此值、FLL (时钟)输出将略微加快速度。

    ----------------

    话虽如此:正如 Keith 所指出的、如果您没有使用计时器驱动/LDAC (和 DAC 的 SPI 输出)、这种微调不会有任何帮助。 "你干嘛啊?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    任何中断都可能窃取将逐渐使主循环与任何计时器不同步的周期。

    这是怎么可能的 Keith ? 我在哪里可以了解到这一点???

    [/报价]

    出于某种原因、它被称为中断。 您只有一个处理器。 当中断发生时、主循环暂停、同时处理器处理中断。 在中断结束时、主循环状态将恢复、而主循环将从其中断的位置恢复。