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.

[参考译文] MSP430FR2433:时钟关闭

Guru**** 2680595 points

Other Parts Discussed in Thread: MSP-EXP430FR2433

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1587976/msp430fr2433-clock-is-off

器件型号: MSP430FR2433
Thread 中讨论的其他元件: MSP-EXP430FR2433

尊敬的团队:

代表我们的客户发帖。

我安装了 MSP-EXP430FR2433 和 CCS。 我在这里有一些代码,谷歌 Gemini 帮助我。 我的目标是在 LaunchPad 上运行代码、然后将其更改为在我的目标上运行、我的目标上有 MSP4302422。 它非常简单,一对端口 — 其中一个端口将被拉低,然后发送一条三字节串行消息。

我的项目正在运行、但出现问题。

也许 MSP430 内的时钟不够准确?
我相信 REFO 需要进行一些工厂校准
它更准确? 我正在使用默认设置、提供 DIVCLK
1MHz、除以 32 以获得 31,250Hz 的 MIDI 速率。
3 字节消息的长度应为 960 微秒、但导通时间应短
它的范围似乎是小于 920 微秒的很小位。

 

在任何情况下,MIDI 键盘都会报告“MIDI 错误“。

也许我需要使用 MSP430 中提供的更多硬件才能获得
波特率比我得到的值慢 6%左右。 我确实做到了
我没想到这个时候,妈妈竟然会出现在我的面前
他似乎在想什么。

你怎么看?

此致、

Danilo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“432284" url="“ url="~“~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1587976/msp430fr2433-clock-is-off ]我使用的是默认值、[/报价]

    默认为 DCO。 而无需 TLV 中校准数据的优势。 但即便如此、DCO 也会随温度而显著变化。

    如果您需要精确的时钟、没有什么能击败晶体。  

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

    尊敬的 Danilo:
    我还建议查看以下文档来提高 内部振荡器的精度。

    此致、

    Diego Abad

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

    尊敬的 David 和 Diego:

    感谢您的答复。 请在下面查看客户的反馈。

    感谢您将此信息提供给我。 有趣的是、有一些内部校准、但它没有与默认值一起使用、我相信这就是 您在消息中所说的内容? 我现在又回到了意大利,但我会很高兴在几个星期后回到我的项目工作。 我已经完成了电路板的制作、因此无法添加晶体。尽管我可以修改代码并在 LaunchPad 上使用晶体、但我希望可能需要采取一些措施来提高一些单个 IC 的时钟精度、因为某些单个 IC 可能开箱即用、 但至少对于我 LaunchPad 上安装的一个 IC、精度超出规格。 查看您刚才发送的信息时,我希望我的预期得到确认 — 一旦我测量到单个 IC 上的任何不准确性、就可以通过某种方法计算一个寄存器值来修正该单个 IC 的值。 每个 IC 可能需要不同的值。
    我使用 Google Gemini 来帮助我编写代码。 Gemini 建议我可以将波特率分频值从 32 更改为 33、我不知道这是否真的是一个
    可能的值? 双子座是一个愚蠢的助手,有时...
    我预计我的应用中不会有太大的温度变化、目标将在非常受控的温度环境中使用。

    此致、

    Danilo

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

    在报告的消息时间 (920us) 进行数字计算时、得到的误差大于为 REF0 指定的最大值。 这表明可能还有另一个问题。 可以使用一些代码来演示该问题。

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

    您好、David:

    请在下面查看客户的回复。

    是的,我在想同样的事情。 但我做了更多的研究和
    下面是我对 MSP430 时钟函数的看法:  

    如果   清除 DCOFTRIMEN、则   不使用 DCOFTRIM 寄存器、而是使用另一个 寄存器
    用于固定出厂校准。  在我的应用中使用   DCOFTRIM 没有真正帮助。

     当我回到 Euless TX 的工作台时、我可以尝试一些实验:

    1) 我可以用冷却液喷涂 LaunchPad 上的 2433 IC、看看 DCO 是否减速
    2) 我可以将波特率分频值从 32 更改为 33、看看这样是否起作用
    3) 我可以通过移动跳线并启用引脚来启用 LaunchPad 上的晶体

    基本上、我特定 LaunchPad 上的时钟太快、也有点超出规格。

    目标是运行不能使用晶体的目标、但使用 2422 而不是 2433。

    我将附上代码。 它可以工作、但由于某种 原因、时钟速度太快了 4-5%。

    文件中有大量的注释、但我认为代码在末尾。

    此致、

    Danilo

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

    在对张贴的文本进行简短扫描后,我忽略了它。 这里说的是一些愚蠢的事情、比如 MCLK=250kHz。

    通常代码更可靠。 例如:

        __bis_SR_register(SCG0); // Disable global interrupts during clock config
        __bic_SR_register(SCG0); // Re-enable interrupts
    

    尽管有注释、这不会中断。 设置 SCG0 将禁用 FLL。 关闭 FLL、然后开启会让它变得恼火吗? 也许不是。 我没有一个方便的工具来进行测试。 此外、指南对出厂调整有点模糊。 这意味着它仅适用于最大设置。 使用其他值所需的软件调整。

    UART 除数应使用 UCOS16(过采样模式)并且 UCA0BRW=2。 如果只传输数据、这可能不是什么大问题。

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

    您好、David:

    以下是我们客户的反馈。

    对您来说、笔记应该被忽略、因为它经历了许多变化。

    这段代码确实有效(除了 MCLK、或者 REFO 快速运行)、所以 I
    在那里留下了一堆东西,因为它没有造成任何麻烦。 代码为
    实际上完全由谷歌 Gemini 写,并在一开始有中断
    使用而不是轮询的按钮,但我要求 Gemini 改变它-
    有一次、我对 Code Composer Studio 中的环境不太满意。
    因此、打开和关闭中断的无稽之谈只是其中的一个剩余部分。

    30 年前我在 Purdue 上了 C 和 C++、所以使用 Gemini 帮助了我没有的事情
    请记住、这样我就不必查找所有助记符缩写。 我的
    背景是完全汇编的、我只使用存储器地址
    而不是使用字母代码。 感谢 UART 的提示 — 我没有
    请使用 Rx 输入、但希望其可供使用、因为已连接引脚
    在需要时使用该缓冲器。

    下周我会回到 Euless 并尝试这些实验:冻结 IC、运行
    波特率会以 33 而不是 32 分频、如果没有帮助、则连接晶体。
    如果事实证明我的 LaunchPad 超出规格、如果您靠近 Euless、可以换用我。

    此致、

    Danilo