I am writing a bootloader program that communicates to a PC using the MSP430 UART operating at 9600 baud. Our hardware includes a 32KHz clock crystal which, in the main program, is used to calibrate the DCO at 2.4 MHz via a counter interrupt. The DCO is then used to generate 9600 baud for general PC communication (not bootloading). This works well. However, I would like generate 9600 baud in the bootloader code without the need to calibrate the DCO. I tried using the DCO correction factors from Information A and they worked for some units but not others. I also tried generating 9600 baud using the 32 KHz clock crystal. This is a pretty inaccurate baud rate that causes too many byte errors(???).
I would like to know if there is a way of generating an accurate 9600 baud that works on all of our units and does not require the DCO calibration interrupt that we use in our main program. I am wondering what the BSL code does as, in my experience, the BSL seems to communicate with the PC well at 9600 baud.
-Tom-