Научная статья на тему 'Периферия 16-разрядных микроконтроллеров Microchip. Сравнение микроконтроллеров PIC18F, PIC24F и PIC24H'

Периферия 16-разрядных микроконтроллеров Microchip. Сравнение микроконтроллеров PIC18F, PIC24F и PIC24H Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
696
115
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лобачев Дмитрий, Сафронов Алексей

Высокопроизводительные 16-разрядные семейства PIC24F и PIC24H были разработаны компанией Microchip для расширения существующей линейки микроконтроллеров. Предоставляя пользователю хорошие вычислительные возможности и значительно переработанные периферийные модули, семейства PIC24 позволяют увеличить функциональность разрабатываемых устройств. С другой стороны, микроконтроллеры PIC24 разработаны таким образом, чтобы сделать переход пользователя с существующих семейств на новые более легким.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Периферия 16-разрядных микроконтроллеров Microchip. Сравнение микроконтроллеров PIC18F, PIC24F и PIC24H»

Периферия 16-разрядных

микроконтроллеров Microchip

Дмитрий ЛОБАЧЕВ Алексей САФРОНОВ

safronov@gamma.spb.ru

Высокопроизводительные 16-разрядные семейства PIC24F и PIC24H были разработаны компанией Microchip для расширения существующей линейки микроконтроллеров. Предоставляя пользователю хорошие вычислительные возможности и значительно переработанные периферийные модули, семейства PIC24 позволяют увеличить функциональность разрабатываемых устройств. С другой стороны, микроконтроллеры PIC24 разработаны таким образом, чтобы сделать переход пользователя с существующих семейств на новые более легким.

Обзор посвящен различию периферийных модулей семейств PIC18F и PIC24F, PIC24H.

Порты ввода/вывода

Порты ввода/вывода PIC24 и PIC18F схожи: выводы общего назначения портов мультиплексированы с дополнительными функциями периферийных модулей микроконтроллеров. Присутствуют три основных регистра управления: PORTx, LATx и TRISx. PORTx — регистр порта, чтение PORTx возвращает состояния на выводах порта, а запись ведется в защелку PORTx. LATx — защелка порта ввода/вывода. Регистр защелки LATx отображается на память данных. TRISx — регистр выбора направления данных в каналах порта. При любом сбросе биты TRISx устанавливаются в «1».

В новых микроконтроллерах появилось довольно много новых возможностей:

• Каждый из выводов портов с помощью нового управляющего регистра ODCx можно настроить как выход с открытым стоком. Функция переключения вывода в режим открытого стока активна как для выводов общего назначения, так и для периферийных модулей. Выводы модуля интерфейса I2C при включении уже сконфигурированы как выходы с открытым стоком.

• Входы PMP (Parallel Master Port) программно настраиваются как TTL-буфер или буфер на триггере Шмитта.

• Выводы в цифровом режиме толерантны напряжениям от -0,3 до 5,5 В, что позволяет использовать 5-вольтовые компоненты без дополнительных мер согласования.

• Большее количество выводов можно настроить на генерирование прерывания по изменению логического уровня сигнала на них. Функция устанавливается для каждого вывода индивидуально.

• Ведущий параллельный порт (Parallel Master Port) теперь является отдельным пе-

риферийным модулем, а не включен в состав функций порта ввода/вывода, как это было ранее.

• Контроль подключения риН-ир резисторов осуществляется для каждого из выводов портов.

Архитектура портов РІС24 не позволяет выводу, настроенному на выход, работать входом для периферии. Пользователь настраивает вывод либо как выход порта, либо как вход для периферии.

Таймеры

Таймеры РІС24 поддерживают все возможности таймеров РІС18Р, такие как режимы асинхронного и синхронного счета, режим таймера, тактирования ядра частотой 32 кГц

(к выводам TMR1 подключается кварцевый резонатор на 32 кГц). В Р1С24, как и в Р1С18Р, имеются предделители. Для таймеров Р1С18Б можно выбрать различные коэффициенты предделителя, тогда как в Р1С24 оставили 4 варианта— 1:1, 1:8, 1:64, 1:256 (поскольку эти микроконтроллеры 16-разрядные). Все таймеры могут работать в спящем режиме, если они настроены для асинхронного счета, а таймер TMR1 — еще и при тактировании ядра микроконтроллера. Возможен выход из спящего режима и режима ожидания по событию на одном из таймеров. В обеих архитектурах предусмотрен специальный триггер события, запускающий аналогово-цифровое преобразование.

Таймерам Р1С24 добавлено большое количество функций, в то время как таймеры

