I performed several tests and am very happy with the results.
First of all: The Setup
I use the S12XF Starterkit, which is powered by 5V internally and running from a 4MHz Crystal. The Bus Clock is set up to have 40MHz. The devboard exposes TXD, RXD and GND Pins to which I attached a 5V UART->USB adapter and connected it to a PC running Windows 8.1. There, a small C# application listens to any incoming bytes on the (virtual) COM port. The MCU Software generates a 75ms Real Time interrupt during which the data 0x68 0x65 0x6C 0x6C 0x6F (or "hello") is transmitted.
The tested datarates:
I successfully tested the follwing values for the SCI0BD register and received the desired string:
SCI0BD = 0x0041; // 65 -> 38.462 baud
SCI0BD = 0x002B; // 43 -> 58.140 baud
SCI0BD = 0x0016; // 22 -> 113.636 baud
SCI0BD = 0x000B; // 11 -> 227.273 baud
SCI0BD = 0x0007; // 7 -> 357.143 baud
SCI0BD = 0x0005; // 5 -> 500.000 baud
SCI0BD = 0x0002; // 2 -> 1.250.000 baud
Of course it is likely that any combinations in between will function too. A prescaler of 0x0001, which should result in a 2.5Mbps datarate (if I'm informed correctly) was NOT successfull. This setting didn't cause any "DataReceived" Interrupt of the used "SerialPort" class. Nevertheless, on an oscilloscope, the waveform doesn't look so bad (well, you decide, see attached screenshot), so it might as well be a flaw of .NET. EDIT: As of now, I suspect the UART-USB Adapter to be the limiting factor and not .NET.


Nevertheless I want to note the following: for the usual Terminal-Tools (like putty or hterm), the baudrate can not be set up to these exact values. While 38462, 58140 and 113636 are very close to the commonly used baudrates of 38400, 57600 and 115200, these tools may not be capable of receiving data with any of the higher, odd datarates. Thats the reason, I quickly put together a small windows application: I can choose whichever baudrate I prefer.
Best regards
Julian