Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Микроконтроллеры PIC фирмы Microchip для начинающих выпуск №2


РАССЫЛКА Микроконтроллеры PIC фирмы Microchip для начинающих
Ведущий: Алексей (wmstr@front.ru)


Приветствую Вас, мои подписчики!

Сегодняшний выпуск будет посвящен краткому описанию разных семейств PIC-микроконтроллеров фирмы Microchip. Так же, я дам Вам несколько советов для начинающих!


 Начнем с того, что линейка PIC-микроконтроллеров фирмы Microchip представлена следующими известными сериями: PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC30, dsPIC33. Были еще серии PIC14, PIC17, но они не получили широкого распространения, поэтому рассматривать их не будем! Графическое представление семейств PIC микроконтроллеров Вы можете увидеть на рисунке ниже, скопированного с сайта фирмы Microchip:

графическое представление семейств микроконтроллеров фирмы Microchip.


Теперь, вкратце, остановимся на каждой из серий.

Обратите внимание: здесь, чтобы не наскучить подробностями по каждому микроконтроллеру, приводится описание общего семейства (какая периферия встречается в этой серии, максимальные характеристики микроконтроллеров этой серии).  Для получения информации по конкретному микроконтроллеру  необходимо читать datasheet (общее описание работы с микроконтроллером)!


8-ми разрядные микроконтроллеры.

Микроконтроллеры семейства PIC10:

архитектура микроконтроллеров этой серии самая простая, ресурсов очень мало, но и для них находятся свои области разработок. Например, самое простое, управление выключателем света. Ядро этих микроконтроллеров поддерживает 33 инструкции ассемблерного кода. Аппаратный стек имеет, всего лишь, 2 уровня. Т.е., можно использовать вложенность вызовов функций не более 2-х, иначе, произойдет переполнение аппаратного стека.  Системный генератор только внутренний. Входящий/выходящий ток каждого пина 25мА.  Аналого-цифровой преобразователь разрешением 8-бит. Один 8-ми битный таймер.  Прерывания отсутствуют. Максимальная производительность данных микроконтроллеров – 1 MIPS (1 миллион операций в секунду).

 

Усовершенствованием семейства микроконтроллеров PIC10 стала серия PIC12:

архитектура этой серии уже намного усложнилась. Ядро поддерживает 35 инструкций ассемблерного кода. Стек имеет уже 8 уровней. Количество программной памяти увеличилось до 3,5 Кбайт, количество I/O пинов выросло до 6-ти.  Появились такие модули как:  EEPROM (энергонезависимая память); АЦП, уже с 10-ти битным разрешением; несколько таймеров, как 8-ми битных, так и 16-ти битных; максимальная частота генератора выросла до 20Мгц (можно подключать внешний кварц); появилась схема сброса микроконтроллера по «просадке» питания (BOR); появилась система прерываний с одним вектором. Максимальная производительность микроконтроллеров данной серии – 5 MIPS.

Данная архитектура позволяет использовать микроконтроллер уже в более сложных задачах управления, и не только.  Набор функциональных модулей каждого микроконтроллера серии PIC12 можно посмотреть здесь.

 

Следующая, уже по ресурсам удовлетворяющая многим задачам, стала серия PIC16:

ядро поддерживает 35 инструкций ассемблерного кода. Аппаратный стек имеет 8 уровней. Количество программной памяти увеличилось до 14.3 Кб. В архитектуру этих микроконтроллеров, по сравнению с серией PIC12, добавились последовательные интерфейсы, такие как UART, SPI, I2C, USB; АЦП, у некоторых представителей этой серии, стал 12-ти разрядным; появились модули захвата/сравнения/ШИМ (CCP); появился PSP (параллельный ведомый интерфейс).  Максимальная производительность некоторых микроконтроллеров данной серии – 10 MIPS.

Набор функциональных модулей каждого микроконтроллера серии PIC16 можно посмотреть здесь.  

 

Завершающей серией 8-ми разрядных микроконтроллеров фирмы Microchip стала серия PIC18:

Ядро микроконтроллеров этой серии более оптимизировано для языка программирования Си. Увеличилось количество инструкций ассемблерного кода до 75. Плюс, если ядро поддерживает расширенный режим, добавляется к 75 еще 8 инструкций. Аппаратный стек увеличен до 32 уровней. Появился одноуровневый быстрый стек для прерываний. В него, автоматически, при переходе к обработчику прерываний, сохраняются регистры ядра микроконтроллера: STATUS, BSR, WREG. Программная память выросла до 128Кб. Память данных до 3968 байт. Появился интерфейс для работы с внешней памятью (EMI). Появилась возможность использовать вложенные прерывания (2 вектора, для прерываний с высоким и низким приоритетом). Доработан и усовершенствован ряд периферийных устройств, которые перешли из серии PIC16.  Максимальная производительность – 10 MIPS.

