microchip

Портирование приложений с семейства PIC18 на PIC24F

2. Периферийные модули PIC24F


2.1. Порты ввода/вывода общего назначения
Порты ввода/вывода семейств PIC18 и PIC24F имеют похожую структуру. Оба семейства имеют набор управляющих регистров PORT, LAT и TRIS для каждого порта и возможность мультиплексирования цифровой и аналоговой периферии. Семейство PIC24F имеет дополнительный регистр ODC для каждого порта, состояние битов которого определяет тип выхода – полный драйвер или открытый сток. Кроме того, увеличено количество выводов, вызывающих прерываний по изменению состояния (табл. 18).
Таблица 18. Основные различия портов ввода/вывода общего назначения семейств PIC18 и PIC24F


Параметры

PIC18

PIC24F

Допустимое входное напряжение выше VDD + 0.3 В

нет

только для цифровых выводов

Внутренние подтягивающие к VDD резисторы

PORTB (все выводы)

Различные порты, индивидуальная конфигурация

Управляющие регистры

PORTx, LATx и TRISx

PORTx, LATx, TRISx и ODCx

Порты конфигурируются на вход при сбросе

да

да

В обоих семействах чтение выводов, сконфигурированных как аналоговые, возвращает «0» в регистре PORTx, а выходные драйверы отключаются, что предотвращает протекание сквозных токов.
Чтение регистра PORTx возвращает цифровое значение потенциала на выводе, вне зависимости от того, как сконфигурирован вывод – как вывод общего назначения, или как вывод, подключенный к периферийному модулю.
Для корректной работы периферийных модулей с однонаправленными выводами – только на выход (например, SPI) необходимо, чтобы  соответствующий бит регистра TRISx был сброшен программно. После разрешения работы периферийного модуля цифровой уровень на соответствующем выводе доступен через чтение регистра PORTx. Мультиплексирование на вывод ОН периферийного модуля может изменить значения скорости нарастания выходного напряжения и максимального выходного тока. Периферийные модули, выходы которых могут находиться в трех состояниях (например, вывод SCL модуля I2C), устанавливают направление вывода, которое доминирует над значением регистра TRISx. При этом значение регистра TRISx меняться не будет.
Для корректной работы периферийных модулей с двунаправленными выводами (например, вывод SDA модуля I2C) необходимо установить соответствующий бит в регистре TRISx. Это позволит периферийному модулю менять направление вывода (вход-выход).
Чтение регистра PORTx возвращает цифровой потенциал на выводе микроконтроллера. Чтение регистра LATx возвращает значение защелки порта. Запись регистров PORTx и LATx приведет к записи в регистр LATx.
При всех видах сброса все биты регистров TRISx установлены, то есть все выводы будут сконфигурированы на вход. Все выводы, имеющие аналоговую функцию, будут сконфигурированы как аналоговые.
2.1.1. Новые функции портов ввода/вывода в семействе PIC24F

2.1.2. Функции портов семейства PIC18, не поддерживаемые в PIC24F
Архитектура портов ввода/вывода семейства PIC24F не поддерживает одновременную работу портов как портов общего назначения и входных портов, подключенных к периферийным модулям. То есть пользователь не может программно формировать цифровые сигналы на входах периферийных модулей. Вывод может использоваться только либо порт ввода/вывода общего назначения, либо как вход периферии.
2.1.3. Рекомендации по портированию приложения

©2007 Гамма-Санкт-Петербург