Семейства 16-битных микроконтроллеров PIC24FJ GA и GC

Компания Microchip Technology Inc. продолжает расширять ряд 16-битных XLP микроконтроллеров PIC24FJ выпуском семейства GC с продвинутой аналоговой периферией.

Рассмотрим подробнее родственные семейства GA и GC.

В контроллерах реализована технология сверхнизкого энергопотребления XLP (eXtreme Low Power): потребление в активном режиме на уровне 150 мкА/МГц (300 мкА/MIPS), режимы DMA, развитая периферия, от 40 нА в Sleep и гибкое тактирование делает их самыми низкопотребляющими микроконтроллерами в отрасли. Имеется режим резервного питания VBAT позволяющий продолжать работу встроенного RTCC даже при отключении основного питания, потребляя при этом около 350-400 нА.

Но основной изюминкой контроллеров является конечно же развитая периферия. Семейство GA имеет АЦП 10/12 бит, компараторы, CTMU, драйвер ЖКИ, последовательные порты.

В контроллерах GC значительно расширена аналоговая периферия, а также добавлен модуль USB OTG:

  • высокоскоростной 12-битный АЦП имеет мультиплексор до 50 каналов и скорость преобразования 10М выборок в секунду
  • 2 дифференциальных канала 16-битного дельта-сигма АЦП
  • 2 независимых 10-битных ЦАП
  • 2 операционных усилителя с полосой 2.5 МГц
  • До 50 каналов CTMU – модуль измерения емкостей, временных интервалов (разрешение 100 пс) и опроса емкостных кнопок
  • Модуль USB 2.0 OTG
    • работа в режиме Full Speed (12 Мбит/с) как хост, так девайс
    • модуль восстановления частоты – работа в режиме девайс без кварца

Для удобства разводки печатной платы и оптимизации применения периферии все контроллеры указанных семейств имеют модуль PPS (Peripheral Pin Select), позволяющий подключать любую цифровую периферию на доступные выводы микроконтроллера.

В таблице 1 представлены все описываемые микроконтроллеры.

Таблица 1. Семейства контроллеров PIC24FJ GA и GC.

Контроллер Выводы PPS Flash ОЗУ АЦП 10-бит ЦАП Оп. усилитель Компараторы CTMU, кан. ЖКИ, пикс. USB OTG UART SPI I²C 16-бит таймер C/СPWM
10/12-бит, 500/200 Квыб/с, кан. 12-бит, 10 Мвыб/с, кан. 16-бит ΣΔ, диф. кан.
PIC24FJ128GA310 100 + 128К 24 - - - - 3 24 480 - 4 2 2 5 7/7
PIC24FJ128GA308 80 + 128К 16 - - - - 3 16 368 - 4 2 2 5 7/7
PIC24FJ128GA306 64 + 128К 16 - - - - 3 16 240 - 4 2 2 5 7/7
PIC24FJ64GA310 100 + 64К 24 - - - - 3 24 480 - 4 2 2 5 7/7
PIC24FJ64GA308 80 + 64К 16 - - - - 3 16 368 - 4 2 2 5 7/7
PIC24FJ64GA306 64 + 64К 16 - - - - 3 16 240 - 4 2 2 5 7/7
PIC24FJ128GC010 100 + 128К - 50 2 2 2 3 50 472 + 4 2 2 5 9/9
PIC24FJ128GC006 64 + 128К - 30 2 2 2 3 30 248 + 4 2 2 5 9/9
PIC24FJ64GC010 100 + 64К - 50 2 2 2 3 50 472 + 4 2 2 5 9/9
PIC24FJ64GC006 64 + 64К - 30 2 2 2 3 30 248 + 4 2 2 5 9/9

Новая периферия и другие особенности микроконтроллеров семейств PIC24FJ128GA3xx и PIC24FJ128GC0xx

Прямой Доступ к Памяти (DMA – Direct Memory Access) – режим обмена данными между блоками памяти и периферийными модулями без участия ядра контроллера. Такой режим обмена данными даёт большое преимущество в скорости, а также снижает потребление тока. Передача может осуществляться как на уровне слов, так и байтов.

Ключевые особенности:

  • Шесть независимых программируемых каналов
  • Параллельная работа с ядром (DMA не вызывает задержки)
  • Арбитраж DMA шины
  • Транзакция на уровне слов и байтов
  • 16-битный регистр адресов источника и адресата для каждого канала
  • 16-битный счётчик транзакций

Функции энергосбережения. Как было сказано ранее, микроконтроллеры спроектированы с применением технологии nanoWat XLP, это даёт возможность контролировать расход энергии, выборочно понижая частоту ЦПУ и периферии. Понижение частоты и отключение ненужных модулей в совокупности даёт снижение потребления тока. Микроконтроллеры имеют 4 энергосберегающих режима:

  • Idle
  • Sleep (а также low-voltage sleep)
  • Deep Sleep
  • Vbat (с запущенным или выключенным RTCC)