РІС18Б узкоспециализированы. Каждый 16-битный таймер РІС24 имеет собственный регистр периода, настраиваемый преддели-тель и вектор прерывания по совпадению, может работать как счетчик и как таймер. Преимущества таймеров РІС24:

• Наиболее очевидным отличием между таймерами РІС24 и РІС18Б является разрядность. Все таймеры семейства РІС24 16-разрядные и могут объединяться в 32-разрядные. Предусмотрен специальный механизм, позволяющий в 32-разрядном режиме считывать и записывать все 32 бита без конфликтов.

• Режим разрешения счета: таймер считает только когда на входе ТхСК высокий уровень, а переполнение таймера не приводит к генерированию прерывания. Прерывание возникает только тогда, когда высокий уровень на входе ТхСК сменится на низкий. Между тем некоторые функции таймеров

РІС18Б в РІС24 не поддерживаются:

• таймеры не имеют постделителей.

• кварцевый генератор 32 кГц доступен только ТМИ1.

• реализован только один коэффициент обратной связи кварцевого генератора на 32 кГц.

Микроконтроллеры семейства РІС24Б (рис. 1, 2) имеют 5 таймеров, РІС24Н — 9.

Модули захвата, сравнения, ШИМ

Модули ССР РІС24 (рис. 3) имеют те же особенности, что и модули РІС18Б, но отли-

чаются исполнением. Модули захвата сохраняют мгновенные значения таймеров при возникновении события (передний или задний фронт импульса на выводе микроконтроллера). Модуль сравнения устанавливает определенное логическое состояние на выводе контроллера при совпадении значения выбранного таймера с регистром модуля и позволяет триггеру специального события (Special Event Trigger) начать аналогово-цифровое преобразование.

В PIC24 входы модуля захвата (рис. 4) и выходы модуля сравнения могут использовать таймеры TMR2 или TMR3, в то время как в PIC18F — TMR1 и TMR3. Сравнение может происходить по переднему, заднему, каждо-

му четвертому и каждому шестнадцатому фронту на выводе ICx. Возможен выбор начального состояния на выводе ICx в режиме одиночного сравнения. Вывод ICx выбирается программно, после этого он становится недоступен портам ввода/вывода.

Все режимы ШИМ, поддерживаемые в PIC18F, есть и в PIC24F. Важным отличием является то, что в PIC24F периферия сравнения может генерировать лишь один выходной сигнал, то есть работать на один выход. Таким образом, работа в режиме полумоста требует двух модулей сравнения, а в режиме моста — четырех. Активный выходной уровень каждого модуля сравнения выбирается программно.

Функция автовыключения, доступная в PIC18F, в PIC24 поддерживается опцией Fault protection — последовательность импульсов можно остановить низким уровнем на выводе fault. Выйти из режима автовыключения только аппаратно стало невозможно. Во время автовыключения выходы модуля сравнения находятся в высокоимпедансном состоянии.

В PIC18F присутствует функция установки задержки на переключение мощных MOSFET-транзисторов (dead-band time) в полумосто-вом режиме. В PIC24 эта функция отсутствует, однако она может быть реализована с помощью двум таймеров и двух модулей сравнения. Необходимая задержка определяется разницей в начальных значениях таймеров. Преимуществом этого решения является более широкий выбор времени задержки. В режиме моста каждому таймеру назначается по 2 модуля сравнения. Благодаря этому задержка не ограничивается структурой постделителя, как было в PIC18F.

В PIC24 постделитель у таймеров отсутствует, но его можно реализовать программно.

Между тем PIC24 обладает множеством новых возможностей:

• Независимость модулей и логики: входные модули захвата и выходные модули сравнения независимы друг от друга и могут настраиваться индивидуально (в отличие

установка флага

таймеров совпадения

Рис. 3. Структурная схема модуля сравнения PIC24

к

ICx pin

предделитель

(1,4, 16)

i

логика выбора фронта и синхронизатор

ICM <2:0>(ICxCON <2:0>} выбор режима

ICOV, ICBNE(ICxCON <1;3>)

от 16-битных таймеров TMRy TMRx

логика чтения /записи FIFO

1 1С1<1:0> логика

ICxCON прерывания

г

системная шина

установка флага

.16 ,16

(ICxC0N<7>)

--------------------------------------'О

ICxBUF'

Рис. 4. Структурная схема модуля захвата PIC24

от модулей PIC18F, которые конфигурируются либо как модуль захвата, либо как модуль сравнения, либо как модуль ШИМ).

