_3m 4 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба Тема 2014 года уже закрыта так что начну новую. Имеется ads1248 подключенный к stm32f030 на аппаратный интерфейс spi2, cs программный. Вход reset ацп не задействован и подтянут на "1", на "1" также подтянут вход start. При тестировании обнаружено что регистры прекрасно читаются в них правильные дефолтные значения после сброса но запись значения в регистрах не меняет. На форуме ti по данной аномалии есть только одна тема и там ответили что нужно отключить continuous mode командой SDATAC. Я это попробовал но получилось нестабильно: иногда после инициализации регистры пишутся, иногда нет. Посему вопрос: как правильно инициализировать ads1248 ? Нужно при инициализации ли синхронизироваться с drdy ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeal0t 0 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба TPIN_ADC_CS ::off(); TPIN_ADC_START::off(); TPIN_ADC_POWER::on (); // на основании DS АЦП нужно 16 ms на запуск после подачи питания msDelay(16); TPIN_ADC_CS::on(); TPIN_ADC_START::on(); { CMD(ADS1248_CMD_RESET); CMD(ADS1248_CMD_SDATAC); CMD_RegRead(); // читаем все регистры } TPIN_ADC_START::off(); ........... TPIN_ADC_START::on(); { CMD_RegWrite(); // пишем измененные регистры } TPIN_ADC_START::off(); из рабочего проекта правда у меня есть управление пином START CMD( x ) - посылает по SPI команду АЦП Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться