Ви не увійшли.
Сторінки 1
Спасибо, буду копаться в функциях
Может этот факт вам что-то подскажет. Функция инициализации ADS выбрасывает в сириал Config_Reg : 0 4 10 0
Т.е. при обращении к ADC устанавливается CS_ADC=LOW, CS_FLASH=HIGH, а при обращении к флеш - CS_ADC=HIGH, CS_FLASH=LOW ? И во втором случае ADC воспринимает данные, предаваемые по SPI и как-то меняет свои настройки?
На костылях прекрасно работает без всяких там изменений LOW/HIGH перед опросом устройства, вообще не использую. При периодической инициализации АЦП видно оно настраивается само правильно после FLASH и при этом не мешает карте. Я пользуюсь стандартными библиотеками, которые есть в стандартном наборе ардуино, LOW/HIGH видимо самими функциями библиотек устанавливается. Все время, где бы я не проверял в программе digitalRead(ADS1220_CS_PIN) и digitalRead(SD_CS_PIN) = 1.
Пока лень копаться в регистрах, пользуюсь библиотеками.
Может проблема в том что я сохраняю все время файл открытым и только сбрасываю периодически данные.
Или у Вас CS_ADC не равно HIGH (подтяжка есть?),
А отсюда, пожалуйста по подробнее. Как там подтяжку организовать
Делаю даталогер для научки. Два устройства на SPI - АЦП(ADS1220) и карта памяти на arduino UNO. CS Ноги разные. Все делаю вроде правильно и по отдельности работает. Если сначала делаю замер, а потом сбрасываю на карту флеш, то первый замер правильный. Дальше замеры черт и что. Если ничего не сбрасываю периодически на карту, то замеряет правильно. Пробовал каждый раз инициализировать АЦП поле каждого сбрасывания на карту - помогает, но мне не нравятся эти костыли. Карта работает во всех случаях правильно. Видно надо глубже копать, что там происходит. Подскажите пожалуйста как выйти из ситуации.
Сторінки 1