• Настраиваемый буфер FIFO для модуля захвата позволяет хранить до 4 значений, что позволяет реже обрабатывать прерывания.

• Модуль захвата может быть настроен на вызов события по любому перепаду на выводе (ранее было либо по 1/0, либо по 0/1).

• Модуль захвата может быть настроен на вызов прерывания по каждому событию, по каждому второму, третьему или четвертому.

• Режим двойного сравнения: дополнительный регистр модуля сравнения позволяет создавать 2 перепада на выводе в течение периода, что значительно расширяет набор выходных сигналов ШИМ.

Модуль SPI

SPI PIC24 (рис. 5) является расширением аналогичного интерфейса архитектуры PIC18F. Множество функций использует те же имена выводов и регистров. Как и многовыводные микроконтроллеры PIC18F, большинство микроконтроллеров PIC24 имеют 2 модуля SPI. Здесь они являются независимыми периферийными модулями, тогда как в PIC18F функция SPI встроена в MSSP (Master Synchronous Serial Port), который также включает в себя интерфейс I2C.

В SPI PIC24 реализованы синхронные функции USART.

Оба модуля SPI поддерживают режимы ведущего и ведомого, выбирают активный уровень и фронт тактирующего сигнала.

Следующие возможности модуля SPI PIC24 отсутствуют в PIC18F:

• Восьмиуровневый FIFO буфер способен самостоятельно (без вмешательства CPU) организовывать очередь с многоступенчатым переносом. Он может быть сконфигурирован как одноступенчатый и многоступенча-

тый, может отслеживать количество незаконченных транзакций и адреса последних поступивших данных. Микроконтроллеры семейства PIC24H буфера FIFO не имеют.

• Поддержка 8- и 16-битного обмена.

• Кадровый режим.

• Строб кадровой синхронизации.

• Возможность внешнего тактирования модуля.

• Флаг прерывания SPI.

Модуль I2C

Модуль I2C PIC24 незначительно отличается от аналогичного в PIC18F. Множество битов контроля осталось без изменения. Обе архитектуры поддерживают 7- и 10-битную

адресацию, общий вызов, изменение частоты тактирования, скорости 100 и 400 кГц, работу с несколькими ведущими с отслеживанием коллизий.

С другой стороны, в модуле I2C PIC24 имеются новые возможности, повышающие гибкость системы и эффективность работы:

• Режимы ведущий и ведомый имеют раздельные логику и функции. Любая из этих секций может вызывать собственные прерывания, работать самостоятельно или совместно друг с другом.

• Режим шинного повторителя — прием всех сообщений.

• Бит состояния общего вызова исключает необходимость считывать регистр SPIxBUF для подтверждения адреса.

• Прием сообщений в режиме ведомого по маске: логика в модуле I2C PIC24F позволяет маскировать все биты адреса в режиме как 7-битной, так и 10-битной адресации (в модуле I2C PIC18 можно маскировать до 7 бит в обоих режимах).

• В режиме 10-битной адресации процесс определения адреса значительно упрощен, так как регистр адреса 16-разрядный (не нужно задействовать дополнительный регистр).

По сравнению с PIC18F в PIC24 отсутствует режим «программная реализация ведущего» (Firmware controlled master). В случае программной реализации I2C в PIC24 входные и выходные уровни будут соответствовать стандартным для портов общего назначения.

Модуль UART

Модуль UART PIC24 (рис. 6) является асинхронным дуплексным интерфейсом с расши-

ренной по сравнению с ЕШАИТ РІС18Б функциональностью.

Преимуществами ИАИТ РІС24 являются:

• Увеличенная скорость передачи.

• Аппаратный контроль четности для 8-битных данных.

• Выбор пассивного уровня на линии.

• 4-уровневый буфер приемника и передатчика.

• Тактовый генератор модуля имеет 16-битный предделитель, который обеспечивает установку скорости обмена от 15 бит/с до 1 Мбит/с при тактовой частоте 32 МГц.

• Контроль четности трех видов.

• Реализация физического уровня ІгБА. Модуль ИАИТ РІС24 не поддерживает синхронную передачу. Если требуется последовательный синхронный интерфейс, предлагается использовать модуль БРІ.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

АЦП

Модуль АЦП РІС24Б (рис. 7) последовательного приближения имеет значительные преимущества перед решением, используемым в РІС18Б:

• Увеличение скорости преобразования; минимально возможный период тактирования уменьшен в 10 раз (с 750 до 75 нс) — таким образом скорость преобразования увеличена до 500 тыс. выборок в секунду.

