Всегда верное решение!
ГАММА-САНКТ-ПЕТЕРБУРГ
Поставки электронных компонентов и модулей на рынки
России, стран СНГ и Прибалтики
Russian English
(812) 493-51-15
197101, Санкт-Петербург, Певческий пер., 12
(ст.м. "Горьковская"), БЦ "LIGHTHOUSE"

посмотреть на карте

(812) 493-51-15

Технология Peripheral Pin Select в 16-разрядных микроконтроллерах PIC24

Обзор технологии Peripheral Pin Select в новых 16-и разрядных контроллерах PIC24

Часто разработчики малогабаритных электронных устройств сталкиваются с проблемой выбора микроконтроллера под свою задачу. С одной стороны, критичен размер корпуса контроллера, с другой – требуется наличие большого числа различных интерфейсов. Современные микроконтроллеры с корпусами 18-28 выводов, как правило, имеют большое количество встроенных периферийных модулей, однако малое количество выводов может ограничить одновременное использование требуемой периферии. Эта проблема может возникнуть и при использовании контроллеров с количеством выводов 40-64, так как не всегда удается задействовать все  периферийные модули, приходится реализовывать, например, UART или SPI программно.

Peripheral Pin Select, или PPS – это технология, разработанная компанией Microchip, благодаря которой разработчик может ставить в соответствие вывод микроконтроллера и выход или вход его встроенных периферийных модулей. Другими словами, можно выбирать на каких выводах будут находиться нужные периферийные модули. Разрабатывая первые микроконтроллеры с PPS, а конкретно – серию PPS микроконтроллеров PIC24FJ64GA004, компания Microchip оставила всю периферию, что и в ранее выпущенных микроконтроллерах PIC24F, снизив количество выводов до 44 и меньше.

В результате, разработчик может выбрать более дешевый контроллер с нужным набором функций и в меньшем корпусе. Но есть одно ограничение: аналоговые функции и модули их использующие фиксированы, поскольку PPS является цифровым мультиплексором, помещенным между выходами внутренней периферии и выводами контроллера. Также, из-за особенностей аппаратной реализации, фиксированы выводы модулей  I2C и параллельного порта.

Преимущества PPS
- Позволяет программно переопределять выводы, в том числе во время работы контроллера
- Позволяет оптимально использовать внутреннюю периферию контроллера
- Снижает трудоемкость разводки печатной платы, поскольку распределить модули по выводам можно уже после разводки ПП
- Снижает сложность ПП. Нужные модули можно вывести на нужную сторону микросхемы
- Позволяет разнести аналоговую и цифровую часть схемы, что снижает наводки цифровых сигналов на аналоговые и улучшает электромагнитную совместимость изделия
- В результате полного использования периферии снижает сложность программного обеспечения (нет необходимости реализовывать некоторые функции программно)
- Все перечисленное снижает стоимость конечного изделия

Первая серия контроллеров Microchip с функцией PPS – PIC24FJ64GA004. Эта серия представлена версиями контроллеров с памятью программ от 16 до 64 Кб Flash в корпусах с 28 и 44 выводами, из которых можно переопределить 16 и  28 выводов соответственно. При небольшом размере корпуса микроконтроллеры этой серии содержат  все функции более крупных представителей в 64-100-выводных корпусах, за исключением меньшего количества каналов АЦП (10 и 13 вместо 16).

Входы и выходы периферийных модулей контроллеров PIC24FJ64GA004, доступные для переопределения:
- Все функции SPI и UART
- Входы таймеров и входы внешних прерываний
- Входы модулей захвата, выходы модулей сравнения и входы ошибок модуля сравнения
- Выходы аналоговых компараторов
- Входы интерфейса квадратурного энкодера

Недоступные для переопределения функции:
- I2C
- АЦП
- PMP – параллельный адресуемый порт
- Выход часов реального времени и календаря
- Входы прерывания по изменению состояния (CNn)

В документации выводы с PPS называются Remappable Port, или RP. На все такие выводы можно переопределить любой из перечисленных модулей. В случае переопределения модуль получает приоритет над остальными, закрепленными по умолчанию за выводом, в не зависимости от его типа. Это правило не действует только в случае аналоговых модулей.

Для иллюстрации одной из областей применения этой технологии можно привести пример приложения. Пусть в устройстве необходимо задействовать 2 канала АЦП с внешним опорным напряжением,  2 компаратора, 2 UART, I2C, 2 SPI и 4 цифровых входа-выхода общего назначения. Для этих целей подойдет микроконтроллер PIC24FJ64GA006, имеющий 64 вывода.

В этом случае модули UART1/SPI1 и Comparator2/SPI1 находятся на одних выводах (на рисунке 1 отмечены красным), еще 25 не задействованы (белые). Чтобы избежать конфликта, необходимо выбирать еще больший корпус, (удорожание изделия и увеличение количества незадействованных выводов), или работать с внешними SPI устройствами программно (более сложная программная реализация, меньшая скорость).

