We are running our CC2630 based design with the Bootloader backdoor functionality enabled. This is connected to the PC through an FTDI based cable.
In a normal situation, the PC software would initialize communication by "ping"-ing the microcontroller with a sequence of three bytes 0x03, 0x00, 0x00 which the micro correctly ignores (as no baud rate detection has been performed yet). Next, after waiting about 450ms, the PC sends the necessary sequence of 0x55, 0x55 (two bytes) for automatic baud rate detection. The microcontroller ACKs this by the regular 0x00, 0xCC sequence and then the PC knows the micro is alive and well and starts asking for ID and a lot of other stuff.
However, we have some situations when the microcontroller does not ACK the automatic baud rate detection. This does not always happen, but when it does happen it is always after a fresh power-up.
In such cases, the PC pings with 0x03, 0x00, 0x00, waits 450ms, then sends 0x55,0x55. The microcontroller ignores this and the PC application stops, and sends a message that it cannot communicate with the microcontroller. If we then run the PC application again (without powering-cycling or resetting the micro), the PC pings with 0x03,0x00,0x00 and the micro (surprisingly) ACKs this with the 0x00,0xCC sequence. I suppose this is an indication that the previous automatic baud rate detection attempt during the previous run of the PC application was successful, but the micro just dd not ACK it at the time. Anyway, on this second run the PC is perfectly happy receiving this ACK to its initial ping, it skips the 0x55, 0x55 sequence (as it is not needed anymore) and continues successfully asking for ID and for the rest of the communication.
Any idea what could be causing this behavior? I have monitored the waveforms on VDDS, VDDR, RESET and DIO2 (which is our BL_PIN_NO) and they look identical in the cases when this situation occurs and in the cases when the communication works from the first attempt after power up.
Best regards,
Cristian



