Имеется система сбора информации из LPC2132 и ADS1218. SPI работает на частоте около 600кГц. ADS1218 измеряет (пока) сигналы токовой петли 4-20мА. Кварц у него 4915,2кГц. Опора 1,25В. PGA=2. Буферный усилитель включен. Фильтры выключены. После переключения канала берется четвертое измерение, как истинное. Но это все наверное не очень существенно.
Обнаружилась интересная особенность, которая заключается в том, что команда выбора канала не всегда записывается с первого раза. Номер канала (входа мультиплексора) реально изменяется, только после повторной записи.
Алгоритм простой. По активизации сигнала DRDY (по опросу, не по прерыванию) считывается значение DOR, если текущее измерение четвертое по счету, то изменяется номер канала (записью в регистр нового значения MUX), АЦП синхронизируется записью DSYNC и поехали дальше.
Так вот приходится команду изменения номера канала посылать дважды. С одного раза номер канала меняется примерно в одном из трех случаев. Проверяли так: записывали номер канала в регистр MUX и тут же читали его содержимое. Работу самого интерфейса SPI у LPC2132 с ADS1218 проверяли циклической записью/чтением в ОЗУ АЦП, сбоев не было.
Кто-то работавший с этим АЦП может сказать причину подобного поведения АЦП? Может содержимое MUX не меняется, если запущено текущее преобразование? Но в даташите упоминания о такой особенности мы не нашли.