Hello my friends.
First, sorry for my bad english.
I'm using a CubieBoard2 ( http://cubieboard.org/2013/06/19/cubieboard2-is-here/ ) with Cubian ( a linux distribuition bases on Debian for cubieboard2, Cubieboard + Debian = Cubian) and a MSP430F2274 ( http://www.ti.com/product/msp430f2274 ), DA package, in another board.
The serial communication between the both boards is working fine. Just connect the required pins (TX, RX, VCC and GND) from MSP board to CubieBoard2 pins, connecting at 9600 bauds, 8 data bits, no parity and 1 stop bit.
I need to start the MSP BSL to upload a new firmware from Cubieboard2 to MSP430F2274, using the same UART.
I'd connected also the RST pin (pin 1) and TEST pin (pin 7) of MSP to another 2 pins into cubieboard2.
I wrote a C++ program (for cubie) for use these 2 pins of cubieboard to try to reset the MSP for start the BSL program, following the slau319g.pdf document, but I had no success.
I downloaded the slau319g.zip file also, but I saw another sequence for reset the MSP that I saw in the slau319g.pdf.
The program I made, opens the UART port using 9600 bauds, 8 data bits, even parity and 1 stop bit.
Following the slau319g.pdf, the sequence (item 1.3.1) is:
1 - Set RST and TEST to low (zero).
2 - Do some delay (I did 1ms).
3 - Set TEST to high (one), making the first positive transition.
4 - Do some delay (I did 1ms).
5 - Set TEST to low (one).
6 - Do some delay (I did 1ms).
7 - Set TEST to high (one), making the second positive transition.
8 - Do some delay (I did 1ms).
9 - Set RST to high (one).
10 - Do some delay (I did 1ms).
11 - Set TEST to low (zero).
After it, I did a 3 ms delay and sent a byte 0x80 via UART, but I got no response (byte 0x90 would expected).
Following the sequence describe above, I can reset the MSP, but just the user program starts, not the BSL program.
When I downloaded and uncompressed the slau319g.zip file, I saw another sequence in the "BSL_Files/BSL Scripter/source/BSL_IO_UART.c" file.
This another sequence is:
1 - Set RST and TEST to low (zero).
2 - Do a 250ms delay.
3 - Set RST and TEST to low (zero), again.
4 - Do a 10ms delay.
5 - Set TEST to high (one), making the first positive transition.
6 - Do a 10ms delay.
7 - Set TEST to low (one).
8 - Do a 10ms delay.
9 - Set TEST to high (one), making the second positive transition.
10 - Do a 10ms delay.
11 - Set TEST to low (one).
12 - Do a 10ms delay.
13 - Set RST to high (one).
14 - Do a 10ms delay.
15 - Do a 350ms delay.
16 - Clear/purge all serial data.
17 - Change the baud rate to 9601.
18 - Change the baud rate to 9600.
19 - Do a 350ms delay.
It's correct?
Inside Linux, I can't use 9601 baud rate because Linux has 15 constants for the 15 possible serial speeds, from 75 bauds to 115200 bauds. No other baud rate can be possible.
I really need you help for solve this problem.
Thanks in advance.