Набор функциональных модулей каждого микроконтроллера серии PIC18 можно посмотреть здесь.


Обратите внимание, что фирма
Microchip проводит политику, увеличения функциональности «старых» кристаллов. Т.е., сейчас стали появляться «новые» кристаллы, которые, с точки зрения аппаратной части, идентичны со «старыми». Разница лишь в ядре, количестве памяти и периферии  микроконтроллеров, скажем проще, увеличены ресурсы «новых» микроконтроллеров. Например, PIC18F452 – «старый», а «новые»: PIC18F4520, PIC18F4620. На платах эти микроконтроллеры взаимозаменяемые. А с точки зрения ресурсов произошли изменения в «новых»: расширенное ядро; 64Кб и 32Кб  программной памяти в PIC18F4620 и PIC18F4520, соответственно; в PIC18F4620 память данных увеличена до 3968 байт; более усовершенствованная периферия.

16-ти разрядные микроконтроллеры.

16-ти разрядные микроконтроллеры фирмы Microchip появились, значительно, недавно.

Хочу сказать, что по сравнению с 8-ми битными микроконтроллерами, изменилось очень и очень многое. Естественно, изменилось само ядро. Появился новый набор инструкций ассемблерного кода.  Программная память увеличилась до 256 Кб. Память данных – до 30720 байт. Изменилась система прерываний: наконец – то, у каждого прерывания появился свой вектор; можно программно выставить на прерывание один из 7-ми уровней приоритетов.  В серии dsPIC33 добавлен DMA – контроллер: очень удобная вещь в плане разгрузок основной программы от обработки прерываний. Появились новые периферийные устройства: кодаки, CAN, RTCC и многое другое, но пока не будем забивать голову этим. Дальше, планомерно дойдем до этих микроконтроллеров, когда закончим работу с 8-ми битными.       

Первым представителем 16-ти разрядных кристаллов стала серия  микроконтроллеров dsPIC30.  Основное отличие их от, более поздних dsPIC33 и PIC24, заключается в том, что команда выполняется за 4 такта, как в 8-ми битных микроконтроллерах. Максимальная производительность микроконтроллеров серии dsPIC30 – 30 MIPS (системная частота 120МГц).  Плюс, микроконтроллеры этой серии 5-ти вольтовые. В dsPIC33 и PIC24  команда выполняется уже за два такта системного генератора. И производительность их – 40 MIPS (максимальная системная частота 80МГц). И они уже 3-х вольтовые. Отличие серий dsPIC от серии PIC24 заключается в том, что в них модифицированное ядро поддерживает дополнительные DSP – инструкции, необходимые для цифровой обработки аналоговых сигналов. Например, одной командой можно выполнять следующие действия: a = b*c, или a = a + b*c, или a = a - b*c и другие. Более подробно про 16-ти разрядные микроконтроллеры можно прочитать здесь.


До следующей рассылки я попрошу Вас скачать и почитать datasheet на микроконтроллер PIC18F452. Попытайтесь выяснить его ресурсы: объем программной памяти, памяти данных, набор периферийных устройств. Также скачайте и почитайте на него errata. Ссылки на datasheet и errata специально не даю. Учитесь искать нужную информацию сами в Internet’е!  Скачанные документы затем не удаляйте - они нам еще очень пригодятся!

В следующей рассылке мы будем рассматривать систему команд микроконтроллеров серии PIC18!



Советы!

Совет №1:  начиная разрабатывать устройство, определитесь сразу, какую функциональность Вы хотите получить от него! Здесь очень уместна пословица: «Семь раз отмерь – один раз отрежь!» Дальше, просчитав все, возьмите микроконтроллер «с запасом» по ресурсам, процентов на 30 больше. Потому что, в процессе написания программы, как правило, часто возникают новые проблемы и задачи, для которых этот запас и будет весьма кстати. Прочитайте datasheet на микроконтроллер, который больше всего подошел по ресурсам. Обязательно прочитайте внимательно errata (описание выявленных ошибок) на него, чтобы, сразу представлять, с чем придется столкнуться при написании программы и разработки схемы.

Совет №2:  учите английский язык, кто еще его не знает, скажу по личному опыту – очень пригодиться и не только при программировании микроконтроллеров! Никогда не надейтесь на русские переводы datasheet!!! Во-первых, переводчик может случайно внести ошибку в свой перевод, во-вторых, ориентируясь на русские datasheet, Вы, тем самым, автоматически, отстаете от передовых разработок производителей микроконтроллеров (русские переводы далеко не сразу появляются в Интернете), в-третьих, Errata,  обычно, очень редко переводиться, а это документ по важности аналогичен datasheet!   



Желаю Вам удачи! До скорой встречи!   



С уважением, Алексей wmstr@front.ru
Cайт разработчиков 2AplusA http://2aplusa.ru


В избранное