Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
19.03.2009, 07:55 | #1 |
Форумец
|
PIC контроллеры. Программаторы и первый проект на PIC
Тема открыта для тех, кто хочет научиться работать с PIC контроллерами, но боится сделать первый шаг. Открыта просто так, для души.
Обзор информации по программаторам. 1. Наиболее простые программаторы - это так называемые JDM-программаторы, работающие через COM порт. Типичный представитель этих программаторов PonyProg (www.lancos.com) и его клоны. Как его настроить - журнал Радио №5 за 2003 год. Недостатки, простой, но работает на грани фола, так как COM порт используется нетрадиционно и не все порты могут сделатьто, что от него хотят. Наиболее удачный клон - ExtraPic. Управляющие программы PonyProg, IC-Prog, WinPic. 2. Программатор от параллельного порта PC - AN589, это программатор от Microchip, хороший, но LPT порт уже редкость. Управляющие программы - IC-Prog. Вся информация по этим двум типам программаторов здесь ftp://ftp.radio.ru/pub/2008/05/P&P.pdf или в журналах Радио в течении всего 2004 года. 3. Более сложный программатор-отладчик ICD2 - оригинал работает от COM и USB (подпольная кличка - "шайба" из-за круглого корпуса) , его клон от COM порта здесь http://ra4nal.qrz.ru/main/icd2.html - отличный программатор, Управляющие программы - MPLAB. 4. PICKIt2 - хит программаторов-отладчиков для PIC по соотношению цена/возможности, читать здесь www.pickit2.ru. Управляющие программы - MPLAB и собственная оболочка. Фича данного программатора - имеется возможность программирования AVR. 5. PICKIt3 - продолжение линии PICKit2, новые контроллеры поддерживаются теперь только им. Управляющие программы - MPLAB и собственная оболочка. Существует множество и других программаторов, но это либо экзотика либо более профессиональные и, соответственно, менее доступные по цене и начинающим оно никчему. Все приведенные здесь программаторы делал, последние два находятся в повседневной работе. Для тех, кому интересно, продолжение последует. Вопросы по теме можно задавать. Последний раз редактировалось petrd; 12.09.2012 в 20:49. |
19.03.2009, 15:28 | #2 |
Registered User
Сообщений: 391
Регистрация: 16.11.2008
Не в сети |
|
19.03.2009, 15:49 | #3 |
Форумец
|
Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров, смотрите здесь http://lord-n.narod.ru/walla.html
|
19.03.2009, 16:13 | #4 |
Ща скалОтим
|
PIC vs AVR - старая избитая тема.
Про себя могу сказать, что начинал с асм для PIC, потом асм для AVR, потом Си для AVR. В принципе, все равно с чего начинать. Функционально контроллеры похожи, принципиальные отличия можно по пальцам сосчитать. Но Си для контроллеров - полная фигня, если хотите получить стабильность коротких временных интервалов. Тут нужно писать руками кусочки на асме, вставлять их в Си, а в итоге после компилирования получается программа, которая работает вообще не так, как задумывалось. Ну вот так скомпилировалась... |
19.03.2009, 17:53 | #5 |
Форумец
Сообщений: 115
Регистрация: 26.07.2007
Возраст: 37
Не в сети |
1. Что касаемо программы, лично я немного понял это после того, как в институте сделал курс лабораторных работ по КР580... - такой зодоровенный ящик, у него клавиатурка как у счетной машинки. Составляешь программу на бумажке, там же операторы заменяешь машинными кодами и затем все это дело вбиваешь и тд...жуть, но зато это помоголо возиметь представление о реально происходящих в процессорах вещах, что мне НЕ удалось после курса информатики на паскале.
2. После КР580.... возникло желание программировать микроконтроллеры, в интернете дох..фига было про ПИК-и и я решил - будет ПИК. Однако в это же время устраивался на работу, там мне посоветовали - забей на ПИК учи АВР. Тут мне попалась обалденная весч - Алгоритм Билдер (просьба не пинать меня - все равно мнения своего не изменю) - просто отличная среда для начинающего - графический ассемблер - объединяет наглядность, читаемость, качественный мануал и простоту программирования (в версии 4.90 еще можно было программировать через LPT порт, используя тупо пять проводов. Потом остался только COM, ну там тоже нет дольших проблем - вся схема - 4три резистора и 2 диода помоему...). На работе его все конечно обосрали, т.к сами юзают Си (и вроде не обламываются), но я пока сижу на АБ, т.к для СИ нужно собирать программатор, а лучше житаг...короче лень, да и надобности не было. Вот.... 3. Что касаемо книг. Покупал по полодости, пока итнрнета не было, потом сразу забил на это неблагодарное дело, гораздо дешевле распечатать нужный раздел на принтере (мое мнение). Документацию на английском, на сами МК АВР - не юзал, т.к. книги Евтифеева и Ко - дословный переведенный ДАТАШИТ. |
19.03.2009, 20:25 | #6 |
Форумец
Сообщений: 115
Регистрация: 26.07.2007
Возраст: 37
Не в сети |
Ну не знаю. У меня обычно получается так: нужно мне например какой нибудь протокол реализовать, я его и распечатываю (опцию ставлю - 2 страницы документа на странце А4). Почитал, изучил, сделал, выкинул (ну как правило они потом просто теряются). А следующий раз освежить в памяти можно и по монитору. Зато книжки сейчас печатают чуть ли не на туалетной бумаге, либо стоят они от 500р... Я не могу себе этого позволить.
|
20.03.2009, 07:50 | #7 |
Форумец
Сообщений: 523
Регистрация: 08.02.2007
Возраст: 49
Не в сети |
Обязвтелен Mplab 7.xxx. Для ....PIC16,PIC18 - рекомендую использовать С компилятор HT PICC и HT PICC-18. Для более старших семейств родной микрочиповский С копилер. Крайне желателен Proteus 7.2
Популярные девайсы PIC16F628, PIC16F676, PIC16F876, PIC16F877, PIC18F1320, PIC18F452 - их можно реально купить и цены приемлимые. |
20.03.2009, 08:09 | #8 |
Форумец
|
Итак, продолжение. Про среды разработки и литературу.
Про программаторы уже сказал, из приведенных ранее настоятельно рекомендую PICKit2, цена в www.trt.ru порядка 1650 р., самостоятельная сборка - порядка 800 руб. Если дорого, то ExtraPIC. Если есть руки, то все делается на ура. Далее о средах разработки, то есть о программах для PC в которых пишутся программы для PIC. Язык ассемблера - родной язык любого процессора, в том числе и для PIC. Microchip, как разработчик предоставляет для этих целей бесплатную среду разработки - называется MPLAB, текущая версия на сайте www.microchip.com (на данный момент версия 8.86). Далее идут языки программирования высокого уровня (компиляторы) - Бейсик, Паскаль, Си. Есть и С++ для PIC, но это экзотика для МК никчему. Разработчики в основном используют Си. В почете у них компилятор языка Си от фирмы HI-TECH (недавно вошла в состав Microchip). Среда платная, но в нете имеются крякнутые. На сегодня популярная версия этого компилятора PICC STD 9.60 (имеется PRO версия, но она глючная), далнейшего развития STD нет. Ассемблер всему голова! Но самый быстрый старт - это Си от команды mikroE (www.mikroe.com) из города Белград. Что делаем? 1. Качаем компилятор MikroC 8.2.0.0 отсюда - http://www.mikroe.com/en/compilers/m...c/download.htm (весит 10 M), на момент последнего редактирования MikroC давно нет, а есть MikroC PRO версии 5.61 2. Help на русском можно скачать здесь - http://piclist.ru/PICC_CCS_PCWH_MicroC_HT-PICC.html Устанавливаем и разглядываем, среда очень дружественная, но на английском, что не понятно подглядываем в русском help. Про литературу по PIC: 1. Спецификации (datasheet) на любой PIC контроллер, естественно, находится на сайте разработчика www.microchip.com. 2. Кто не дружит с английским, переводы здесь - http://www.microchip.ru/lit/?mid=1x0. 3. Книга Яценков. Микроконтроллеры Microchip. Практическое руководство http://vrtp.ru/index.php? act=lib&CO...e&article=2388. Про PIC16F84 - контроллер старый, но для общего понимания книжка пойдет. Видел в магазинах города. 4. Журналы Радио 2001 год, начиная где-то с №6 статьи А. Долгий. Разработка и отладка устройств на МК. Про PIC16F84 и MPLAB. Про литературу на Си: 1. Керниган и Ричи. Язык программирования Си (ищем в нете и магазинах города, сам покупал, это БИБЛИЯ языка Си). 2. Книга Шпака http://vrtp.ru/index.php?act=lib&COD...e&article=2115. Больше на первое время не надо. Ассемблер пока не трогаем, ищем PIC16F628 с буквой А или без (а , вообще пойдет любой PIC16F или PIC18F). Кому интересно, продолжение следует, вопросы по теме задаем. Последний раз редактировалось petrd; 12.09.2012 в 20:56. |
21.03.2009, 08:29 | #10 |
Форумец
|
Считаю это как пожелание, поэтому далее про ExtraPIC.
Данный программатор использует COM порт нестандартно, поэтому предупреждаю, что у тех, кто не имеет COM портов (например, на ноутбуках), но надеются на переходники USB-COM, то есть шанс пролететь мимо кассы. Если кто-то подумает про работу с оболочкой PonyProg, то мой совет - не надо, объясняю почему - автор PonyProg делал его в основном для АVR, а PIC-и в этой программе вторичны, поэтому детально работа с ними не проработана. 1. Здесь ссылка на оригинал (схема, детали и т.д.) - http://www.5v.ru/extrapic.htm 2. Здесь практически тоже самое + платы под утюг - http://miliamper.narod.ru/Extra-PIC/Extra-PIC.htm, где взять и как работать в SprintLayout я надеюсь знаете. 3. Полезная программа от А.С. Долгий TCOM для проверки COM портов, поможет при настройке и проверке, ссылку на скачку смотрим в майском РАДИО за 2003 год здесь http://www.radio.ru/archive/ftp/2003/ 4. Оболочки для программаторов качаем здесь: IC-PROG - http://www.ic-prog.com/index1.htm (download откроется через визит к спонсору), WinPIC - http://www.winpic800.com. 5. Сссылка из первого поста ftp://ftp.radio.ru/pub/2008/05/P&P.pdf окажет неоценимую помощь, тем кто решил собрать программатор. Это все, что необходимо для того, чтобы в Вашем хозяйстве появился программатор типа ExtraPIC. Если кто решился и есть вопросы, то задаем. |
21.03.2009, 10:25 | #11 | |
Registered User
Сообщений: 391
Регистрация: 16.11.2008
Не в сети |
Цитата:
где найти, цена и что там еще.. тож где найти, цена как я понял гдето 1650р, или собрать самому? |
|
21.03.2009, 13:32 | #12 |
Форумец
|
Про покупку PIC контроллеров.
PIC контроллеры продают все кому не лень, но цены могут быть в разы больше их реальной стоимости. Основной представитель Microchip в России - это фирма Гамма из Санкт-Петербурга (www.gamma.spb.ru) и их филиал - фирма Тритон в Москве (www.trt.ru), стало быть цены на продукцию Microchip у них самые низкие. Но покупка через Тритон предполагает заказ на сумму не менее 1000 р. + почтовые расходы. В Воронеже: 1. Кое-какие PIC можно купить сразу - в магазине Радиодетали (новое название не запомнил), тот что возле магазина Электроника, но на заказ, по-моему, не возят. 2. Магазин Радиохит (www.radio-hit.ru) на Кольцовской - возят на заказ, цены достаточно высокие, но в течении недели привозят, нужна предоплата. Другими вариантами не пользовался. Про PICKit2: Покупка. Цена в Тритоне - 1588 руб.+ почта (http://www.trt.ru/Stock.php?Part=400), смотрите код PG164120. Можно заказать в Радиохит, цены можно узнать на их сайте (чему я совсем не верю, например, PICKit2 у них висит по 1592 руб.) так, что надо звонить, телефон на сайте есть. Самостоятельная сборка. Обойдется рублей 800 вместе с корпусом. По основным компонентам (по ценам Тритона) PIC18F2550 - 180 руб, 24LC512 (2 штуки) - 200 р., корпус - 100 руб., 300 руб на остальное по мелочи. |
21.03.2009, 16:32 | #13 |
Форумец
|
Еще немного про PIC контроллеры.PIC бывают 8, 16 и 32 разрядные. Нас интересуют только 8-разрядные.
8-разрядные - делятся на младшие, средние и старшие. Младшие - PIC10 и PIC12 (распространенные PIC12F629,PIC12F675), обычно в корпусе из 8 ног. Средние - PIC16 (распространенные PIC16F84A (старичок),PIC16F628A, PIC16F876, PIC16F877A (студентов по ним мучают), PIC16F887(из последних самых продвинутых в этом семействе)), корпуса от 14 до 40 ног. Старшие - PIC18 (распространенные PIC18F452, PIC18F2550 и PIC18F4550(c USB), семейство продолжает развиваться), корпуса как у PIC16. Буква F в названии говорит о том что тип памяти - Flash. При покупке на что обращать внимание: PIC16F84A-20I/P (20 - работает на частоте до 20 МГц, I - не важно, P - корпус DIP) PIC16F628A-I/SO (SO - корпус SOIC). PIC16F628A-I/P (P - корпус DIP). Для начала конечно нужен корпус DIP. Путешествие по MikroC. Открываем MikroC. При установке по умолчанию экран черный, поменяем на экран на белый - Tools->Options в открывшемся окошке меняем в Scheme что есть на mikroDream. В MikroC очень много примеров, попробуем один. Project->Open Project и идем по пути C:\Program Files\Mikroelektronika\mikroC\Examples\EasyPic5\P1 6F877A\LED_Blinking и открываем файл LED_Blinking.ppc И вот она программа на языке Си. Все что зеленое - это комментарии. Черное и синее - собственно программа. Эта программа может с периодом 1 сек мигать 8-ю светодиодами (светодиоды подключены так - Help -> Help -> mikroC Library -> ADC Library (схема внизу страницы)). Выходим из помощи и идем Project -> Edit Project и видим имя проекта, путь к проекту, название контроллера для проекта, частота кварца и ниже слово конфигурации, которое выставляется галочками (аналог fuse для AVR). Нажимаем Cancel. Вверху нажимаем на кнопку с шестеренками (Build Project), что-то происходит (идет компиляция и генерируется выходной hex файл) и внизу видим три строчки, где верхняя зеленая строчка и написано Success(Release Build) - все прошло ОК. Сворачиваем MikroC и через проводник идем по пути - C:\Program Files\Mikroelektronika\mikroC\Examples\EasyPic5\P1 6F877A\LED_Blinking и в этой папке находим файл LED_Blinking.hex. Это конечный результат нашего непосильного труда. Внутри этого файла все, что надо для работы PIC (программа и слово конфигурации). Теперь если бы да кабы. Это я вот о чем - если бы у вас был программатор, контроллер и собранная схема, то прошив этим файлом контроллер, а затем поставив его в схему и включив питание, то мы бы увидели как мигают светодиоды. P.S. Если вы скачали программу IC-Prog, то cодержание HEX файла можно посмотреть в ней. Об успехах пишем, вопросы задаем. Продолжение следует. Последний раз редактировалось petrd; 26.03.2009 в 10:27. |
21.03.2009, 20:28 | #14 |
Форумец
Сообщений: 69
Регистрация: 10.12.2006
Возраст: 58
Не в сети |
|
21.03.2009, 21:49 | #15 |
Registered User
Сообщений: 391
Регистрация: 16.11.2008
Не в сети |
|
21.03.2009, 22:17 | #16 | |
Форумец
|
Цитата:
EXTRA-PIC (100-200 р.) и PICKit2 (800 - 1600 р.) девайсы разных весовых категорий. EXTRA-PIC - просто программатор от COM порта и очень желательно внешнее питание и т.д. и т.п., но простой как три копейки и собирается из подручных материалов, программатор начинающего для получения начального опыта программирования PIC. PICKit2 - отладчик - программатор (питание и управление от USB) с функциями анализатора, с минимальными доработками может превратиться в анализатор последовательных протоколов SPI, I2C и т.д. и т.п., к тому же внутренний контроллер PICKit2 (PIC18F2550) помимо основных функций сам может быть полигоном для опытов пользователя, по возможностям здесь www.pickit2.ru. Я тоже в свое время начинал с PonyProg, кстати, родителя EXTRA-PIC. На сегодня в моем хозяйстве имеются - клон ICD2, PICKit2, EasyPIC5 с mikroICD и AN589 (на память), а PonyProg уже нет в живых и я знаю точно, что к программаторам типа JDM (коим представителем является EXTRA-PIC) уже не вернусь. Дабы не быть голословным желающие могут пройтись поиском по основному русскоязычному форуму по PIC контроллерам www.microchip.su и выяснить предпочтения по программаторам и это будет уже не мое личное мнение. EXTRA-PIC и PICKit2 - это, например, как ВАЗ - 2105 и Мерседес. Для передвижения вполне достаточно ВАЗ-2105, но почему-то практически все в душе хотят или уже ездят на иномарках. А поездив на иномарках уже не хотят обратно садиться на ВАЗ-2105. Обычный путь сначала ВАЗ-2105, потом Мерседес. А если есть возможность, то лучше сразу Мерседес. Вывод. Каждый свой выбор делает сам. |
|
23.03.2009, 07:02 | #19 | |
Форумец
|
Цитата:
|
|
23.03.2009, 13:22 | #21 |
Форумец
|
|
23.03.2009, 14:18 | #23 |
Форумец
|
|
23.03.2009, 23:08 | #24 |
Форумец
Сообщений: 69
Регистрация: 10.12.2006
Возраст: 58
Не в сети |
petrd, пасибо за ссылку но с английским напряг а схемка так себе запчастей рубликов на 200
прошивочки на PIC18 случаем нет или где встречали?? там на сайте что-то есть но не как не пойму что потому что немецкий учил и то..... |
24.03.2009, 07:07 | #25 |
Форумец
|
Прошивка на этой же странице файл в архиве "PICkit 2 Firmware v2.32". Прошивка также находится внутри IDE MPLAB (если она конечно установлена). Собственная оболочка программирования PICKit2 на этой же странице - "PICkit 2 V2.60 Install" (весит 3.9 MB), но это при условии, что установлен .NET Framework, если Framework не установлен, то там же с ним "PICkit 2 V2.60 Install with .NET Framework", но весит уже 30.3MB.
|
24.03.2009, 10:56 | #27 | |
Форумец
|
Цитата:
Код:
• High-Endurance Flash/EEPROM cell: - 100,000 write Flash endurance - 1,000,000 write EEPROM endurance - 40 year data retention 1 000 000 циклов перезаписи EEPROM, 40 лет хранение информации. Есть однократно программируемые, но их еще поискать надо. |
|
25.03.2009, 17:32 | #28 |
Форумец
|
Итак, первый реальный проект из разряда "Hello World".
1. Создаем папку C:\PROJECT\MikroC, в ней и будем создавать проект. 2. Открываем Mikroc и идем Project -> New Project. 3. В открывшемся окне - даем имя проекту - Project Name пишем Test_PIC16F628A - указываем путь - Project Path пишем C:\PROJECT\MikroC или ищем путь через Browse - Description - ничего не пишем - Device - выбираем PIC16F628A - Clock вставляем 004.000000 - Device Flags - ставим галки напротив WDT_OFF, LVP_OFF, MCLRE_ON, INTOSC_OSC_NOCLCOUT, осталные должны быть без галок. Нажимаем OK. Тем самым установили конфигурацию МК - тактовая частота 4 МГц, сторожевой таймер отключен, низковольтовое программирование отключено, вывод MCLR будем использовать для внешнего сброса, тактовый генератор внутренний, тактовый сигнал наружу выводиться не будет. Далее в главном окне с именем Test_PIC16F628A.c пишем Код:
void main() { TRISB=0; // настроили выводы PORTB на вывод while(1){ // организовали вечный цикл PORTB=~PORTB; // инверсия уровней на выводах PORTB delay_ms(1000); // задержка на 1000 мс = 1 сек } }// main в верхней должно быть Success (Release Build), в двух нижних показано количество используемой памяти программ и памяти данных и свободной памяти. После удачной компиляции в папке C:\PROJECT\MikroC будут находиться все файлы данного проекта, в том числе и файл прошивки Test_PIC16F628A.hex. Если прошить МК данным файлом, то получим мигание 8-и светодиодов (по приведенной схеме) с периодом 1 сек. P.S. Практически бесполезный проект, но пригодный для начального опыта. Проверен в реальном железе. Схема под данный проект. Вопросы задаем, обсуждаем. |
26.03.2009, 15:46 | #29 |
Registered User
Сообщений: 391
Регистрация: 16.11.2008
Не в сети |
|