• Выходной буфер может быть сконфигурирован как 2 буфера на 8 слов или один на 16. Заполнение буфера возможно по заданной последовательности. В режиме двух буферов результаты могут записываться поочередно в каждый из двух, либо последовательно (сначала в один, потом в другой). Прерывание возникает при заполнении буфера на заданное количество уровней.

• Преобразованные данные могут предоставляться в одном из четырех форматов: дробные или целые, знаковые или беззнаковые.

• Режим автоматического сканирования каналов.

• Каждый из аналоговых выводов может быть индивидуально выбран как вход для АЦП.

• Дифференциальное преобразование: этот режим позволяет непосредственно измерять разность потенциалов между аналоговыми выводами без внешнего дифференциального формирователя.

• До 16 входных каналов.

• Для использования внешнего источника опорного напряжения присутствует 2 дополнительных аналоговых входа, которые могут быть мультиплексированы с остальными аналоговыми выводами.

• Частота преобразования может быть увеличена, при этом происходит потеря младших разрядов результата.

К вышеперечисленным функциям модуля АЦП микроконтроллеров семейства Р1С24Н добавлены следующие:

• Возможность одновременной выборки мгновенных значений на четырех входных каналах.

• Скорость преобразования до 1100 тыс. выборок в секунду.

• До 32 входных каналов.

Контроллеры семейства Р1С24Н имеют до

двух АЦП с выбором разрядности (рис. 8). Первый модуль АЦП может использовать все 32 входных канала, второй — только первые 16. Пользователь настраивает модуль как 10-битный (4 устройства выборки-хранения (УВХ) с дифференциальными преобразователями, скорость преобразования до 1,1 млн выборок в секунду), либо как 12-битный (одно УВХ с дифференциальными преобразователями, скорость преобразования до 500 тыс. выборок в секунду).

В случае необходимости сохранения более чем одного результата преобразования до вызова прерывания можно использовать передачу данных модулем прямого доступа к памяти (БМЛ). Модулем БМЛ могут пользоваться оба АЦП. Пользователю предоставляется возможность гибкой настройки параметров передачи.

В режиме 10-битного АЦП возможна синхронная работа преобразователей, при этом частота преобразования удваивается.

АУвв-

АУзз ; УВЕР+ 1 1 выбор

Укер-

АМО^ьіД

АМ1^^

АМ2^^

АЮ^-і—

АМ4^^

АМ5^^

АМ6К1-1—

АМ7КН— V-

ами-;— (

А№К!-)—

ДЖОАН-

АМИ кН—

Атг^Н—

АМЗК^

АЖ4К^

АК115

Ук+

V«-

'/|ын

У,пі.

Уімн

Уші.

внутренняя шина данных

16'

компаратор

VI?- У|*+ ЦАП

10-бит ЭА!*

логика

преобразования

форматирование

результата

'

АРОВІ) Р0: дравід

АРісот

Ай1СОМ2

АРЮШ

АРІСНв

АОІРСРв

АОТСвЭ!-

У

управление

выборкой

логика

управления

управление

преобразованием

управление мультиплексорами управление конфигурацией выводов

Рис. 7. Структурная схема модуля АЦП PIC24F

Компараторы и генераторы опорного напряжения

Модули компараторов PIC18F и PIC24 (рис. 9) схожи. Каждый имеет 2 компаратора с выбором различных настроек. В исполнении PIC18F существует 8 режимов, один из которых—выключенные компараторы. В PIC24 возможен индивидуальный контроль множества функций (не подвергающихся изменению в PIC18F). В модуле компаратора вPIC18F иPIC24 присутствует генератор опорного напряжения на основе делителя напряжения питания.

Новыми возможностями модуля компараторов PIC24 являются:

• Модуль компараторов позволяет контролировать индивидуально инверсию входов компараторов, инверсию выходов компараторов, включение компараторов, выбор выхода из выводов порта. В отличие от PIC18F, в котором модуль компаратора ограничен в восьми фиксированных конфигурациях, модуль PIC24 способен воспроизводить любую из них и реализовывать многие другие.

• Модуль PIC24 имеет 2 отдельных бита контроля события, которые отслеживают изменения состояния на выходе компараторов. Генератор опорного напряжения PIC24

идентичен аналогичному модулю PIC18F. Регистры и биты контроля названы одинаково и имеют те же функции.

Модуль PIC18F имеет 2 конфигурации, в которых вход Vin+ един для двух компараторов (используется только один вывод порта). Для выполнения любого из этих режимов в PIC24F вывод Vin+ должен быть соединен снаружи с входом каждого из компараторов, что потребует использования дополнительного вывода порта.

