Ярослав555 писал(а):
с битом контроля четности результата преобразования.
Один бит чётности не решает проблему. Ошибка может быть двойная... 100
1100
1 - данные АЦП, где
1 - бит чётности,
11 - двойная ошибка из-за помех, плохого питания... Кирдык моему насосу))
Ярослав555 писал(а):
Если у вас в устройстве есть помехи способные нарушить работу SPI, то тогда до одного места что там Ваш ацп намерял
АЦП может быть вынесен поближе к датчику и подключен к МК проводами по SPI. При этом сам АЦП измеряет всё точно и помех не ловит.
Меня больше интересует надёжность. А если например отвалился вывод на датчике MISO... болтается в воздухе, рядом с силовой проводкой и работает как антенна в приёмнике, собирая все помехи вокруг. А если датчик или МК выносной, на батарейках... нестабильное питание. И т.д.
Если идет речь о внутрисхемном (внутриплатном) размещении БИС абонентов (АЦП и прочие РАСШИРИТЕЛИ) то в таком случае дополнительный контроль штука весьма избыточная. (касательно протоколов с АППАРАТНОЙ ПОДДЕРЖКОЙ SPI и I2C в устройствах с общей синхронизацией по сбросу при подаче питания и/или системному тактированию).
Решение за корректностью схемотехники, топологии разводки печатной платы (монтажа).
Грамотно организованная программа в МК подразумевается "по умолчанию".
Если речь о протоколе обмена между АВТОНОМНЫМИ устройствами - два разнесенных модуля с собственными МК и/или два и более АВТОНОМНО ФУНКЦИОНИРУЮЩИХ МК в пределах одной платы - тогда защита кода штука ЖЕЛАТЕЛЬНАЯ (но не во всех случаях обязательная).
Случай с "случайными механическими/электрическими повреждениями" монтажа и/или отдельных элементов устройства - это задача не CRC контроля а ГРАМОТНОЙ ПРОГРАММЫ СТАРТОВОЙ САМОДИАГНОСТИКИ СИСТЕМЫ.
Как вариант загрузки /обмена через UART
viewtopic.php?p=3167597#p3167597