Сопряжение периферийных устройств к ПК через USB(часть 1. Демоплата PIC18Fxxxx)

Довольно актуальная проблема в радиолюбительской практике. COM, LPT – отжили свой век. Производители зачастую отказываются интегрировать данный хлам в материнскую плату.
А поговорим мы о продукте от Microchip (
MICROCHIP.COM) под названием
PIC18F4550.
Итак, микроконтроллер
PIC18F4550(и урезанная по количеству
портов ввода/вывода его версия
PIC18F2550) является ничем иным, как интеллектуальным устройством согласования между внешним миром(т.е. вашими девайсами) и персональным компьютером по высокоскоростной шине USB 2.0(хотя можно использовать, конечно, и как независимый МК). Т.е. считать данные с датчиков, измерить температуру воздуха или даже управлять некими сложными устройствами наподобие трансиверов и синтезаторов частот сейчас(а, вернее, уже с 2004 года) стало гораздо проще - с помощью данного интегрального решения.
Сразу о цене. Здесь ни холодно, ни жарко. В среднем цена на микроконтроллер составляет около 10$. В Беларуси можно заказать через интернет-магазин
RADIO.OF.BY . На Ждановичах цена чуть ниже.
Что имеем внутри?
Это конечно модуль сопряжения с ПК по USB2.0. Памяти в этом малыше 32 Кбайта, что ой как много для наших с вами повседневных нужд!!! Память здесь «флеш» - то бишь количество перезаписей равно несколько сотен тыш раз)))… Портов ввода/вывода для
PIC18F4550 – 35, для
PIC18F2550 – 24. Важным достоинством можно считать наличие 10-рязрядных АЦП – здесь их также в избытке: для
PIC18F4550 – 13 АЦП,
PIC18F2550 – 10 АЦП. Поясню, для тех кто в танке…
В составе этих микросхем находятся аналогово-цифровые преобразователи(АЦП), которые из своего названия подразумевают преобразование аналогового сигнала в цифровой вид, - в нашем случае от 0 до 5 В(напряжение питания). Как понять 10-разрядный? Да просто… Если на настроенный вход АЦП подать ноль(вывод на землю), то фактически, в компьютер мы передаём слово из 10 бит: 0000000000. Подали 5 В(напряжение питания) и слово, с которым будем работать в программе на ПК уже примет вид: 1111111111(или 1023 в десятичной). Не сложно подсчитать, что разрешение такого 10-разрядного АЦП будет 5/1023=0,0049 В!
Microchip выпускает данные микроконтроллеры в привычных DIP, а также в корпусах для поверхностного монтажа. Здесь каждый выбирает, что ему ближе…
Ниже приведены рисунки из даташита:



Прошивка PIC18F4550(PIC18F2550)
Наличие постоянной связи с ПК подразумевает, что не плохо бы было и программировать данный микроконтроллер через порт USB, тем более, что довольно неприятно выпаивать микросхему, особенно, при поверхностном монтаже. Это обстоятельство учли разработчики Microchip. Поэтому далее мы пойдём именно по этому пути, хотя никто не запрещает прошивать каждый раз стандартным программаторами для COM или LPT.
На первом этапе, воспользоваться COM-программатором, к сожалению, придётся. Поясним почему. Изначально нам необходимо записать в начальную область памяти(новая микросхема ведь пуста)) так называемый бутлоадер(
bootloader) – его программа написана программистами Microchipa, а
скачать его можно здесь. Исходные коды бутлоадера в виде проекта С++ для MPLab
находятся здесь. Этот самый бутлоадер необходим для работы с программой программатора USB.
Как «залить» бутлоадер? Дмитрий Харций в своей «
Мечте идиота» советует пользоваться несколькими программаторами, мягко скажем, никудышными. А никудышные они потому, что требуют в своём составе источник питания, что не очень есть гуд. Помимо того, программа PP18 очень любит повисеть. Её вот прям, хлебом не корми – дай повисеть))). Разбираться с ней я не стал, а воспользовался проверенным временем дуэтом: COMPIC + PIC18F Programmer.
Схема программатора COMPIC:
Программатор конструктивно выполнен на небольшой печатной плате, которая подключается непосредственно к COM-порту(без кабеля). Монтаж достаточно компактный, с использованием SMD-резисторов.
На рисунке PIC18F2550 ждёт своей участи «обутлоадериться»:
Программная оболочка для программатора COMPIC(скачать):
Секреты «заливки» бутлоадера.
Их попросту нет. Подключаете программатор с вставленной микросхемой. Запускаете программу, выбираете модель PICа. Затем в окно программы открываем HEX-файл программы. Нажимаем «Program device». Вуаля! Готово.
Собираем командный пункт.
Командным пунктом для наших экспериментов станет демоплата по такой вот незамысловатой схеме…
Или тоже самое для PIC18F2550:
Демоплата, показывает базовые принципы обращения стыка микроконтроллер-ПК. Исходные коды для консоли на C++ приведены здесь..
Во второй части статьи, мы с Вами напишем программу для ПК, которая будет обмениваться инфой с пиком, а именно: будем читать величину напряжения на переменном потенциометре(вход АЦП AN0), перевод портов вывода в логические состояния(в качестве индикаторов – светодиоды) и чтение логического состояния портов ввода/вывода.
А пока...
После прошивки бутлоадера в микроконтроллер и сборки девайса, наступило самое время подключить его к компьютеру…
После подключения ничего не происходит. Не удивительно, ведь основная область памяти пуста))) Для того, чтобы «зашить» её(уже по-взрослому, через USB) загрузим микроконтроллер в режиме бутлоадера. Для этого нажимаем кнопку Boot и удерживая её кратковременно нажимаем Reset…
Windows определит неизвестное USB-устройство. Драйвера
скачайте здесь…
Запускаем программу PICDEM(скачать)
Выбираем наше устройство(device), 99.9% что это будет PICDEM FS USB 0(Boot).
Теперь, наконец, загружаем (Load HEX File) файл основной программы для
PIC18F4550 или для
PIC18F2550 и нажимаем Program Device.
Рестартуем кнопкой Execute или Reset на плате.
Устройство полностью функционально, согласно своей программе. Драйвера
устанавливаем теже…
О искусстве работы в MPLab и программировании для данного микроконтроллера читаем в продолжении…
Светодиодные панели в Беларуси
Вещь очень нужная... Целый день потратил и всё напрасно, что очень жалко...
Кто знает может есть рабочая схема?
скиньте пожалуйста на мыло info@unick.biz
- в свою очередь скажу на столько мягко на сколь вообще могу в данной ситуации: предложенный вами в данной статье программатор и ПО к нему просто навоз! скорее ПО, compic он и есть compic, только время зря потратил... и только не нужно говорить что у меня "гранаты не той системы" - не канает..
- а вот это блин:
"Секреты «заливки» бутлоадера.
Их попросту нет. Подключаете программатор с вставленной микросхемой. Запускаете программу, выбираете модель PICа. Затем в окно программы открываем HEX-файл программы. Нажимаем «Program device». Вуаля! Готово."
- аффтор, забейте себе гвоздь в голову и перестаньте пороть чушь - если предложенный вами вариант без проблемный то и Волга не река.
- в целом что касается первой половины статьи, то что сам проверил - лажа.