Проблема оказалась в нижней строчке:
Код
for(unsigned char i=0;i<16;i++) {USART_Transmit(buf_rx[i]);}
_delay_us(200);
Там было 100. Изменил на 200 и последний байт стал уходить верным. При скорости 115 200 время на отправку байта 79 мкс. Зачем 200 не понимаю.
Код
забейте в контроллер массив констант, как в примере, посчитайте КС и отправьте на комп
Именно так и нашел. Спасибо за дельный совет.
Есть еще одна тонкость. Иногда (примерно 20-30%) случаев контроллер ничего не отсылает на запрос. Теперь думаю откуда эти сбои.