Попробую сейчас объяснить как это было.
Исходные данные:
*** at90s2313, 10МГц:
* с одной стороны принимает данные (4 байта ) по программному УАРТ-у от силабсового сигнала(48МГц) на скорости 115200. интервал посылок 700 мс.
* с другой стороны отвечает на однобайтовые запросы т.н. блока искробезопасного пятибайтными ответами по аппаратному УАРТ-у на скорости 2400. Интервал запросов 40 мс.
Сначала и то и другое работало по прерываниям. И случалась такая ситуация, что во время обработки прерывания от аппаратного уарт (2400), приходил старт бит байта (прерывание INT1) по программному УАРТ-у(115200).
Затем, отслеживая эту ситуация по флагам, приходилось терять посылку, не обращать на неё внимание.
И все равно порой что-то да проскакивало, за два часа раз. или за три.
Что-то видимо где-то недочищено было, флаг может быть какой-то взводился и не сбрасывался.
В настоящее время аппаратный УАРТ (2400) работает без прерывания. В основном цикле анализируются флаги приема и передачи. Так как скорость небольшая, то можно успеть. Программный УАРТ(115200) работает по прерыванию. Принимаю по нему всю посылку до конца, а потом иду проверять флаги аппаратного уарт-а (2400).
В таком варианте работает железно. Уже два дня подряд

Про RC-цепочки надо почитать. ТОлько начальство не может и не хочет пойтить на аппаратные доработки, во всяком случае в этой партии.
Да и дело-то пока в программе оказалось.