Сконфигурируем наш блок АЦП в соответствии с поставленной задачей:
. Подаем тактирование на АЦП. Для этого устанавливанием бит ADC1EN регистра APB2ENR в «1».
>APB2ENR |= RCC_APB2ENR_ADC1EN;
. Так как будем использовать DMA для записи результатов преобразования в память, разрешаем DMA для ADC1. Для этого устанавливаем бит DMA регистра CR2 в «1».
->CR2 |= ADC_CR2_DMA;
. Включаем прерывание от АЦП. Для этого устанавливаем бит EOCIE регистра CR1 в «1».
ADC1->CR1 |= ADC_CR1_EOCIE;
. Запускаем калибровку АЦП и ждем ее окончания. Для этого устанавливаем бит CAL регистра CR2 в «1» и ждем его аппаратного сброса.
->CR2 |= ADC_CR2_CAL;(!(ADC1->CR2 & ADC_CR2_CAL)){};
. Задаем источник запуска преобразования. В нашем случае это будет бит SWSTART. Для этого устанавливаем бит EXTSEL регистра CR2 в «1»
->CR2 |= ADC_CR2_EXTSEL;
. Разрешаем запуск преобразования от внешнего источника. Для этого устанавливаем бит EXTTRIG регистра CR2 в «1».
->CR2 |= ADC_CR2_EXTTRIG;
. Задаем время преобразования для каждого канала. Установим его равным 239,5 циклов. Для этого устанавливаем биты SMPх (где х - номер канала) регистра SMPR1 в «1».
->SMPR1 |= ADC_SMPR1_SMP0;->SMPR1 |= ADC_SMPR1_SMP1;->SMPR1 |= ADC_SMPR1_SMP2;->SMPR1 |= ADC_SMPR1_SMP3;->SMPR1 |= ADC_SMPR1_SMP4;->SMPR1 |= ADC_SMPR1_SMP5;->SMPR1 |= ADC_SMPR1_SMP6;->SMPR1 |= ADC_SMPR1_SMP7;
. Составляем таблицу каналов, для которых нужно производить преобразования. И задаем количество этих каналов. Для этого в биты SQх[4:0] регистра SQR3 записываем номера каналов, а в бит L регистра SQR1 количество этих каналов. Нулевой канал АЦП не задаем, так как по умолчанию в биты SQ1[4:0] записаны нули.
->SQR3 |= ADC_SQR3_SQ2_0;->SQR3 |= ADC_SQR3_SQ3_1;->SQR3 |= ADC_SQR3_SQ4_0;->SQR3 |= ADC_SQR3_SQ4_1;->SQR3 |= ADC_SQR3_SQ5_2;->SQR3 |= ADC_SQR3_SQ6_0;->SQR3 |= ADC_SQR3_SQ6_2;->SQR3 |= ADC_SQR3_SQ7_1;->SQR3 |= ADC_SQR3_SQ7_2;->SQR3 |= ADC_SQR3_SQ8_0;->SQR3 |= ADC_SQR3_SQ8_1;->SQR3 |= ADC_SQR3_SQ8_2;->SQR1 |= ADC_SQR1_L_3;
. Включаем АЦП. Для этого в бит ADON регистра CR2 записываем «1».
->CR2 |= ADC_CR2_ADON;
Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами
В металлургии одной из проблем на пути повышения качества производимого
продукта, является проблема обнаружения шлака в струе металла, переливаемого из
одной емкости в другую (из конвертора или печь-ковша в сталь-ковш, из
ста ...
Разработка системы управления импульсным стабилизатором напряжения на основе двухтактного преобразователя
Преобразователь
со средней точкой первичной обмотки трансформатора показан на рис. 1.1.
Рисунок
1.1 - Преобразователь со средней точкой первичной обмотки
В
рассматриваемой схеме преобразователя все элеме ...