_3m 0 Posted February 12, 2020 · Report post Тема 2014 года уже закрыта так что начну новую. Имеется ads1248 подключенный к stm32f030 на аппаратный интерфейс spi2, cs программный. Вход reset ацп не задействован и подтянут на "1", на "1" также подтянут вход start. При тестировании обнаружено что регистры прекрасно читаются в них правильные дефолтные значения после сброса но запись значения в регистрах не меняет. На форуме ti по данной аномалии есть только одна тема и там ответили что нужно отключить continuous mode командой SDATAC. Я это попробовал но получилось нестабильно: иногда после инициализации регистры пишутся, иногда нет. Посему вопрос: как правильно инициализировать ads1248 ? Нужно при инициализации ли синхронизироваться с drdy ? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Zeal0t 0 Posted February 12, 2020 · Report post 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 команду АЦП Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...