Similar presentations:
АЦП микроконтроллера STM32F100RBT6 фирмы STMicroelectronics
1. АЦП микроконтроллера STM32F100RBT6 фирмы STMicroelectronics
12. АЦП
oразрядность – 12 битАЦП
oКоличество каналов – 16 шт
oВыравнивание данных – направо, налево
oКоэф. деления тактовой частоты – 2, 4, 6, 8
oВыводы преобразования – несимметричные (могут
быть – дифференциальные в других моделях).
oВыбор очередности преобразования
oЗапуск программный или по триггеру
oОдиночное преобразование и преобразование в
непрерывном режиме
2
3. STM32F100_reference_manual
Блок схема модуля ADC – стр. 1593
4. Каналы АЦП
регулярные каналы (regular) – регистр ADC_DRинжектированные (injected) - регистры ADC_JDRx
(x= 1..4)
4
5. Калибровка АЦП
•имеется встроенный механизм автоматической калибровки;•Уменьшает погрешность оцифровки, которая вызывается
неоднородностью внутренних конденсаторов выборки и
хранения сигналов;
•Вычисляется цифровое значение АЦП для каждого
конденсатора в виде корректирующего кода, который
используется для компенсации ошибки преобразования
сигналов;
•Перед началом калибровки – АЦП выключен;
•Запуск калибровки – установка бита CAL в регистре
ADC_CR2;
•Как только калибровка закончена, бит CAL сбрасывается
аппаратно;
•Рекомендуется калибровать АЦП один раз при подаче
питания.
5
6. Код калибровки
// Выполним процедуру калибровки АЦП1 и АЦП2// Выберем режим калибровки для АЦП1 и после запустим АПЦ1
LL_ADC_StartCalibration(ADC1); //
// Ожидаем завершения калибровки АЦП1 и АЦП2
while (LL_ADC_IsCalibrationOnGoing(ADC1) != RESET);
6
7. Настройка АЦП
oData Alignment – выравнивание данных по левому илиправому краю
oScan Conversion Mode – разрешение опроса
нескольких каналов на одном АЦП
oContinuous Conversion Mode – включение/выключение
режима непрерывного/одиночного преобразования.
oDiscontinuous Conversion Mode – разрешение опроса
группы каналов
oNumber Of Discontinuous Conversions – количество
7
каналов для опроса в одной группе.
8. Регистры АЦП
ADC_SR – регистр флагов: EOC (EOS) – завершениепреобразования в регулярном канале.
ADC_СR1 – регистр управления1: EOCIE (EOSIE) –
разрешение прерывания по завершению
преобразования в регулярном канале.
ADC_СR2 – регистр управления2: ADON –
включение/выключение АЦП; SWSTART – запуск
преобразования в регулярном канале.
8
9. Запуск АЦП
// АЦП настройка// Разрешение прерывания в регулярных каналах
LL_ADC_EnableIT_EOS(ADC1);
// включение АЦП1
LL_ADC_Enable(ADC1);
// запуск АПЦ1
LL_ADC_REG_StartConversionSWStart(ADC1);
9
10.
End Of Conversion Selection — позволяет выбрать, будет лиустановлен флаг конца преобразования (EOC) после каждого
преобразования или после завершения всей
последовательности преобразования. Если опрашивать два
(или более) канала, тогда в режиме End of single conversion
прерывание будет вызываться после преобразования каждого
канала, а в режиме End of sequence conversion только после
преобразования обоих.
10
11. DMA (ПДП)
DMA1 – 7 каналов, блок схема модуля DMA1 – стр. 147DMA2 – 5 каналов, блок схема модуля DMA2 – стр. 150
Виды передачи данных:
- из памяти в память;
- из памяти в периферию;
- из периферии в память;
11
12. DMA (ПДП)
// Укажем размер массива для результатов преобразованияLL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_1, 0x03);
// Укажем адрес массива в ОЗУ (для результатов преобразования)
LL_DMA_SetMemoryAddress(DMA1, LL_DMA_CHANNEL_1, (uint32_t) &adc12);
// Укажем адрес периферийного устройства (УВВ) т.е. АЦП
LL_DMA_SetPeriphAddress(DMA1, LL_DMA_CHANNEL_1, (uint32_t) &ADC12_COMMON>CDR);
// Включаем канал контроллера ПДП для опроса АЦП1 и АЦП2
LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_1);
12