Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32 АЦП, решить проблему с калибровкой

Чт янв 07, 2021 22:01:43

Мяу, уважаемые гуру и др. знатоки! Недавно приступил к изучению STM32.
Мучаю плату NUCLEO-L452RE-P (контроллер STM32L452RE). Использую STM32CubeIDE 1.3.0. и библиотеку HAL. Упёрся, похоже, безнадёжно без посторонней помощи, в следующую проблему.
Пытаюсь заставить АЦП обрабатывать:
- одну пару каналов для дифференциального входа,
- один канал для обычного,
- и три внутренних: Temperature Sensor Chanel, Vbat и Vrefint.
А тут в засаде калибровка!
Для дифференциального входа HAL имеет:
HAL_ADCEx_Calibration_Start(&hadc1, ADC_DIFFERENTIAL_ENDED);
Для обычного:
HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
Как произвести калибровку, чтобы угодить всем каналам?
Спасибо ответившим и сочувствующим.

Re: stm32 АЦП, решить проблему с калибровкой

Чт янв 07, 2021 22:12:34

Можно почитать RM и сделать так, как там написано. Правда, неожиданный совет? ))
Нужно делать две калибровки, одну для single, второй для diff.
Процесс запуска ADC семейства F3/L4 должен выглядеть так:
- disable
- включить power
- delay >10us
- запустить калибровку single end каналов
- после выставления флага завершения ЕЩЕ ждать
- запустить калибровку дифф. каналов
- после выставления флага завершения ЕЩЕ ждать. У меня в записях на полях написано следующее -
"После калибровки надо подождать, задержка нужна и 10us иногда не хватает! Без нее ADC не записывает регистры далее и не стартует."
Всё написано в RM и Errata.

Re: stm32 АЦП, решить проблему с калибровкой

Чт янв 07, 2021 23:40:57

Можно почитать RM и сделать так, как там написано. Правда, неожиданный совет? ))

Совет, как раз, ожиданный. Такие встречаются чаще всего. А вот за то, что продолжили после точки, спасибо.
Ответить