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.

[参考译文] CCS/MSP430F5529:MSP430F5529是否支持921600 UART 波特率?

Guru**** 2555080 points
Other Parts Discussed in Thread: MSP430F5529, MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/596909/ccs-msp430f5529-does-the-msp430f5529-support-921600-uart-baud-rate

器件型号:MSP430F5529
主题中讨论的其他器件: MSP-FET

工具/软件:Code Composer Studio

尊敬的 TI 支持团队:

我想通过波特率为921600的 UART 与 MSP430F5529通信。

有可能吗?  如果是、正确的配置是什么?

如果没有,最大波特率是多少 ?

此致、
海他们。

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

    BTW、5529具有 USB 硬件模块、(CDC /批量)传输可高达1Mbyte/s

    根据 MCLK 和 UCA 源时钟、UART 的速率可高达6Mbps。

    http://forum.43oh.com/topic/3413-msp430-uart-benchmark/

    有许多用于 MSP 的在线 BR 计算器、这里是我的离线设置...

    e2e.ti.com/.../MSP430UartCalc.rar

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

    如数据表所示、最大波特率为1MHz。

    UART 的时钟源必须至少是波特率的三倍(在过采样模式下至少为十六倍)。 然而、当 USCI 波特率发生器能够将时钟源除以一个大分频值时、它往往工作得最好、所以您应该使时钟源尽可能快。 用户指南第36.3.9节介绍了如何计算产生的误差;或者只需使用 USCI UART 计算器即可。 在使用一些值后、24MHz 似乎是一个良好的时钟源。

    请注意、DCO 不是很精确、会引入抖动;您需要直接从24MHz 晶体(振荡器)获取时钟源。

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

    尊敬的 Clemens:

    感谢您的反应!

    能否帮助我正确配置 UART 寄存器并将 BRsclk 源时钟直接连接到外部晶振源?

    请注意,在我的主板中,我必须晶振一个24MHZ ( ABM3B-24.000MHZ-10-1U-T),第二个是32.768kHz,我需要通过 高速 UART 与外部外围设备(而不是主机)进行通信  

    此致、

    海他们。

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

    我刚刚使用以下配置测试了电路板、但我没有收到正确/正确的数据!

    使用115200:测试正常 /波特率(230400、460800、921600)测试未通过和错误数据。

    测试条件:我的板通过具有 UART 连接器的 eZ-FET 连接到 PC (MCU (MSP430 <->eZ-FET UART 桥接器<--> PC)

    UART 配置:

    有任何建议或建议、请!

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

    此处设置为1Mbps、24MHz XT2 MCLK 作为 UART 时钟源。 24 / 18h = 24 / 24 = 1Mbps (无错误)。


    我想 eZ-FET Lite USB/UART 桥接器被限制在一些固定波特率值、例如 MSP-FET。


    2xx/5xx 器件 UART 在较高速率下没有问题。 在这里、您可以看到我的双桥接器、2xx 器件的运行速度为4Mbps。

    MOV.w #WDTPW + WDTHOLD、&WDTCTL
    
    mov.b &CALBC1_16MHz、&BCSCTL1
    mov.b &CALDCO_16MHz、&DCOCTL
    
    BIS.b #UCSWRST、&UCA0CTL1
    
    BIS.b #(BIT4 + BIT4)、&P3SEL;P3.4/P3.5 = TXD/RXD
    BIS.b #UCSSEL_2、&UCA0CTL1;SMCLK
    
    ; 16000000 Hz 4000000 bps
    mov.b #004h、&UCA0BR0
    mov.b #000h、&UCA0BR1
    bs.b #(UCBRS_0 + UCBRF_0)、&UCA0MCTL
    
    BIC.b #UCSWRST、&UCA0127 CTL1
    
    mov.w #70、RCBR0 + UCBR15
    
    
    、UCA1.b
    
    
    
    
    
    
    
    
    
    环路、UCA15、UCA0b #mb #15、UCA1.mb #mb、UCA0rb #mb、UCA1.mb、UCA1.mb、UCA0b #15、UCArb #mb #mb、UCA1.muCA1.mb、UCA1.mb、UCA1.mb、UCA1.mb、UCA1.mb、UCA0r 

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

    eZ-FET 使用4MHz 谐振器、因此问题可能出在反向通道 UART。

    您要尝试解决的实际问题是什么? 您实际上是打算使用反向通道 UART 还是其他器件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的帮助!

    问题已解决、它在所示的配置为24MHz 时可以完美地工作。

    问题是我用作 UART 转 USB 适配器来测试 UART 通信的 eZ-FET。 我用 FTDI 适配器更改了它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在,我在重新接收数据时遇到问题,当我从 PC 向 MCU 发送一个字节数据包时,我要求我只获得数据包的最后一个字节!
    请注意,此测试适用于(115200、230400、460800),但只有当波特率为921600时,我才会遇到问题。

    请提供任何帮助?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    显然、您的代码对接收到的字节的反应速度不够快。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用的是 RX 中断, 以下代码  适用于(115200, 230400, 460800),但不适用于 921600:

    您能告诉我 在快速模式下会出现什么类型的问题吗?

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

    当 CPU 以24MHz 运行、并且波特率大约为1MHz 时、您有24个周期来处理一个字节。

    该代码可进行优化。 只读取 RXBUF 一次并将其放入一个局部变量中。 不要尝试在中断处理程序中执行所有错误检查;当您获得 start_data_header 时、只需将七个字节读取到缓冲区中、然后在主循环中进行检查。

    最好使用 DMA 从 UART 读取一个字节块。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将尝试您的建议并返回反馈。

    请告诉我在本例中如何使用 DMA?

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这取决于您的协议的工作方式。

    要了解 DMA 模块、请阅读用户指南和示例程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Haithem Rahmounti"]

    我使用的是 RX 中断, 以下代码  适用于(115200, 230400, 460800),但不适用于 921600:

    您能告诉我 在快速模式下会出现什么类型的问题吗?

    [/报价]

    您可以在没有 DMA 的情况下实现它。 我的双桥接器代码从2个端口以4Mbps 的速率接收、并且在没有 DMA 的情况下完成。 根据我的经验、在这种情况下、DMA 会使事情变得更复杂、而不是更快。

    只需将接收到的字节存储在 ISR 内的循环缓冲区中。 其他处理(分析循环缓冲器竞赛)可在 ISR 外部完成。