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.

【已解决】FR5969:LPM3下UART(ACLK,115200)不触发Rx中断



1.LFXT -> ACLK,32768Hz,BRCLK -> ACLK,波特率9600,LPM3模式下工作正常;(由于项目需求,波特率需为115200,故舍弃)
2.DCO -> ACLK ,1MHz,BRCLk -> ACLK,波特率9600,LPM3模式下不触发中断,AM下无法发送数据;

   DCO -> SMCLK ,1MHz,BRCLk -> SMCLK,波特率9600,LPM3模式下工作正常;(UG 48页,LPM3下SMCLK是关闭的,不明白为啥可以正常工作

3.DCO -> ACLK ,1MHz,BRCLk -> ACLK,波特率115200,LPM3模式下不触发中断,AM下无法发送数据;

   DCO -> SMCLK ,1MHz,BRCLk -> SMCLK,波特率115200,LPM3模式下不触发中断,AM下发送数据错误;

4.刚才讲DCO配置成8M,使用SMCLK做BRCLK的时钟源,波特率57600,LPM模式下工作正常,LPM3下SMCLK是关闭的,不明白为啥可以正常工作


  




我尝试了很多,都未能解决问题,希望大家指点,我想配置为ACLK 8M(如果SMCLK可以配置成功也行),波特率115200,测试程序使用的ccs中提供的例程,路径如下:Libraries -> Driver Library -> MSP430FR5xx_6xx -> Example Projects -> EUSCI_A_UART

==================================================分割线========================================================

也许这是个硬件bug吧,在TI论坛上找到了答案,但是不太确定,贴上连接
http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/19023#pi316701=1

http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/304352

现在我该用SMCLK做UART的时钟源,波特率57600,LPM3下工作正常


分享下TI提供的波特率计算工具:http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430BaudRateConverter/index.html

eusci_a_uart_ex1_loopbackAdvanced.zip
  • (转自http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/19023#pi316701=1

    The issue: When using the USCI in LPM3 or LPM4 SMCLK (sourced from the DCO) remains on contrary to statements in the User's Guide (section 15.3.14)

    The Cause: This is actually a known issue and has been confirmed by the factory as a bug (in F54xx & 54xxA). It should be on forthcoming errata when the next revision of the document is released. The following are possible workarounds:

    1. Use a GPIO pin as a chip select (CS) when the MSP430 is receiving data. In the Port ISR, switch the polarity on the interrupt pin edge select, enable the UART and RX interrupt, complete the UART transactions, and go back to sleep on the following GPIO interrupt request (release of the CS).

    2. Enter LPM3 mode with SMCLKREQEN = 0, use a GPIO pin as a CS pin and, in the port ISR switch the polarity on the interrupt pin edge select, enable SMCLKREQEN bit, complete the UART transactions, and clear the SMCLKREQEN bit on the following GPIO interrupt request (release of the CS).

    Both have an inherent latency between CS signal toggling and the MSP430 being able to receive data successfully, which should be accounted for by a delay on the master between toggling the CS signal and transmitting the first data byte. Else, one would still need to calculate the latency in respect to the baudrate and see how many bytes need to be re-sent from the master as to not lose any data. This case would reduce complexity on the master implementation by eliminating the critical timing from CS -> delay -> 1st TX byte.