Have a simple UART program set up to send/receive fgrom HyperTerm. I send a "P" from Hyperterm, and my program should then respond back repeating with a particular char. Using a ATmega325A w/ the internal oscillator (8MHz). I initially tried a 38.4 kbps setting (value of 12 gives me 0.2% error @ 8MHz).
Here's the issue: I can send data from the micro to Hyperterm consistently IF the value is below 0x7F. As soon as the most significant bit becomes a "1", all hell breaks loose: sending a 0x80, I get the char for 0xC7, for example (Latin Cap C w/ cedilla according to my chart), instead of the Euro currency symbol I expect.
Here's what I've tried:
1) Changing baud rates. Went all the way down to 4k (103 in BRR). Exact same results.
2) Tweaking OSCCAL. I was able to go up or down about 12 steps in each direction with the same results. Any more, my application wasn't receiving the correct char I send from Hyperterm to kick off this transfer.
3) Verifying Hyperterm settings: set for ANSI, incoming ASCII data forced to 7-bits NOT checked
Anyone have any ideas?