Atmel D20 garbage in USART output
There are two distinct possibilities here. 


You have the baud rate close but off by some percentage in the 3-5% range. If you are sending in a way to keep the UART pipe full there may not be an opportunity for the receiver end to re-sync its clocking to the center of the start bit and this lead to picking up garbage as the UART ends go out of sync with respect to each other. 
You are sending too fast as the transmitter end. Most UARTS has a transmit buffering of one byte. Sounds like yours has a FIFO that can store up to the first 7 or 8 write bytes. After that, if your sending routine does not wait properly for next FIFO slot to be available the the last one is likely overwritten by the wrong data. 


In either case the fact that you single step a single character at a time and see it function OK confirms it is one of the above two cases because the delay allows the either the receiver to re-sync or the FIFO to empty at the transmitter.