Таблица 2. Сравнение сберегающих режимов.

Режим Вход в режим Активные модули
Ядро Периферия Сохранение RAM RTCC Сохранение DSGPR0/1
Run N/A + + + + +
Idle Инструкция - + + + +
Sleep Инструкция - Выборочно + + +
Low-Voltage Sleep Инструкция + RETEN - Выборочно + + +
Deep Sleep Инструкция + DSEN - - - + +
Vbat Аппаратно - - - + +

Благодаря двум стабилизаторам напряжения в микроконтроллерах PIC24FJ существует режим Low-Voltage Sleep. Если посмотреть на сравнительную таблицу, то разницы между Sleep и Low-Voltage Sleep не видно, на самом деле между ними существует значительная разница. Особенность Low-Voltage Sleep в том, что питание ядра (Vcore) микроконтроллера переходит на 1,2 вольта и достигается ещё большая экономия энергии, при этом содержание всех регистров и RAM сохраняется. Выход из Low-Voltage Sleep происходит немного медленнее, чем из обычного Sleep т.к. при выходе ядро должно вернуться обратно на питание от 1.8 вольт, а на это требуется некоторое время.

В микроконтроллерах семейства PIC24FJ128GA3xx появился ещё один новый режим резервного питания Vbat, он же есть и в семействе PIC24FJ128GC0xx. Этот режим является аппаратным и в нём поддерживается работа только основных модулей контроллера (RTCC и регистры DSGPRn), для этого используется резервный источник питания подключённый к ножке Vbat микроконтроллера. Переключение на резервный источник происходит автоматически при исчезновении питания на ножке Vdd.

Рис. 1. Блок схема модуля Vbat с резервным источником питания.

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

Выход из Vbat также происходит в автоматическом режиме при возобновлении основного питания. Выполняется процедура POR и контроллер продолжает свою работу с вектора сброса, если при этом RTCC включён, то он продолжает свою работу. Время на выход из Vbat занимает столько же, столько и обычный POR. Для определения того, что контроллер вышел из режима Vbat существует специальный бит VBAT в регистре RCON2, если уже в начале выполнения основной программы бит имеет значение единицы, то мы делаем вывод, что контроллер вышел из режима Vbat. Для дальнейшего определения бит VBAT нужно сбрасывать программно. Если по какой-то причине режим Vbat не используется, то рекомендуется объединить ножки Vbat и Vdd.

Модуль CTMU (Charge Time Measurement Module) – настраиваемый аналоговый модуль измерения времени заряда. CTMU стал популярным и простым решением для разработки устройств с использованием сенсорных кнопок, экранов и других сенсорных решений.

CTMU модуль представляет из себя управляемый контроллером источник постоянного тока 0.55 мкА до 550 мкА (рис 2). Объединённый со встроенными АЦП и компаратором он выполняет следующие измерения:

  • ёмкости (относительной и абсолютной)
  • индуктивности (относительной)
  • сопротивления (относительного и абсолютного)
  • времени с высокой точностью

Рис. 2. Блок схема модуля CTMU.

Наиболее ярким примером применения CTMU является реализация емкостных сенсоров (сенсорной клавиатуры), основывается он на измерении относительной ёмкости. Источником тока, за определённое время и при известном напряжении, заряжается неизвестный внешний конденсатор. По формуле I = C*dv/dt (если принимать время и ток постоянными) напряжение будет зависеть от ёмкости неизвестного нам конденсатора (V = I*t/C). Схема использования сенсорной кнопки приведена на рисунке 3. Конденсатор Csw изображает паразитную ёмкость, а прикосновение пальца добавляет к цепи ёмкость Cf. При изменении ёмкости, напряжение измеряемое контроллером также меняется, и из этого мы делаем вывод о состоянии сенсорной кнопки.

Рис. 3. Относительное измерение ёмкости, сенсорная кнопка.

Некоторые примеры применения CTMU модуля:

  • измерение уровня жидкости
  • датчик присутствия
  • датчик расстояния
  • микрофон
  • датчик давления
  • датчик влажности
  • частотомер

Если хотите узнать более подробную информацию о модуле CTMU и его использовании в устройствах, вам будет интересно прочитать AN1250 и AN1375 от Microchip.