Параллельный порт

Параллельный порт является 8-битным модулем ввода/вывода, специально созданным для обмена данными между устройствами с параллельным интерфейсом, такими как LCD, устройства внешней памяти, а также микроконтроллеры (рис. 10).

Модуль параллельного 8-битного порта поддерживает 16-битную адресацию, имеет 2 вывода CS (chip-select), возможность конфигурации активных уровней управляющих линий, автоинкремент и автодекремент адреса, выбор активных уровней шин данных и адреса, конфигурацию задержек. Модуль может работать как в режиме ведущего, так и в режиме ведомого.

Параллельный порт реализован только в контроллерах семейства PIC24F.

Модуль часов реального времени с календарем (RTCC)

Модуль тактируется от генератора таймера TMR1 и имеет возможность аппаратной

калибровки. Диапазон калибровки составляет ±2,64 с в месяц. Методика следующая: другим таймером определяется ошибка низкочастотного генератора. Затем ошибка переводится в количество неверных тактов в минуту. Каждую минуту полученный результат добавляют или вычитают из таймера модуля. К значению ошибки можно добавить поправку на температурный дрейф и старение кристалла.

Модуль (рис. 11) содержит информацию о секунде, минуте, часе, дне недели, дне месяца, месяце и годе. Данные в регистрах хранятся в формате BCD.

В модуле предусмотрена возможность гибкой настройки системы тревог. Тревога может настраиваться с точностью до полусекун-ды, секунды, 10 секунд, минуты, 10 минут, часа, дня, недели или месяца. Тревога может повторяться до 255 раз. По каждой из них возникает прерывание.

Учет високосных годов и перевод времени на зимнее и летнее должен осуществляться программно.

Модуль часов реального времени реализован только в контроллерах семейства PIC24F.

Модуль вычисления CRC

Модуль предназначен для вычисления циклического избыточного кода с произвольным полиномом от 1 до 16 бит. Модуль имеет 16-уровневый буфер данных FIFO и предоставляет возможность прерывания по завершению вычисления.

Модуль вычисления CRC присутствует только в контроллерах семейства PIC24F.

Модуль CAN

Микроконтроллеры семейства PIC24H имеют до двух модулей ECAN (Enhanced Controller Area Network). Модуль поддерживает специ-

фикации СЛШ.0 Л/В. Основными его особенностями являются:

• Поддержка протоколов СЛЫ1.2, СЛЫ2.0 Л, СЛЫ2.0 В.

• Передача до 8 байт данных.

• 6 видов сообщений — Standard Data Frame, Extended Data Frame, Remote Frame, Error Frame, Overload Frame, Interframe Space.

• Возможность конфигурации скорости обмена (максимум 1 Мбит/с).

• Автоматическое квитирование.

• До 8 буферов передачи (объемом до 8 байт).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• До 32 буферов приема (объемом до 8 байт).

• До 16 фильтров приема.

• 3 маски приема.

• Прерывание по ошибке приема или передачи.

• Выбираемый источник тактирования.

• Режим кольцевой тестовой проверки.

• Работа в режимах низкого потребления энергии.

В микроконтроллерах PIC24F модуль CAN отсутствует.

Модуль DMA

Модуль DMA (прямой доступ к памяти) имеется только в микроконтроллерах семейства PIC24H (рис. 12). Он позволяет эффек-

тивно передавать данные между периферией (модули захвата, сравнения, таймера, SPI, UART, ECAN, АЦП) и ОЗУ без использования программных ресурсов. Модуль использует отдельную шину для обмена данными и не влияет на работу ядра. Каждому модулю периферии в DMA соответствует свой номер IRQ. Контроллер DMA поддерживает следующие функции:

• Передача байта или слова.

• Передача из памяти DMA в периферию или из периферии в память DMA.

• Косвенная адресация, косвенная адресация с постинкрементом, адресация ping-pong.

• Передача одного или нескольких блоков данных.

JTAG

Впервые в практике Microchip контроллеры семейств PIC24 получили JTAG-интерфейс, позволяющий проводить граничное сканирование устройства, программировать Flash-память программ и проводить внутрисхемную отладку.

ICSP

Стандартный ICSP интерфейс также будет присутствовать в каждом контроллере PIC24, что позволит использовать привычные средства разработки и производства (ICD2, PROMATE3 и т. п.). ■

i Надоели баннеры? Вы всегда можете отключить рекламу.