Если же выбрать МК с теми же параметрами, но с возможностью PPS, PIC24FJ64GA004, то незадействованными останутся только три вывода (см. рис. 2). Отсутствуют  конфликты, поскольку модуль SPI1 переопределен на другие выводы. Также упростилась реализация задачи – нет необходимости реализовывать программный SPI. И, наконец, полученное изделие будет дешевле, так как используется контроллер в меньшем корпусе и с меньшим количеством выводов.

Рисунок 1. Использование выводов МК без PPS

Рисунок 2. Использование выводов МК с использованием PPS

Для управления PPS используется два набора регистров специального назначения. Для их защиты от несанкционированного изменения реализовано несколько механизмов:
- Перед изменением регистров управления необходимо выполнить ряд действий для разблокировки и затем для блокировки управления.
- Есть режим без динамического изменения распределения выводов. То есть произвести запись в регистры, отвечающие за функции PPS можно только один раз после сброса контроллера.
- Все регистры управления выводами имеют теневые копии. При случайном изменении (вследствие, например, электростатического разряда или электромагнитных наводок)  происходит сброс контроллера.

При изменении конфигурации выводов необходимо сначала разблокировать управление регистрами, а затем заблокировать. Для этого нужно записать 46h в OSCCON<7:0>, затем 57h в OSCCON<7:0> и установить или сбросить бит IOLOCK (OSCCON<6>). При отсутствии необходимости изменять конфигурацию более одного раза, можно использовать блокировку - бит IOL1WAY в слове конфигурации контроллера (CW2<4>).

Управление входами любого периферийного модуля производится с помощью 16-и разрядного регистра (один на каждый вход всех модулей), устанавливающего соответствие между выводами RP и входами модулей. Для управления выходами на каждые два вывода RP существует по 16-и разрядному регистру, в который записывается номер выхода модуля (уникальный для любого выхода).

Из этого следует, что PPS позволяет переопределить:
- На один вывод вход и выход разных периферийных модулей
- На один вывод входы двух разных периферийных модулей
- На один выход модуля подключить несколько выводов

Можно перечислить несколько интересных применений этой технологии. Если необходима повышенная нагрузочная способность периферийного выхода, можно назначить один выход на несколько физических выводов и соединить их на печатной плате (см рис. 3). Возможно подключение одного сигнала к нескольким входам (см рис. 4). Также, в целях отладки, можно подключить выход коммуникационного порта на его вход (см рис. 5). Переопределяя назначение выводов в ходе выполнения программы можно использовать один модуль UART с несколькими внешними устройствами (см рис. 6).

Рисунок 3. Повышение выходного тока выходов

Рисунок 4. Подключение одного сигнала к нескольким модулям

Рисунок 5. Замыкание на себя коммуникационных портов (loopback)

Рисунок 6. Использование одного модуля UART с несколькими устройствами

Новое семейство PIC24FJ поддерживается интегрированной средой разработки MPLAB® IDE. Для удобного представления, управления и настройки выводов и модулей, в среду MPLAB встроено мощное средство Visual Device Initializer (см. рис. 7), находящийся в меню Tools. Он имеет графический интерфейс и с его помощью можно легко и быстро сгенерировать код для конфигурации контроллера и всей периферии. Использовать Visual Device Initializer можно не только при разработке программного обеспечения для контроллеров с технологией PPS, он работает почти со всеми контроллерами Microchip, начиная с линейки PIC18F.

Рисунок 7. Общий вид окна Visual Device Initializer

Слева окна Visual Device Initializer находится список функций и периферийных модулей, справа выбранный контроллер (белые выводы не переопределяемые, но настраиваемые, желтые переопределяемые и настраиваемые, черные не настраиваемые, зеленые – уже назначенные, красные – конфликтующие). Посередине изображения контроллера находятся иконки выбранных функций и модулей. Для настройки модуля их необходимо добавить из списка функций мышью с помощь drag&drop. Далее, по клику на них открывается окно настройки (см. рис. 8). После чего, выбрав в меню Visual Initializer -> Code Generation, можно получить готовый код для инициализации контроллера в соответствии с настройками всех модулей и вставить его в ваш проект.

Рисунок 8. Пример настройки порта в Visual Device Initializer

Компания Microchip планирует внедрение технологии PPS не только в маловыводные 16-разрядные контроллеры PIC24F, но и в микроконтроллеры PIC18F, цифровые сигнальные контроллеры dsPIC33, контроллеры в 64-80 выводных корпусах. Использование МК с переназначаемой периферией значительно упростит этап начальной разработки системы, топологию печатной платы. Так же, использование технологии PPS позволит выбрать дешевый микроконтроллер в меньшем корпусе, снизив себестоимость устройства.

Список литературы:
- PIC24FJ64GA004 family datasheet – 39881b.pdf
- www.microchip.com/pps

скачать в формате PDF

 

Регистрация e-mail на получение новостей ::

Статьи для разработчиков

Новости производителей