СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №3/2015
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 38 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 3 2015 ● бит 1 CONT запускает непрерывное преобразование; ● бит 0 ADON отключает и включает модуль АЦП. Регистры ADC_SMPR1 и ADC_SMPR2 задают время преобразования в каждом канале. Для каждого канала выделены по три разряда, что позволяет задать 8 значений времени преобразования в циклах (000 = 1,5 цикла, 001 = 7,5 цик- ла, 010 = 13,5 цикла, 011 = 28,5 цик- ла, 100 = 41,5 цикла, 101 = 55,5 цикла, 110 = 71,5 цикла, 111 = 239,5 цикла). Регистры ADC_JOFR1…ADC_JOFR4 служат для задания смещения каждо- го канала инжектированной группы (JOFR1, JOFR2, JOFR3, JOFR4). В эти регистры можно записывать 12-бит- ное значение, которое автоматически вычитается из результата преобразова- ния АЦП. Если результирующее значе- ние станет отрицательным, то регистр результата инжектированной группы дополнится битом знака отрицатель- ного значения. Регистры ADC_LTR и ADC_HTR име- ют по 12 разрядов, в которые записыва- ются значения верхней и нижней гра- ниц оконного компаратора. Регистры ADC_SQR1… ADC_SQR3 слу- жат для задания номеров каналов, кото- рые будут опрашиваться в регулярной группе, и общее количество каналов. Разряды SQx[4:0] этих регистров зада- ют номер канала, где х – это номер позиции для преобразования от 1 до 16. Количество каналов в группе задаёт- ся разрядами L[3:0] регистра ADC_SQR1. Например, необходимо регулярно опрашивать 7 каналов в очерёдности 1, 3, 1, 5, 9, 9, 1. Для этого нужно записать в регистр ADC_SQR3 следующие значе- ния: SQ1[4:0] = 1, SQ2[4:0] = 3, SQ3[4:0] = 1, SQ4[4:0] = 5, SQ5[4:0] = 9, SQ6[4:0] = 9. В регистр ADC_SQR2 требуется записать номер последнего седьмого опрашива- емого канала: SQ7[4:0] = 1. После этого следует задать количество опрашива- емых каналов регулярной группы для регистра ADC_SQR1: L[3:0] = 7. Из приве- дённой информации видно, что каналы можно опрашивать в любой последо- вательности. Кроме того, любой канал можно опрашивать несколько раз. Регистр ADC_JSQR, подобно реги- страм ADC_SQRx, задаёт последова- тельность опрашиваемых каналов и их количество для инжектированной группы каналов. Как видно из струк- туры регистра, максимальное количе- ство преобразований в инжектирован- ной группе равно четырём. Количество каналов задаётся в разрядах JL[1:0]. Регистры ADC_JDR1…ADC_JDR4 хранят данные каналов инжектиро- ванной группы. Максимальное коли- чество каналов в инжектированной группе равно четырём, соответствен- но имеется четыре регистра данных. В эти регистры помещается результат преобразований в каждом выбранном канале. Поскольку регистры 16-разряд- ные, а АЦП 12-разрядный, предусмотре- на возможность выравнивания резуль- тата измерения по левому или по пра- вому краю этих регистров. Регистр ADC_DR содержит резуль- тат преобразования АЦП в регулярной группе. В отличие от инжектированной группы, в которой четыре регистра дан- ных, он – один на всю группу. Его струк- тура подобна регистрам JDRx, за исклю- чением старших разрядов 16…31. Эти разряды используются при работе АЦП в сдвоенном режиме, совместно со вто- рым АЦП, именуемым ADC2. Р ЕЖИМЫ РАБОТЫ АЦП АЦП позволяет использовать нес- колько режимов работы. Рассмотрим их поочерёдно, начиная с режима оди- ночного преобразования. В этом режи- ме АЦП выполняет всего одно преоб- разование. Оно запускается после установки разряда ADON в регистре ADC_CR2 для регулярных каналов, или от внешнего сигнала для регулярного и инжектированного каналов. При этом разряд CONT регистра ADC_CR2 должен быть равен нулю. После окон- чания преобразования в выбранном регулярном канале результат преоб- разования сохраняется в регистре ADC_DR и устанавливается флаг EOC. Если установлен разряд EOCIE, гене- рируется прерывание. Для инжектиро- ванного канала результат преобразова- ния сохраняется в регистре ADC_DRJ1 и устанавливается флаг JEOC. Если установлен разряд JEOCIE, генериру- ется прерывание. После этого работа АЦП останавливается. В режиме непрерывного преобразо- вания АЦП начинает очередное преоб- разование после завершения текуще- го. Этот режим запускается от внеш- него источника или путём установки разряда ADON регистра ADC_CR2. При этом разряд CONT регистра ADC_CR2 должен быть равен единице. После каждого преобразования выполняет- ся результат преобразования и сохра- няется аналогично режиму одиночно- го преобразования. В режиме сканирования АЦП выпол- няет поочерёдное преобразование группы каналов. Этот режим выбира- ется установкой разряда SCAN регистра ADC_CR1. Если этот разряд установлен, АЦП сканирует все каналы, выбранные в регистрах ADC_SQRx для регулярных каналов или в регистре ADC_JSQR для инжектированных каналов. Если раз- ряд CONT установлен, то преобразова- ние не останавливается на последнем канале, а вновь запускается с первого канала. Если установлен разряд DMA, контроллер прямого доступа к памя- ти используется для передачи резуль- тата в память по окончании каждого преобразования после установки раз- ряда EOC. Если в регулярной группе использует- ся более одного канала, то для сохране- ния результата рекомендуется исполь- зовать DMA. Это позволяет избежать потерь данных, которые уже хранятся в регистре ADC_DR. В конце преобра- зования регулярная группа формирует запрос DMA для сохранения результа- та из регистра ADC_DR в место, задан- ное пользователем. Режимы работы АЦП с инжекти- рованными каналами также разно- образны. Чтобы использовать запуск инжекционного канала, надо чтобы бит JAUTO был обнулён, а бит SCAN в регистре ADC_CR1 – установлен. Запуск преобразования сигналов для группы регулярных каналов произ- Таблица 2. Каналы АЦП контролируемые оконным компаратором Канал Разряды регистра управления ADC_CR1 AWDSGL AWDEN JAWDEN Отсутствует 0 или 1 0 0 Все инжектированные каналы 0 0 1 Все регулярные каналы 0 1 0 Все инжектированные и регулярные каналы 0 1 1 Один инжектированный канал* 1 0 1 Один регулярный канал* 1 1 0 Один инжектированный или регулярный канал* 1 1 1 *Выбирается разрядами AWDCH[4:0]
RkJQdWJsaXNoZXIy MTQ4NjUy