Опрос мнения

Ваш стаж работы в эфире

более 40 лет
до 40 лет
до 20 лет
до 10 лет
до 5 лет
до 1 года
никогда не работал


Результаты
Другие опросы

Всего голосов: 680
Комментарии: 55

Из галереи

Афоризм

Всего тебе доброго, до свидания. Ну, а ты знаешь - ток первой сетки в моем усилителе мощности......

Сопряжение периферийных устройств к ПК через 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 и программировании для данного микроконтроллера читаем в продолжении…

Смотрите также связанные статьи

05.12.2011 - Сопряжение периферийных устройств к ПК через USB(часть 2. USBkit)
16.08.2011 - Конспект лекций. Фотоэлектрические преобразователи
23.03.2010 - Справочник по отечественным коаксиальным кабелям
23.03.2010 - Цифробуквенная маркировка кондесаторов и резисторов
23.03.2010 - Маркировка SMD-транзисторов
13.02.2010 - A5973D - импульсный стабилизатор напряжения на 2.5А
10.11.2009 - Аналоги микросхем
16.12.2008 - Усилитель мощности порта USB
12.10.2008 - ПРОСТОЙ АНАЛОГОЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ
12.10.2008 - ПРОСТОЙ ПРЕОБРАЗОВАТЕЛЬ НАПРЯЖЕНИЕ-ЧАСТОТА
11.10.2008 - НЕОБЫЧНЫЕ 'ПРОФЕССИИ' МИКРОСХЕМ ДЛЯ ЧАСОВ
11.10.2008 - ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ ТАЙМЕРА СЕРИИ 555
11.10.2008 - ПРИМЕНЕНИЕ ИНТЕГРАЛЬНЫХ МИКРОСХЕМ КФ548ХА1 и КФ548ХА2
11.10.2008 - СМЕСИТЕЛИ НА МИКРОСХЕМЕ UL1042 (К174ПС1)
11.10.2008 - Применение микросхемы К174ПС1
iacpdv
Пункты: 20Дата: 03.02.2017 | Комментарий: 7
iacpdvДошел до момента установки драйверов и процесс застопорился. использую pic18f2550. Думал что винда 64-разр не могла принять драйвер, но на 32-х разрядной XP ситуация повторилась. Подозреваю, что драйвер к 4550 не подходит к 2550. Вопрос, где можно скачать драйвер?
Дата регистрации: 03.02.2017
docsasha
Пункты: 72Дата: 03.10.2016 | Комментарий: 6
docsashaОчень полезная и интересная статья. Впервые использую микроконтроллер с встроенным протоколом USB. Тут у меня возникла проблемка при реализации - схему собрал, бутлоадер прошил, подключил через USB схему с микроконтроллером, при нажатии кнопки БУТ устройство действительно определяется как неизвестное, но вот дальше при указании папки с драйверами система не хочет их ставить (вернее пишет, что они не подходят). Возможно это из-за того что у меня стоит вин7, а судя по содержимому файла inf эта система не поддерживается - если у кого есть дрова на 7ку поделитесь пожалуйста - очень хочется научиться работать с USB
Дата регистрации: 03.10.2016
alex01981
Пункты: 8Дата: 24.05.2012 | Комментарий: 5
alex01981Доброго времени суток. Добавлю и свой коммент. У кого не работает у того руки из зада растут. Программа точно рабочая. Вообще к ней подключил JDM совместимый программатор. А автор первого письма по моему нихрена ничо не знает кроме как умничать, считая себя умным. Вот гвоздь надо ему в руки забить чтоб чушь не писал и народ не буламутил.
Дата регистрации: 24.05.2012
unidiag
Пункты: 3689Дата: 26.02.2012 | Комментарий: 4
unidiagПредставленные схемы все рабочие. Другое дело какие руки?!
Светодиодные панели в Беларуси
Дата регистрации: 28.09.2008
kiberman
Пункты: 13Дата: 20.02.2012 | Комментарий: 3
kibermanСобрал первую схему, и у меня ничего не работает...
Вещь очень нужная... Целый день потратил и всё напрасно, что очень жалко...
Кто знает может есть рабочая схема?
скиньте пожалуйста на мыло info@unick.biz
Дата регистрации: 20.02.2012
dimitriy91
Пункты: 9Дата: 04.02.2012 | Комментарий: 2
dimitriy91Доброго времени суток , автор скажите этот прошивальщик рабочий ??? Вы проверяли его??? Откуда такая резкая критика flint . Я просто уже плату начертил и только потом обратил внимание на критику flint . Если вам не сложно отпишитесь на dimitriy91@ya.ru / спасибо
Дата регистрации: 04.02.2012
flint
Пункты: 8Дата: 07.01.2012 | Комментарий: 1
flint"Как «залить» бутлоадер? Дмитрий Харций в своей «Мечте идиота» советует пользоваться несколькими программаторами, мягко скажем, никудышными"

- в свою очередь скажу на столько мягко на сколь вообще могу в данной ситуации: предложенный вами в данной статье программатор и ПО к нему просто навоз! скорее ПО, compic он и есть compic, только время зря потратил... и только не нужно говорить что у меня "гранаты не той системы" - не канает..

- а вот это блин:
"Секреты «заливки» бутлоадера.
Их попросту нет. Подключаете программатор с вставленной микросхемой. Запускаете программу, выбираете модель PICа. Затем в окно программы открываем HEX-файл программы. Нажимаем «Program device». Вуаля! Готово."
- аффтор, забейте себе гвоздь в голову и перестаньте пороть чушь - если предложенный вами вариант без проблемный то и Волга не река.

- в целом что касается первой половины статьи, то что сам проверил - лажа.
Дата регистрации: 07.01.2012
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.