[an error occurred while processing this directive]
|
Хотя и очень сбивчиво и туманно, но почти понятно
Непонятно только как ты разбираешься с каким из 3х слейвов работаешь
Как вариант контроля ошибок -- если есть возможность, конечно, заведи
себе назад те данные, которые передаешь, причем закольцевать их
желательно аппаратно, а не программно, а в самой программе анализировать это как эхо сигнал. Придется тогда обмен строить
по полудуплексной системе
Конечно, до конца не понятно, зачем было городить огород с передачей
по SPI -- интерфейс неплох, но пожалуй не самое лучшее решение имхо
Я обычно сетевой обмен делаю через УАРТ (на необходимой скорости)
плюс небольшие схемотехнические ухищрения, чтобы склеить несколько
передатчиков на одной шине
Лучше всего строить обмен по классической схеме с рукопожатиями и таймаутами
Т.е. мастер -- передал команду + КС (я бы рекомендовал CRC-8бит)
слейв -- если принял корректно, ответ мастеру, иначе молчок
мастер отсчитал таймаут если ничего не прилезло -- повторить попытку еще пару раз (например 3 раза и поставить жирный крест на глухом слейве), если прилезло -- проверяем КС, потом только анализируем пакет
Обычно такая система работает хорошо
Удачи
E-mail: info@telesys.ru