[求助] 430串口唤醒

newnew0601   2015-5-27 15:31 楼主
430单片机进入LPM3模式,在9600波特率的情况下,收到10个字节才能唤醒,请问如何能使得收到1个字节就能唤醒呢?

回复评论 (3)

给430发数据的波特率改为2400,4800波特率,2个字节就能唤醒。9600波特率下发10个字节才能唤醒,或者1个字节需要发2遍才能唤醒。大神,指点一下吧
点赞  2015-5-27 15:52
去看看器件手册,唤醒是需要时间的,这个时间是常数,无法更改。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2015-5-27 16:20
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.
点赞  2015-5-27 16:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复