430串口唤醒

2019-03-24 10:11发布

430单片机进入LPM3模式,在9600波特率的情况下,收到10个字节才能唤醒,请问如何能使得收到1个字节就能唤醒呢?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
newnew0601
1楼-- · 2019-03-24 11:52
< 给430发数据的波特率改为2400,4800波特率,2个字节就能唤醒。9600波特率下发10个字节才能唤醒,或者1个字节需要发2遍才能唤醒。大神,指点一下吧
chunyang
2楼-- · 2019-03-24 13:52
 精彩回答 2  元偷偷看……
newnew0601
3楼-- · 2019-03-24 19:07
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.

一周热门 更多>

相关问题

    相关文章