Однократное и непрерывное измерение ADC: различия между версиями

Материал из MIK32 микроконтроллер
(Новая страница: «В примере будут запущены измерения 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);
}