ЖКИ драйвер (рис 4) – генерирует сигналы управления и данных, которые требуются для работы с ЖКИ дисплеями на прямую, поддерживается работа как в статическом, так и в динамическом режиме. 100-пиновые контроллеры семейства PIC24FJ128GA3xx могут управлять дисплеями до 480 точек, в то время, как PIC24FJxxGC010 – только 472. ЖКИ дисплеи повсеместно применяются для различной индикации, и драйвер является самым удобный способом для работы с ними. Компания Microchip предоставляет большое количество примеров по работе с ЖКИ дисплеями, их очень удобно брать за основу для написания своего кода.

Основные спецификации ЖКИ драйвера:

  • прямое управление ЖКИ дисплеем
  • три источника тактирования с предделителем для ЖКИ
  • возможность управления от 30 (для 64-пиновых) до 64 (для 100-пиновых) сегментами в зависимости от режима мультиплексирования
  • статический, 1/2 или 1/3 сдвиг напряжений ЖКИ
  • встроенные резисторы для генерирования напряжения сдвига
  • программный контроль контрастности экрана

Рис. 4. Блок схема ЖКИ драйвера.

RTCC (Real Time Clock Calendar) – предоставляет нам функцию реального времени и календаря, которую можно калибровать. RTCC модуль применяется в основном в устройствах которые привязаны ко времени, например устройство раз в час/день должно посылать какие-либо данные или выполнять по расписанию какие-либо действия.

Особенности часов реального времени:

  • работают в Deep Sleep и Vbat режимах
  • выборочный источник тактирования
  • использует 24 часовой формат времени
  • настраиваемый будильник
  • повтор будильника по счётчику
  • с 2000 по 2099 коррекция високосного года
  • оптимизированы на долгую работу от батарейки
  • возможность периодически будить внешние устройства, не прерывая работу ядра
  • калибровка каждые 15 сек

Рис. 5. Блок схема RTCC.

Периферия семейства PIC24FJ GC

Вся аналоговая периферия нового семейства представлена на рисунке 6.

Рис. 6. Аналоговая периферия семейства микроконтроллеров PIC24FJ GC.

12-битный АЦП основан на конвейерной архитектуре, которая позволяет получить скорость выборки до 10М выборок в секунду, поддерживается до 50 одиночных каналов или до 15 дифференциальных. Модуль имеет списки захвата каналов, различные входы источников опорного напряжения и различный формат выходных данных, а также работает в режимах пониженного потребления.

16-битный дельта-сигма АЦП позволяет получить гораздо более высокое разрешение, нежели у стандартных АЦП последовательного приближения. Скорость захвата от 976 до 62,5К выборок в секунду. Имеет контроль напряжения смещения и коэффициентов усиления встроенного PGA. Может работать в режиме Sleep, а сброс по Reset не влияет на работу модуля.

10-битный ЦАП – в составе периферии PIC24FJ GC имеется два идентичных модуля ЦАП, построенных на основе резистивной матрицы. Скорость установки менее 1 мкс и имеет пропускную способность 1 М выб/с. Несколько входов опоры, буферизированный выход, различные источники запуска делает ЦАПы очень полезной периферией.

Операционный усилитель – в контроллерах имеется два независимых операционных усилителя. Они имеют Rail-to-rail входы и выходы, могут работать на единичном усилении и в режиме компаратора (итого 5 компараторов на кристалле, учитывая наличие 3 компараторов). Отдельно настраиваются на работу в режимах Sleep для контроля энергопотребления системы.

Модуль USB работает в режимах Embedded Host, Device, а также динамически переключаться между режимами (OTG). Полностью аппаратная поддержка транзакций, выделенные модуль DMA и библиотека (входит в состав MAL) позволяют просто и эффективно использовать шину USB в разработках. Важной особенностью является возможность работы модуля в режиме Device без кварца – в составе периферии имеется модуль подстройки внутренней частоты относительно скорости шины USB, контролируемой хостом.

Начало работы и отладка

Для более быстрого и детального ознакомления со своими новыми продуктами, компания Microchip Technology Inc. постоянно выпускает к ним средства отладки. С выходом семейства PIC24FJ128GA3xx также были выпущена отладочная плата LCD Explorer (рис.7) и PIC24FJ128GA310 Plug-In модуль (рис.8).

Рис. 7. LCD Explorer.

Рис. 8. Plug-In модуль.

Семейство микроконтроллеров PIC24FJ128GC010 поддерживается отладочной платой для микроконтроллеров PIC24F Intelligent.Integrated.Analog (DM240015, рис.9). Эта отладочная плата ориентирована на работу с семействами микроконтроллеров с расширенной аналоговой периферией. Она обеспечивает 95% потребностей того, что необходимо разработчикам. Все, что нужно сделать – это добавить датчики.

Рис. 9. PIC24F Intelligent.Integrated.Analog.

Дополнительная информация, документация, примеры применения – на страницах сайта, посвященных 16-битным микроконтроллерам PIC24 www.microchip.com/pic24.