Драйвер для модулей АЦП, связанных с ними секвенсоров, а также цифровых компараторов.
Подробнее...
Драйвер для модулей АЦП, связанных с ними секвенсоров, а также цифровых компараторов.
- Внимание
- Драйвер позволяет управлять только внутренними настройками модулей АЦП. Системное тактирование необходимо настраивать отдельно с помощью модуля RCC :
- Тактирование ADC.
-
Перед началом работы с АЦП необходимо записать записать во все поля выбора канала, подключаемого к цифровому компаратору, запрещенное значение 0x18-0x1F. Это связано с тем, что после сброса к компараторам подключается нулевой канал, который будучи неиспользованным, (например, секвенсор измеряет по 5 и 6 каналам) приводит к зависанию секвенсоров. С точки зрения драйвера, это проще всего сделать, вызвав функцию ADC_DC_DeInit() для каждого компаратора.
-
Драйвер по умолчанию устанавливает отличную от нуля задержку перезапуска модулей АЦП секвенсорами. Минимальная рекомендуемая величина задержки равна 2. Если используется один секвенсор, либо несколько, запускающиеся только синхронно - данную задержку можно убрать. Если используется больше одного секвенсора и начинают измерения они асинхронно, то каждый из них должен иметь задержку как минимум в 2 такта между перезапусками. Отсутствие задержки перезапуска в асинхронном режиме приводит к гарантированному зависанию секвенсоров.
-
Рекомендуется использовать только один секвенсор, либо несколько секвенсоров, но работающих только синхронно (один источник запуска, одинаковые задержки перезапуска). Любая другая асинхронная конфигурация секвенсоров имеет тенденцию к зависанию. Особенность аппаратная, программно не обходится. Чтобы восстановить работу АЦП после зависания необходимо сделать полный аппаратный сброс микроконтроллера.
Общий вид процесса инициализации:
Более подробно инициализация и использование АЦП показаны в приложенных к драйверу примерах.