Однократное и непрерывное измерение ADC: различия между версиями
Андрей (обсуждение | вклад) (Новая страница: «В примере будут запущены измерения ADC(АЦП) в однократном и непрерывном режиме. == Работа с...») Метка: визуальный редактор отключён |
Андрей (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
В примере будут запущены измерения ADC(АЦП) в однократном и непрерывном режиме. | В примере будут запущены измерения ADC (АЦП) в однократном и непрерывном режиме. | ||
== Работа с конфигуратором (В разработке) == | == Работа с конфигуратором (В разработке) == | ||
Строка 8: | Строка 8: | ||
Затем перейдем к настройке самого АЦП. Для этого откроем вкладку АЦП и нажмем включить. | Затем перейдем к настройке самого АЦП. Для этого откроем вкладку АЦП и нажмем включить. | ||
После этого появится настройки канала и источника опорного напряжения(ИОН). Выберем 5-й канал АЦП. | После этого появится настройки канала и источника опорного напряжения (ИОН). Выберем 5-й канал АЦП, которому соответствует вывод Port0.9. | ||
[[Файл:Настройки АЦП в конфигураторе.png|мини|Настройки АЦП в конфигураторе]] | [[Файл:Настройки АЦП в конфигураторе.png|мини|Настройки АЦП в конфигураторе]] | ||
В АЦП есть 3 источника опорного напряжения. Внутренний считается встроенным в АЦП. Настраиваемый ИОН и источник от внешнего вывода ADC_REF считаются внешними по отношению к внутреннему ИОН АЦП. Выберем "Внешний вывод ADC REF". | В АЦП есть 3 источника опорного напряжения. Внутренний считается встроенным в АЦП. Настраиваемый ИОН и источник от внешнего вывода ADC_REF считаются внешними по отношению к внутреннему ИОН АЦП. Выберем "Внешний вывод ADC REF". |
Версия от 08:08, 17 февраля 2023
В примере будут запущены измерения ADC (АЦП) в однократном и непрерывном режиме.
Работа с конфигуратором (В разработке)
Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как АЦП тактируется от шины APB_P_CLK, то зададим делители AHB_DIV и APB_P_DIV. В данном примере оставим делители по умолчанию. В итоге вкладка с тактированием должна выглядеть так:
(Картинка тактирования из конфигуратора. В работе)
Затем перейдем к настройке самого АЦП. Для этого откроем вкладку АЦП и нажмем включить.
После этого появится настройки канала и источника опорного напряжения (ИОН). Выберем 5-й канал АЦП, которому соответствует вывод Port0.9.
В АЦП есть 3 источника опорного напряжения. Внутренний считается встроенным в АЦП. Настраиваемый ИОН и источник от внешнего вывода ADC_REF считаются внешними по отношению к внутреннему ИОН АЦП. Выберем "Внешний вывод ADC REF".
В итоге настройки таймера в конфигураторе должны выглядеть как на рисунке.
Нажимаем кнопку сохранения и генерации. В итоге у нас появится проект для PlatformIo. Далее работа идет в visual studio code.
Использование библиотеки HAL_ADC
В сгенерированном проекте в файле main.c должна быть функция ADC_Init, в которой будут заданы настройки для ADC. Выглядит она так:
static void ADC_Init(void) { hadc.Instance = ANALOG_REG; hadc.Init.Sel = ADC_CHANNEL5; hadc.Init.EXTRef = ADC_EXTREF_OFF; /* Выбор источника опорного напряжения (внешний или встроенный) */ hadc.Init.EXTClb = ADC_EXTCLB_ADCREF; /* Выбор источника внешнего опорного напряжения (внешний вывод или настраиваемый ОИН) */ HAL_ADC_Init(&hadc); }