Hi all,
I’m in trouble with the BD command to change programmatically the baud rate in a
XBee Pro S1.
The case:
I’ve more than 800 embedded systems in the world that use either XBee Pro S1 and XBee3
in a custom broadcast token ring net (upon 802.15.4).
All chips are programmed with XCTU to work at 56700.
Now we would increase programmatically (upgrading our embedded firmware) from 57600 to 115200 using the BD + AC command at board startup and gain some improvements in communication with DIGI modules.
This because I can’t back to us all the DIGI modules to be re-programmed to work with 115200.
ALL works fine with XBee3, all modules change from 57600 to 115200 using following code:
; ATBD7
ApiFrameId = ApiFrameId + 1
aTx[1] = COM_START_DELIMITER
aTx[2] = 0
aTx[3] = 5
aTx[4] = API_AT_COMMAND
aTx[5] = ApiFrameId
aTx[6] = ASCII.CHAR_B
aTx[7] = ASCII.CHAR_D
aTx[8] = 7
CALL RADIO_API_OPERATIONS
IF subResultF
RETURN
ENDIF
; apply changes - ATAC
; this messare is without check for subResultF due to
; baudrate changes.
ApiFrameId = ApiFrameId + 1
aTx[1] = COM_START_DELIMITER
aTx[2] = 0
aTx[3] = 4
aTx[4] = API_AT_COMMAND
aTx[5] = ApiFrameId
aTx[6] = ASCII.CHAR_A
aTx[7] = ASCII.CHAR_C
CALL RADIO_API_OPERATIONS
Then I wait for a while, I change the embedded board from 57600 to 115200 and continue with
DIGI module commands.
The same code with XBee Pro S1 seems not to work.
After AC command the baud rate of DIGI remains at 57600.
What I’ve mistake?