СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2015
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 39 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2015 ет сигнал запроса для DMA. Блок DMA обслуживает этот запрос в зависимо- сти от приоритета канала. Как только DMA получает доступ к периферии, он посылает ей сигнал уведомления. Внеш- нее устройство снимает свой запрос после получения сигнала уведомле- ния от DMA. Как только снимается сиг- нал запроса от периферии, DMA, в свою очередь, снимает свой сигнал уведом- ления. Если появятся новые запросы, периферия может инициализировать следующую транзакцию. В итоге каждый DMA-обмен состоит из трёх операций: 1. Загрузка данных из регистров дан- ных периферии или из области памяти, производимая с помощью внутреннего регистра текущего адреса периферии или памяти. Стартовый адрес, который используется для первого обмена, явля- ется базовым адресом периферии или памяти, и записывается в регистр DMA_ CMARx или DMA_CPARx. 2. Сохранение данных путём за- грузки в регистры периферии или в область памяти, адресуя их через внутренний регистр текущего адреса периферии или памяти. Стартовый адрес, который используется для пер- вого обмена, является базовым адре- сом периферии или памяти, и про- граммируется в регистре DMA_CMARx или DMA_CPARx. 3. Пост-декремент регистра DMA_ CNDTRx, который содержит число транзакций, которые ещё необходи- мо выполнить. Каждый канал может обработать DMA-обмен между регистром перифе- рии, имеющимфиксированный адрес, и адресом в памяти. Количество дан- ных, которые будут переданы, задаёт- ся программно от 1 до 65535 элемен- тов. Регистр, содержащий количество данных, которые необходимо передать, будет декрементироваться после каж- дой транзакции. Размеры элементов данных обмена для периферии и памяти полностью программируется с помощью бито- вых полей PSIZE и MSIZE в регистре DMA_CCRx. Указатели для периферии и памя- ти могут автоматически инкременти- роваться после каждой транзакции, в зависимости от битов PINC и MINC в регистре DMA_CCRx. Если разрешён режим инкремента, то адрес следую- щей транзакции будет адресом преды- дущей транзакции, увеличенный на 1, 2 или 4, в зависимости от выбранно- го размера элемента данных. Первый адрес обмена – это тот адрес, который запрограммирован в регистрах DMA_ CPARx и DMA_CMARx. Во время опера- ций обмена эти регистры сохраняют первоначально запрограммированное значение. Текущие адреса обмена, хра- нимые во внутреннем регистре текуще- го адреса периферии или памяти, недо- ступны программе. Если канал сконфигурирован в не- циклическом режиме, то после послед- ней транзакции DMA-запрос не обслу- живается, поскольку число элемен- тов данных, которые нужно переда- вать, достигло нуля. Чтобы загрузить в регистр DMA_CNDTRx новое число элементов данных, которые надо пере- давать, DMA-канал должен быть забло- кирован. Если DMA-канал блокируется, то DMA-регистр не сбрасывается. Реги- стры DMA-каналов (DMA_CCRx, DMA_ CPARx и DMA_CMARx) сохраняют начальные значения, запрограммиро- ванные на этапе конфигурации канала. В циклическом режиме, после последней транзакции, регистр DMA_ CNDTRx автоматически перезагружа- ется первоначально запрограммиро- ванным значением. Внутренние реги- стры текущего адреса периферии или памяти перезагружаются значе- ниями из регистров базового адреса DMA_CPARx или DMA_CMARx соответ- ственно. К ОНФИГУРАЦИЯ КАНАЛОВ Чтобы сконфигурировать DMA-ка- нал, необходимо выполнить следую- щую последовательность: ● задать адрес регистра периферии в регистре DMA_CPARx; ● задать адрес памяти в регистре DMA_ CMARx; ● задать общее число данных в байтах, которые необходимо переместить, в регистре DMA_CNDTRx; ● задать приоритет канала с помощью битов PL[1:0] в регистре DMA_CCRx; ● задать направление перемещения данных, режим цикличности, режим инкремента периферии и памяти, размер элемента данных перифе- рии и памяти и источник прерыва- ния для завершения половины или всего обмена в регистре DMA_CCRx; ● активировать канал установкой бита ENABLE в регистре DMA_CCRx. Как только канал будет разрешён, он сможет обслуживать DMA-запросы от периферии, подключённой к каналу. © СТА-ПРЕСС
RkJQdWJsaXNoZXIy MTQ4NjUy