Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2007 №2

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

Лобачев Дмитрий  
Сафронов Алексей  

Высокопроизводительные 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) теперь является отдельным периферийным модулем, а не включен в состав функций порта ввода/вывода, как это было ранее.
  • Контроль подключения pull-up резисторов осуществляется для каждого из выводов портов.

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

Таймеры

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

Таймерам PIC24 добавлено большое количество функций, в то время как таймеры PIC18F узкоспециализированы. Каждый 16-битный таймер PIC24 имеет собственный регистр периода, настраиваемый предделитель и вектор прерывания по совпадению, может работать как счетчик и как таймер.

Преимущества таймеров PIC24:

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

Между тем некоторые функции таймеров PIC18F в PIC24 не поддерживаются:

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

Микроконтроллеры семейства PIC24F (рис. 1, 2) имеют 5 таймеров, PIC24H — 9.

Рис. 1. Структурная схема таймера 1 PIC24
Рис. 2. Структурная схема таймеров 2, 3, 4, 5 PIC24

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

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

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

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

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

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

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

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

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

Между тем 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.

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

В 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) является асинхронным дуплексным интерфейсом с расширенной по сравнению с EUSART PIC18F функциональностью.

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

Преимуществами UART PIC24 являются:

  • Увеличенная скорость передачи.
  • Аппаратный контроль четности для 8-битных данных.
  • Выбор пассивного уровня на линии.
  • 4-уровневый буфер приемника и передатчика.
  • Тактовый генератор модуля имеет 16-битный предделитель, который обеспечивает установку скорости обмена от 15 бит/с до 1 Мбит/с при тактовой частоте 32 МГц.
  • Контроль четности трех видов.
  • Реализация физического уровня IrDA.

Модуль UART PIC24 не поддерживает синхронную передачу. Если требуется последовательный синхронный интерфейс, предлагается использовать модуль SPI.

АЦП

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

  • Увеличение скорости преобразования; минимально возможный период тактирования уменьшен в 10 раз (с 750 до 75 нс) — таким образом скорость преобразования увеличена до 500 тыс. выборок в секунду.
  • Выходной буфер может быть сконфигурирован как 2 буфера на 8 слов или один на 16. Заполнение буфера возможно по заданной последовательности. В режиме двух буферов результаты могут записываться поочередно в каждый из двух, либо последовательно (сначала в один, потом в другой). Прерывание возникает при заполнении буфера на заданное количество уровней.
  • Преобразованные данные могут предоставляться в одном из четырех форматов: дробные или целые, знаковые или беззнаковые.
  • Режим автоматического сканирования каналов.
  • Каждый из аналоговых выводов может быть индивидуально выбран как вход для АЦП.
  • Дифференциальное преобразование: этот режим позволяет непосредственно измерять разность потенциалов между аналоговыми выводами без внешнего дифференциального формирователя.
  • До 16 входных каналов.
  • Для использования внешнего источника опорного напряжения присутствует 2 дополнительных аналоговых входа, которые могут быть мультиплексированы с остальными аналоговыми выводами.
  • Частота преобразования может быть увеличена, при этом происходит потеря младших разрядов результата.
Рис. 7. Структурная схема модуля АЦП PIC24F

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

  • Возможность одновременной выборки мгновенных значений на четырех входных каналах.
  • Скорость преобразования до 1100 тыс. выборок в секунду.
  • До 32 входных каналов.

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

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

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

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

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

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

Рис. 9. Структурная схема генератора опорного напряжения PIC24

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

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

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

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

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

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

Рис. 10. Структурная схема параллельного порта PIC24F

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

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

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

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

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

Рис. 11. Структурная схема модуля часов реального времени PIC24F

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

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

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

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

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

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

Модуль CAN

Микроконтроллеры семейства PIC24H имеют до двух модулей ECAN (Enhanced Controller Area Network). Модуль поддерживает спецификации CAN2.0 A/B. Основными его особенностями являются:

  • Поддержка протоколов CAN1.2, CAN2.0 A, CAN2.0 B.
  • Передача до 8 байт данных.
  • 6 видов сообщений — Standard Data Frame, Extended Data Frame, Remote Frame, Error Frame, Overload Frame, Interframe Space.
  • Возможность конфигурации скорости обмена (максимум 1 Мбит/с).
  • Автоматическое квитирование.
  • До 8 буферов передачи (объемом до 8 байт).
  • До 32 буферов приема (объемом до 8 байт).
  • До 16 фильтров приема.
  • 3 маски приема.
  • Прерывание по ошибке приема или передачи.
  • Выбираемый источник тактирования.
  • Режим кольцевой тестовой проверки.
  • Работа в режимах низкого потребления энергии.

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

Модуль DMA

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

  • Передача байта или слова.
  • Передача из памяти DMA в периферию или из периферии в память DMA.
  • Косвенная адресация, косвенная адресация с постинкрементом, адресация ping-pong.
  • Передача одного или нескольких блоков данных.
Рис. 12. Структурная схема модуля DMA

JTAG

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

ICSP

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

Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

 


Другие статьи по данной теме:

Сообщить об ошибке