Interrupt RN2483 sleep
The Module Ccommand Reference Users Guide (par. 1.4, page 12) describes how to interrupt the sleep mode of the RN2483:
The baud rate can be changed by triggering the auto-baud detection sequence of the module. To do this, the host system needs to transmit to the module a break condition followed by a 0x55 character at the new baud rate. The auto-baud detection mechanism can also be triggered during Sleep to wake the module up before the predetermined time has expired.
Note:
A break condition is signaled to the module by keeping the UART_RX pin low for longer than the time to transmit a complete character. For example, at the default baud rate of 57600 bps keeping the UART_RX pin low for 938 us is a valid break condition, whereas at 9600 bps this would be interpreted as a 0x00 character. Thus, the break condition needs to be long enough to still be interpreted as such at the baud rate that is currently in use.
I tried to implement this on an TI MSP430 using the Energia (Arduino clone) framework:
[reset, init, OTA, etc]
// Enter sleep mode for 20 seconds
Serial.print("sys sleep 20000\r\n");
// Sleep the MCU for 3 seconds
sleep(3000);
/* Wakeup the LoRa modem */
//
Serial.end();
// Start break signal on MCU TX pin
digitalWrite(P1_2, LOW);
// Wait a while
delay(200);
// Restart serial communication
Serial.begin(57600);
// Send magic break character (auto bauding)
Serial.print(0x55);
delay(100);
// Test RN2483 communication
Serial.print("sys get ver\r\n");
// Read data -> nothing is received
[....]
Entering sleep mode on the RN2483 works fine, I see power consumption drop dramatically but the device does not respond after issuing the break command. Is my break implementation correct? Does anyone have a working code snippet? Thanks!
post edited by Styno - 2016/05/20 02:37:54