February 6th, 2013

Yuri Panchul 1994

Как начать работать с Microchip PIC32? Часть вторая. Пошаговая инструкция для начала работы с MPLAB

Продолжение поста выше - http://panchul.livejournal.com/246019.html

А как же скомпилировать программу для этой платы и все запустить? Прежде всего нужно установить на вашем компьютере Microchip MPLAB Х, которую можно скачать отсюда:
http://www.microchip.com/pagehandler/en-us/family/mplabx/#downloads

Существуют версии MPLAB X для Linux, Windows и Mac.

Когда вы все установите, а также (если вам нужно) скачаете файлы моего примерчика с Google code
http://code.google.com/p/pic32-examples/source/browse/trunk/#trunk%2Fshowroom%2Fcalculator
или с моего сайта
http://panchul.com/education/2013_02_03_calculator/sources/
то дальше последовательность действий таковая:

Стартуем MPLAB X. Почему-то процесс загрузки занимает много времени на моем ноутбуке:



Collapse )

Если вы используете или будете использовать MPLAB X, то на какой платформе?

Linux
5(29.4%)
Windows
5(29.4%)
Mac
3(17.6%)
Я не использую и не буду использовать MPLAB X
3(17.6%)
Из-за бугра плюете?
1(5.9%)
Yuri Panchul 1994

Как начать работать с Microchip PIC32. Часть первая

Когда я пошел в первый класс средней школы, во мне проснулась агрессивная сексуальность. Я прятался среди висящих курток в школьной раздевалке, подстерегая одноклассниц, после чего выпрыгивал, хватал и целовал. Я чувствовал себя кем-то наподобие горного льва, подстерегающего в зарослях чапарраля пробегающих мимо зайчегов.

Спустя 35 лет я встретил одну из этих однокласниц, и узнал, что она стала директором школы. Я обсудил с ней идею об использовании микроконтроллеров и FPGA для обучения школьников, и она высказала мне мысль о пользе пошаговых инструкций (школьники не привыкли копать тысячестраничные документации). Поэтому я решил написать текст как начать использовать студенческую плату с микроконтроллером Microchip PIC32, иллюстрируя текст своими фотографиями и картинками, выдранными из документации.

Как начать работать с Microchip PIC32?

1. Предсказуемые вопросы и ответы

Заранее отвечаю:

Вопрос: А почему бы школьникам и младшим студентам не использовать классический Ардуино?

Ответ: Микроконтроллер AVR в классическом Ардуино 8-битный, а Microchip PIC32 - 32-битный. PIC32 в несколько раз быстрее, чем 8-битный AVR, у PIC32 гораздо больше памяти, он позволяет писать более интересные программы. Кроме этого, опыт с основанным на ядре MIPS M4K микроконтроллером PIC32 может быть использован при работе с старшими ядрами MIPS, которые используются в планшетах и сетевых устройствах.

Вопрос: А почему бы школьникам и младшим студентам не использовать Ардуино-подобную систему разработки MPIDE вместо MPLAB X, используемой в инструкции?

Ответ: MPIDE - небольшая элегантная система для школьников, хоббистов, людей которые не любят читать документацию, а также инженеров, которым нужно смастерить что-то небольшое быстренько. MPLAB X - максимально гибкая профессиональная система, которая поддерживает весь спектр возможностей, предоставляемых PIC32. С моей точки зрения, разница в уровне сложности для начала работы с MPIDE и MPLAB X недостаточно велика, чтобы сначала учить MPIDE, а потом - MPLAB X. Если в конечном итоге человек собирается получить профессиональные навыки, лучше сразу начинать с MPLAB X. Если же целью является скажем научить программированию микроконтроллеров гуманитариев, то лучше использовать MPIDE и на нем оставаться.

Вопрос: А зачем вы работаете с устройствами ввода вывода прямо через регистры? Вот, я нашел в интернете библиотеку которая поддерживает SPI/UART/I2C и т.д.

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

Вопрос: А почему вы используете плату Cerebot MX3cK с устройствами ввода-вывода Digilent Pmod, а не chipKit Uno32 c chipKit Basic I/O Shield, которую вы сами же рекомендуете для использования в школах и вузах?

Ответ: Они программируются очень похоже, только пины и устройства ввода-вывода другие. Пусть примеры для Uno32 сделают сами преподаватели для собственной практики, а их студенты не будут имет возможность у меня списывать. Uno32 лучше как универсальная платформа, чем Cerebot MX3cK, так как она совместима по пинам с Ардуино. Хотя для профессионального программиста встроенных систем ценность Ардуино-совместимости не очень велика, но для школьников, кружковцев и гуманитариев это предоставляет возможность использовать MPIDE и Arduino Shields. Иными словами, Uno32 подходит и для обучения профессионалов, и для обучения непрофессионалов, а Cerebot MX3cK для непрофессионалов менее удобен.

Вопрос: А как насчет ARM?
Ответ: Если вам хочется поста про ARM, то напишите его сами.

Вопрос: А как насчет Intel?

Ответ:Intel x86 плохо подходят для встроенных приложений из-за плохой метрики производительность / милливатт и много другого. Intel 8051 устарел и кроме этого плохо привязывается к курсу компьютерной архитектуры, в отличие от конвейерного MIPS M4K / Microchip PIC32. Кстати, один российский профессор сказал мне, что российское Министерство Образования рекомендует учить студентов программированию микроконтроллеров используя советский аналог микроконтроллера Intel 8048 (предшественника 8051) 8-)

Вопрос: Это что, и есть FPGA / ПЛИС?

Ответ: Не, это не имеет никакого отношения к FPGA / ПЛИС-ам. Этот пост про программирование, встроенные софтвер. Использование FPGA / ПЛИС - это разработка хардвера, кроме случая, когда процессор имплементируется на FPGA. Примерчик калькулятора на FPGA у меня будет в отдельном посте. FPGA и микроконтроллеры это столь же разные материи, как конструирование автомобиля (хардвер) и его вождение (софтвер).


2. Общая информация

Ну ладно, а теперь приступим к изложению материала. Вот импровизированный набор юного техника:

_MG_9525

Collapse )

Какой пост-продолжение написать после сегодняшних?

Пример имплементации калькулятора в чистом хардвере на Xilinx FPGA
6(20.7%)
Пример имплементации калькулятора в чистом хардвере на Altera FPGA
3(10.3%)
Организация и защита памяти в ядре MIPS M4K и микроконтроллере Microchip PIC32
1(3.4%)
Все о прерываниях в ядре MIPS M4K и микроконтроллере Microchip PIC32
5(17.2%)
Все о таймерах в ядре MIPS M4K и микроконтроллере Microchip PIC32
0(0.0%)
Все о цифровых портах в Microchip PIC32, а также pull-up резисторах, кнопочках и лампочках
0(0.0%)
Все о prefetch cache в Microchip PIC32 и о связанным с ним ускорении работы программы
1(3.4%)
Все о осцилляторах / генераторах тактовой частоты в Microchip PIC32
0(0.0%)
Подробно об интерфейсе SPI
0(0.0%)
Подробно об интерфейсе UART с исторической перспективой
2(6.9%)
Подробно об интерфейсе I2C
3(10.3%)
Я жажду поста с какой-нибудь русской развиртуализацией на дикой природе
1(3.4%)
Я жажду поста про презентацию, которую Панчул будет делать перед американскими любителями камелий в Санта-Крузе
0(0.0%)
Следущий пост должен быть посвящен Дню Рождения Феминистки Натальи Радуловой, которой 10 февраля исполняется 38 лет
5(17.2%)
Из-за бугра плюете?
2(6.9%)