USART between Atmega16 and Beaglebone black
It would be really good to know about used F_CPU...


Atmega can't run correctly usart at 9600bps with 1MHz clock at default settings.
(1&lt;&lt;USBS) is the receiver set to 2 stop bits ?
The real clock can be set in fuses, not by defining F_CPU (just do 1s ledblink to check if 1s is exactly 1s).
Internal oscillator can drift with voltage/temperature causing unacceptable baud error (>2%).


http://wormfood.net/avrbaudcalc.php