Я работаю над разработкой прошивки для STM32L4. Мне нужно сэмплировать аналоговый сигнал на частоте около 200 Гц. Таким образом, в основном одно аналого-цифровое преобразование каждые 5 мс.
До сих пор я запускал АЦП в режиме непрерывного преобразования, запускаемого таймером. Однако это не позволяет переводить STM32 в режим «Стоп» между преобразованиями, что было бы очень эффективно с точки зрения энергопотребления, поскольку 99% времени не имеет ничего общего с продуктом.
Таким образом, моя идея состоит в том, чтобы использовать режим одиночного преобразования: использовать таймер с низким энергопотреблением, чтобы выходить из режима остановки каждые 5 мсек, запускать одиночное преобразование в обработчике прерываний LPTIM (ожидание завершения преобразования АЦП в опросе) и вернитесь в режим остановки.
Как вы думаете, имеет ли это смысл или вы видите проблемы, чтобы продолжать в том же духе? Я не уверен насчет опроса одиночного преобразования АЦП внутри обработчика, как вы думаете? Я думаю, что одно преобразование на одном канале должно быть довольно быстрым (я работаю на частоте 80 МГц, в таблице указано максимальное время выборки 8 мкс)
Нужно ли отключать / включать АЦП (бит ADEN) между каждым преобразованием?
Кроме того, я должен знать, как долго длится одно преобразование, чтобы оценить, является ли решение интересным или нет. Я запутался насчет времени выборки (бит SMP). В справочном руководстве говорится: «Этого времени выборки должно быть достаточно, чтобы источник входного напряжения зарядил встроенный конденсатор до уровня входного напряжения». Как найти правильное значение SMP?