I've been tearing my hair out at this for a while. I have a dsPIC33FJ16GS502 and I've been trying to get it to transmit a single character to my computer but so far, I have been getting absolute garbage:
The uC should be sending 'b' instead of 0x89. I have a gist of my code available here.
I have a 16 Mhz crystal connected to OSC1 and OSC2 with two 27 pF capacitors attached. I also have a 10 uF electrolytic cap at Vcap (datasheet says I should really use tantalum but I don't have any at the moment). I'm using a pickit 2 to program the uC. The TX pin is connected to a FTDI FT232 usb-serial converter. Baud rate is 9600.
Maybe I'm missing something really basic. Any help would be greatly appreciated!
Edit: Here's a photo of my setup:
Edit 2: Measurements from a logic analyzer. There seems to be a fluctuation between 0x89 and a comma: