Avr-программатор на pic

Программатор PIC, AVR и микросхем памяти на базе Extra-PIC

В этой статье я хочу рассказать, какую схему программатора я выбрал себе для изготовления. Временный программатор у меня уже был, в общем-то, работал, только был очень не удобен в работе. Это была схема из журнала “Радио” подключаемая к LPT порту компьютера.

Собрал я эту схему, на скорую руку ограничившись возможностью прошивать 18-ти выводные микроконтроллеры. Прошил свой первый микроконтроллер, прошивкой для схемы “Необычный термометр” из того же журнала. Получилось. Термометр и по сей день работает.

Ну и теперь естественно возникло желание собрать программатор посерьезнее.

Так уж вышло, что свое знакомство с микроконтроллерами я начал с PIC-ов. На тот момент мне показалось, что для них больше документации на русском языке.

Выбрал и выбрал ничего страшного, номенклатура выпускаемых микроконтроллеров богатая, что у Microchip , что у Atmel. Только вот в технике сейчас применяются контроллеры как той, так и другой фирмы.

И поэтому хотелось мне, чтобы программатор был универсальный, чтобы и микроконтроллеры AVR можно было прошивать.

В общем, склонился я в сторону программатора Extra-PIC, хотя правильнее было бы называть его адаптером. Схема проверенная и хорошо себя зарекомендовавшая. К тому же уже придумали, как дополнить его формирователями сигналов для прошивки AVR.

В данном случае я воспользовался доработкой Дубровенко. Д. , публикация в журнале “Радио” номер 11 за 2008. Добавил еще возможность микросхемы памяти программировать. Пригодится или нет, не знаю, во всяком случае, не помешает.

В итоге получилась вот такая схема.

Конструкцию сделал блочную, хотя отдельную плату питания можно было и не делать, а применить сетевой адаптер с подходящим выходным напряжением и через разъем его подключать. Просто у меня имелся трансформатор подходящий в наличии. Правда, напряжение на его вторичной обмотке великовато, пришлось дополнительно КРЕНку поставить.

На основном блоке имеются разъемы (панельки) для программирования не всех типов микроконтроллеров. Разъем XS4 предназначен для 18 – выводных микроконтроллеров серии PIC16F62x и PIC16F84.

Разъем XS3 используется как для 8 – выводных микроконтроллеров серии PIC12F6xx, так и для 14 – выводных серии PIC16F6xx. Последние надо вставлять так чтобы остались висеть в воздухе выводы 5 – 10. Как раз для этого пустое место на плате оставлено.

Разъем XS2 предназначен для микросхем памяти серии 24Cxx. Недостающие панельки размещены на сменном модуле.

Сменный модуль подключается к разъему XS5, на который заведены сигналы для прошивки PIC и AVR.

Так же к этому разъему можно подключать шлейф (ICSP) для прошивки микроконтроллеров в составе отладочной платы или уже готового изделия. Разъем XS1 предназначен для соединения адаптера с COM – портом компьютера.

Для подключения должен использоваться кабель – удлинитель порта RS232, а ни в коем случае не нуль – модемный.

Один сменный модуль мне уже пришлось изготовить. Имел дело с микроконтроллером PIC16F876. На сменном модуле, как и на основном блоке, применил как резисторы формирующие цепь PGM, так и конденсаторы, подключаемые к выводу OSC1, для надежной блокировки тактового генератора микроконтроллеров. Шлейф состоит из стандартной вилки DB9M на одном конце и самодельной вилки на другом конце.

Самодельная вилка это плата из текстолита с припаянными штырьками из медного провода диаметром 0.6 мм и дополнительными конденсаторами C1, C2. Расстояние между штырьками нужно выдерживать точно с шагом 2.54мм потому как ответный разъем это фрагмент панельки с цанговым зажимом. Штырьки можно применить готовые, в магазинах сейчас этого добра хватает.

Отдельно следует сказать о конденсаторе C2. Дело в том, что когда я собрал отладочную плату на макетке, сделав нужные соединения проводками, у меня наблюдались сбои при прошивке микроконтроллера.

На одном из форумов я нашел рекомендацию вешать конденсатор небольшой емкости на сигнал CLOCK. И это действительно помогло. Ну а когда я изготовил уже нормальную отладочную плату, сбои при прошивке уже не наблюдались.

По тому я и изобразил этот конденсатор пунктиром. Можно установить если будут сбои, а если нет то и не надо.

На фото видно, как нужно припаивать, разъем XS5.

Плату вставляют ребром между рядами выводов розетки и пропаивают каждый из них к соответствующей контактной площадке. Выводы 6, 9 соединяют с дорожками на плате перемычками из медного луженого провода. На сменном модуле разъем припаивается по той же технологии. Исходя из этого, текстолит для плат нужно брать толщиной не более 1.5мм. Менее тоже не желательно.

Еще есть замечание по работе с адаптером. Его нужно отключать от COM – порта компьютера, если он долго не используется. Может выйти из строя микросхема MAX232. У меня уже одна сгорела, и я считаю именно по этой причине.

Во всяком случае, теперь я стал отсоединять разъем кабеля от адаптера, благо это не трудно сделать. И вот уже очень продолжительное время адаптер работает без поломок.

Хотя конечно может я и не прав в своем предположении на счет MAX232.

Ну и в заключении еще раз про выбор программатора. Конечно COM – порт сейчас все реже устанавливают на компьютерах. На ноутбуках он вообще пропал. Использовать переходник USB –COM тоже не получается. Судя по публикациям в интернете, через переходник Extra-PIC не работает.

Я не пробовал, но верю, что это именно так. И не смотря на это, я надеюсь еще долго использовать свой адаптер. Даже если, не дай Бог, у меня выйдет из строя материнка на десктопном компьютере.

Даже если мне не удастся найти новую с COM – портом, можно купить IDE – плату формирователь полноценных COM – портов.

Конечно, USB программаторы удобны тем, что ими можно прошивать микроконтроллеры прямо из MPLAB. Так и это не проблема, меня и IC-prog вполне устраивает. И набор микроконтроллеров, с которыми она может работать, очень обширен.

Я думаю, большинство пользуются именно этой программой. Опять же универсальных USB – программаторов я не встречал. Конечно, универсальность описанного мною адаптера тоже требует проверки.

Об этом я собирался написать во второй части статьи.

К тому же для изготовления USB – программатора нужен микроконтроллер, который еще надо чем то или где то прошить. Ну вот, пожалуй, и все мои аргументы в пользу этого адаптера. Так что если кто решит изготовить себе описанную мною конструкцию то вот, пожалуйста, файлы печатных плат. Это уже пол дела.

Печатные платы в формате Sprint Layout 4.0

Источник: http://naladchikkip.ru/programmator-pic-avr-i-mikroskhem-pamyati-na-baze-extra-pic

Как я создавал Программатор PIC, AVR и микросхем памяти – первый опыт

Автор: Садовой А.В.

Материал взят с журнала РАДИО 2007, №10

Ну вот и настало то время, когда и мне пришлось взяться за изучение МК. К этому подвинула статья Автоматическое ЗУ на Atmega16A Тут и без всякого раздумья стало понятно, что нужно срочно собирать программатор. Листая журнал РАДИО, нашел приемлемую схему для себя. Ниже приводится описание с журнала.

   Предлагаемый программатор работает под управлением программы PonyProg [1], распространяемой бесплатно. Если ограничиться программированием МК PIC и микросхем памяти, можно воспользоваться также программами IC-Prog и WinPic800, распространяемыми на тех же условиях.

   Программирование 18-выводных МК PIC и 20-выводных AVR производится без каких-либо коммутаций. Достаточно установить МК в предназначенную для него панель и выбрать его тип в меню используемой программы. От установки панелей для всех МК этих семейств автор сознательно отказался, так как в любительской практике они используются редко.

При необходимости нужные панели можно установить дополнительно или подключать требующиеся для программирования выводы МК к предусмотренному в программаторе разъему. Этот же разъем используется при внутрисхемном программировании.

   Кроме МК, устройство позволяет программировать микросхемы памяти с последовательным интерфейсом, имеющиеся в меню используемых программ. Для подобных программ с интерфейсом I2C в программаторе предусмотрена панель.

   До начала процесса программирования и по его завершении напряжение питания программируемой микросхемы отключено, что дает возможность безопасно установить микросхему в панель, а затем извлечь ее.
   Прежде чем рассматривать работу программатора подробно, вспомним некоторые особенности программирования МК семейств PIC и AVR.

Номера упоминаемых далее выводов МК различных можно найти в технической документации.
   Чтобы перевести в режим программирования МК семейств PIC, требуется подать на его вывод MCLR напряжение +12…14 В. Обмен информацией с устройством, управляющим программированием, происходит через двунаправленный вывод DATA.

Синхронизирующие импульсы обмен импульсы поступают на вывод CLOCK.
   МК семейства AVR повышенного напряжения не требуют. Они переходят в режим программирования при низком логическом уровне на выводе RESET. При этом необходимо, чтобы к соответствующим выводам МК был подключен кварцевый резонатор.

Информация принимается через вывод MOSI, а передается через вывод MISO. Вход синхронизирующих импульсов – вывод SCK.
   Схема программатора изображена на рис. 1. Ее наиболее существенное отличие от прототипа [1] заключается в использовании для связи с COM-портом компьютера микросхемы МАХ232СРЕ (DA2) – специализированного преобразователя уровней RS232 – ТТЛ. Это позволило выполнить все требования по уровням передаваемых сигналов и нагрузочной способности линий порта и значительно улучшило надежность работы устройства.

   Чтобы излишне не нагружать COM-порт, предусмотрено питание программатора и программируемой микросхемы только от внешнего источника. Его постоянное напряжение (15 В) или переменное (10…12 В) напряжение поступает в программатор через диодный мост VD1, служащий выпрямителем переменного напряжения или приводящий постоянное к правильной полярности.

   Интегральный стабилизатор DA1 питает напряжением 5 В преобразователь уровней DA2. Светодиод HL1 сигнализирует о включении питания. Стабилизатор DA3 на 12 В – управляемый. Он включен при высоком логическом уровне напряжения на управляющем входе 4 и выключен при низком уровне.

Это свойство использовано для управления напряжением, переводящим МК семейства PIC в режим программирования, и напряжением питания программируемой микросхемы, которое получают из 12 В с помощью интегрального стабилизатора DA4. О включенном питании программируемой микросхемы сигнализирует светодиод HL2.

   Очень важен правильный выбор емкости конденсатора С7 на выходе стабилизатора DA3. При слишком большом значении напряжение, переводящее МК семейства PIC в режим программирования, после включения стабилизатора будет нарастать недостаточно быстро, что приведет к сбою.

Устанавливать конденсатор С7 слишком маленькой емкости или вовсе отказаться от него нельзя – это приведет к самовозбуждению стабилизатора и сделает программирование невозможным.
   Диод VD2 ограничивает до безопасного значения отрицательное напряжение, которое может поступить на управляющий вход стабилизатора DA3 с контакта 3 разъема XS1 (линии TXD COM-порта).

Узел на транзисторе VT2 формирует сигнала RESET для МК семейства AVR.
   Узел на транзисторах VT1 и VT3 разделяет имеющуюся в МК семейства PIC двунаправленную линию DATA на две однонаправленных для компьютера. Под названиями MOSI и MISO эти же однонаправленные линии используются при программировании МК семейства AVR.

   Для аналогичного преобразования в [1] был применен логический инвертор на одном транзисторе. Однако его практическое использование выявило довольно большое число сбоев, причина которых, по мнению автора, – недостаточная задержка информационного сигнала на линии DATA относительно синхронизирующего на линии CLOCK.

Добавление второго инвертора увеличило задержку и устранило сбои, однако «лишнюю» инверсию приходится компенсировать соответствующей настройкой управляющей программы, о чем будет сказано далее.

   Используя для управления программированием программу PonyProg, следует выбрать в соответствующем ее окне программатор «SI Prog I/O» и задать инверсию сигналов в соответствии с табл. 1. Программа WinPic при работе в ОС windows XP позволяет программировать только МК семейства PIC и микросхем памяти. Однако в ОС Windows 98 МК этой программой не программируются. С программой IC-Prog ситуация обратная. При настройке обеих программ должен быть выбран программатор “JDM Programmer”. Инверсию сигналов задают в соответствии с табл. 2. (для WinPic) и табл. 3. (для IC-Prog).

   Наличие нескольких во многом равноценных управляющих программ дает возможность пользоваться программатором даже при возникновении проблем в работе с одной из них. Например, МК, отсутствующий в списке доступных одной программе, может быть найден в списке другой.
   Так случилось при попытке запрограммировать МК PIC16F628A.

В списке программы PonyProg имеется лишь PIC16F628 на экране монитора появляется сообщение «Неизвестный тип микроконтроллера». Даже если проигнорировать это сообщение, попытки не только запрограммировать, но и просто прочитать содержимое памяти МК положительного результата не дают.

Однако в списках программ WinPic800 и IC-Prog нужный МК есть, его программирование с помощью этих программ выполняется без замечаний.

ЛИТЕРАТУРА

1. Lanconelly C. PonyProg – serial device programmer 
2. Gijzen B. IC-Prog Prototype Programmer 
3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible 

Все ясно и понятно как “божий день”, остается за малым, а может быть не малым, воплотить все дела паяльником. Далее привожу фото-обзор как я создавал программатор:

Разметил размер будущей платы, использую так называемые “макетные платы” , как то еще не приспособился к печатным платам, поэтому пользуюсь макетками.

При сборке предыдущей статьи Светодинамическое устройство “LED-подарок девушке” как то подумал “а что если покрасить плату в черный цвет?” смотрится креативненько))) плату покрасил и в этот раз.

Вот и собрал. В отличии от оргинала, не стал впаивать панельки под МК, а впаял разъем в виде “штырьков” без понятия как они называются правильно))) Разъем для подключения адаптера с переменкой 15 В использовал от модема TP-Link и выключатель питания от него же. Диодный мост взял КЦ407.

Подписал разъем

Настало время проверить. Установил прогу PonyProg, запустил ее, появилось окно в котором требуется “…произвести калибровку”. Жмем “Yes” 

“Калибровка завершена”

“Настройка платы программатора” находится в верхнем меню “Установка”. Жмем “Проверка” если все нормально, то появится окошко “Тест Ок”

Теперь можно записывать или считывать прошивку с МК или микросхем памяти. Как раз на работу принесли усилок фирмы BBK вот понадобилось проверить микруху памяти 24С02.

Подключил микруху к соответствующим выводам на разъеме, подключил программатор к COM-порту компа, включил питание, считал/записал прошивку вот и все. Так же проверил микруху 24С04 все работает. МК PIC и AVR еще не проверял, но т.к.

нужно потихоньку собирать ЗУ на Atmega16A скоро будем “шить” )))

Источник: http://shemu.ru/cifrovueshemu/371-izgotovlenie-pr

Универсальный программатор микроконтроллеров PIC, AVR и микросхем EEPROM (для com-порта)

Как-то раз на нашем форуме возникла темка, чем бы залить чипик ATMEGA32.

Темка эта в итоге разрослась и вылилась в схему универсального программатора, которым можно через последовательный порт компьютера программировать не только эту самую атмегу, но и другие контроллеры AVR, и контроллеры PIC, и микросхемы памяти EEPROM. Как всегда в схеме использован различный радиохлам (в данном случае снятый со старых сломанных материнок).

Помимо универсальности, несомненным плюсом этого программатора является оригинальное решение проблемы с питанием. Питание для него требуется внешнее, но в тоже время никаких дополнительных блоков питания изобретать или покупать не надо. Как так? А вот так. Вы же с компьютера будете чипы программировать. То есть комп у Вас будет включен.

Тогда у Вас уже есть на каждом 4-х пиновом разъёме Molex отличные, стабильные +5 и +12 Вольт, так зачем же городить что-то ещё? (4-х пиновые Molex — это такие, как на рисунке справа, от которых питаются ваши винчестеры, сидирумы и тому подобное железо внутри компа.) Короче, наш программатор можно запитать от любого такого свободного разъёма.

Ну, закончим на этом со вступлением и перейдём к схеме.

Схема:

Детали и описание работы:

Две главных детали программатора — микросхема преобразователь уровней порта GD75232 и микросхема логики 74HC14D.

Микруха порта — это фактически две полностью независимые микрухи в одной. Одна — это набор драйверов (из 0/5 вольтовых сигналов делают +-12 вольтовые), вторая — набор приёмников (из +-12 вольтовых сигналов делают 0/5 вольтовые).

Мы используем только приёмники, а входы и выходы драйверов (а так же неиспользуемые входы приёмников) — заземляем.

Микруха логики выполняет две задачи — умощнить выходы микросхемы порта и защитить микросхему порта в случае экстренных ситуаций (всё же микросхемы портов встречаются не так часто, как микросхемы логики). Соответственно, чуть изменив схему, вместо 74hc14 легко можно использовать какую-нибудь другую логику.

Транзисторы подойдут любые маломощные, я брал smd-транзисторы, снятые с материнских плат, с маркировками A1 (npn-транзистор) и A2 (pnp-транзистор). Если Вы так же будете использовать smd-транзисторы, то главное убедиться, что это действительно транзисторы (например, в корпусе sot-23, с маркировкой A1 могут быть не только транзисторы, но и диоды).

Резисторы подписаны на схеме. Кроме этого надо поставить между питанием и землёй возле каждой микрухи керамические конденсаторы по 0,1 мкФ, на схеме они не нарисованы, но это правила хорошего тона.

Готовый девайс (на фото сам программатор и модуль для программирования контроллеров PIC):

Программатор тестировался с программами IC-Prog и Pony Prog, которые можно скачать в разделе “Полезные программы для ПК”.При прошивке выбрать тип программатора JDM. При программировании PIC-контроллеров надо выбрать инверсию сигнала D-IN, при программировании контроллеров AVR — инверсию сигналов D-IN и RESET (MCLR).Скачать плату (DipTrace 2.0). В архиве печатка программатора, модуля для подключения PIC12, PIC16, PIC18 и модуля для подключения 8-ми и 20-ти ногих AVR. Эта плата разведена под SMD-компоненты (как на фотке), если сделаете свои версии печаток и не пожалеете поделиться с другими — присылайте на почту илизаливайте на форум.Если лень или некогда собирать — Вы можете заказать недорогой универсальный программатор прямо у нас на сайте

Источник: http://radiohlam.ru/?p=1104

Программатор для PIC, AVR и микросхем памяти

Статьи » Микроконтроллеры (разное) » Программатор для PIC, AVR и микросхем памяти

Данный программатор работает под управлением программы PonyProg и распространяется бесплатно. Если ограничится программированием МК PIC и микросхем памяти то можно воспользоваться так же программами IC – Prog и  WinPic800.

Программирование 18 выводных МК PIC и 20 выводных AVR производится без какой либо коммутации. Достаточно установить МК в предназначенную для него панель и выбрать в меню программы его тип.

От установки панелей для всех МК автор сознательно отказался, так как в радиолюбительской практике они используются очень редко, но при необходимости нужные панели можно установить дополнительно или подключать требующиеся для программирования выводы МК к предусмотренному в программаторе разъемы. Этот же разъем можно использовать при внутрисхемном программировании.

Кроме МК устройство позволяет программировать микросхемы памяти с последовательным интерфейсом.  Для подобных микросхем с интерфейсом I²C в программаторе предусмотрена панель.

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

Что бы перейти в режим программирования МК семейства PIC, требуется подать на его вывод MCLR напряжение +12…14В. Обмен информацией с устройством, управляющий программатором, происходит через двух-направленный вывод DATA. Синхронизирующие обмен импульсы поступают на вывод CLOCK.

МК семейства AVR повышенного напряжения не требуют. Они переходят в режим программирования при низком логическом уровне на выводе RESET. При этом необходимо, чтобы к соответствующим выводам МК был подключен кварцевый резонатор. Информация принимается через вывод MOSI, а передается через MISO. Вход синхронизирующих импульсов – вывод SCK.

Схема программатора показана на рис1. Ее отличие от других программаторов заключено в использовании для связи с СОМ – портом компьютера микросхемы МАХ232СРЕ (DA2) – специального преобразователя уровней RS232-ТТЛ.

Что бы излишне не нагружать СОМ порт, предусмотрено питание программатора от внешнего источника. Постоянное 15В ( переменное 10…12 поступающее через диодный мост VD1.)

Интегральный стабилизатор DA1 питает напряжением 5В преобразователь уровня DA2. Светодиод HL1 сигнализирует о включении питания. Стабилизатор DA3 на 12В – управляемый. Он включен при высоком логическом уровне напряжения на управляющем входе 4 и выключен при низком уровне.

Это свойство использовано для управления напряжением, переводящим МК PIC в режим программирования, и напряжением питания программируемой микросхемы, которое получают из 12В с помощью интегрального стабилизатора DA4. О включенном питании программируемой микросхемы сигнализирует светодиод HL2.

Очень важен выбор емкости С7 на выходе стабилизатора DA3. При слишком большой емкости напряжение будет нарастать недостаточно быстро, что приведет к сбою. С7 слишком маленькой емкости или отказаться от нее нельзя – это приведет к самовозбуждению стабилизатора и сделает программирование невозможным.

Диод VD2 ограничивает до безопасного уровня значение отрицательного напряжения, которое может поступить на управляющий вход стабилизатора DA3 с контакта 3 разъема XS1. Узел на VT2 формирует сигнал RESET для МК AVR.

Узел на VT1  VT3 разделяет имеющуюся в МК PIC двунаправленную линию DATA на две однонаправленных для компьютера. Под названиями MOSI  MISO эти же однонаправленные линии используются при программировании МК семейства AVR.

Программатор собран на макетной плате рис2. Монтаж навесной. На плате установлены всего три панели для микросхем (XS2-XS4). Светодиоды HL1 HL2 должны иметь разный цвет свечения.

Используя для управления программирования программу PonyProg, следует выбрать в соответствии окна SI Prog IO и задать инверсию сигналов в соответствии с табл 1.

Табл1

Инверсия сигнала Микросхема
ResetSCLKD-IND-OUT PICНетДаДанет AVRНетДаДада EEPROMНетДаДада

Инверсию сигналов для WinPic табл2 а для IC-Prog табл3

Табл2

Инверсия сигнала Микросхема
ResetSCLKD-IND-OUT PICНетДаДанет AVRНетДаДада EEPROMНетДаДада

Табл3

Инверсия сигнала микросхема
PIC EEPROM
Data OUTData InCLOSKMCLRVcc ДаДаДаНетнет ДаДаДаДанет

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

Например PIC16F682A PonyProg есть, а PIC16F682 нет, но зато она есть в WinPic800 и IC-Prog.

Литература – Радио 10-2007

Источник: http://rcl-radio.ru/?p=4205

Простой программатор для микроконтроллеров PIC и AVR

Источник: http://www.qrz.ru/schemes/contribute/comp/simple-prog/

Программатор для PIC, AVR и микросхем памяти

Стоимость программаторов промышленного изготовления вряд ли приемлема для радиолюбителей, не занимающихся серийным производством микроконтроллерных устройств. Автор предлагаемой статьи не стал приобретать промышленный программатор, а сделал собственный, по его мнению, удовлетворяющий всем предъявляемым к такому устройству требованиям и способный работать под

управлением нескольких популярных среди радиолюбителей программ.

Предлагаемый программатор работает под управлением программы PonyProg [1], распространяемой бесплатно. Если ограничиться программированием МК PIC и микросхем памяти, можно воспользоваться также программами IC-Progl05 [2] и WinPic800 [3]. распространяемыми на тех же условиях.

Программирование 18-выводных МК PIC и 20-выводных AVR производится без каких-либо коммутаций. Достаточно установить МК в предназначенную для него панель и выбрать его тип в меню используемой программы. От установки панелей для всех МК этих семейств автор сознательно отказался, так как в любительской практике они используются очень редко.

При необходимости нужные панели можно установить дополнительно или подключать требующиеся для программирования выводы МК к предусмотренному в программаторе разъему. Этот же разъем используется при внутрисхемном программировании. Кроме МК.

устройство позволяет программировать микросхемы памяти с последовательным интерфейсом, имеющиеся в меню используемых программ. Для подобных микросхем с интерфейсом I2С в программаторе предусмотрена панель.

До начала процесса программирования и по его завершении напряжение питания программируемой микросхемы отключено, что дает возможность безопасно установить микросхему в панель, а затем извлечь ее. Прежде чем рассматривать работу программатора подробно, вспомним некоторые особенности программирования МК семейств PIC и AVR.

Номера упоминаемых далее выводов МК различных типов можно найти в технической документации.Чтобы перевести в режим программирования МК семейства PIC, требуется подать на его вывод MCLR напряжение +12…14 В. Обмен информацией с устройством, управляющим программированием, происходит через двунаправленный вывод DATA.

Синхронизирующие обмен импульсы поступают на вывод CLOCK. МК семейства AVR повышенного напряжения не требуют. Они переходят в режим программирования при низком логическом уровне на выводе RESET. При этом необходимо, чтобы к соответствующим выводам МК был подключен кварцевый резонатор. Информация принимается через вывод MOSI, а передается через вывод

MISO Вход синхронизирующих импульсов — вывод SCK

Схема программатора изображена на рис. 1 Ее наиболее существенное отличие от прототипа заключается в использовании для связи с СОМ-портом компьютера микросхемы МАХ232СРЕ (DA2) — специализированного преобразователя уровней RS232—ТТЛ.

Это позволило выполнить все требования по уровням передаваемых сигналов и нагрузочной способности линий порта и значительно улучшило надежность работы устройства Чтобы излишне не нагружать СОМ-порт, предусмотрено питание программатора и программируемой микросхемы только от внешнего источника.

Его постоянное (15 В) или переменное (10…12 В) напряжение поступает в программатор через диодный мост VD1, служащий выпрямителем переменного напряжения или приводящий постоянное к правильной полярности.Интегральный стабилизатор DA1 питает напряжением 5 В преобразователь уровня DA2. Светодиод HL1 сигнализирует о включении питания. Стабилизатор DA3 на 12 В — управляемый.

Он включен при высоком логическом уровне напряжения на управляющем входе 4 и выключен при низком уровне. Это свойство использовано для управления напряжением, переводящим МК семейства PIC в режим программирования, и напряжением питания программируемой микросхемы, которое получают из 12 В с помощью интегрального стабилизатора DA4.

О включенном питании программируемой микросхемы сигнализирует светодиод HL2. Очень важен правильный выбор емкости конденсатора С7 на выходе стабилизатора DA3. При слишком большом ее значении напряжение, переводящее МК семейства PIC в режим программирования, после включения стабилизатора будет нарастать недостаточно быстро, что приведет к сбою.

Устанавливать конденсатор С7 слишком маленькой емкости или вовсе отказываться от него нельзя — это приведет к самовозбуждению стабилизатора и сделает программирование невозможным Диод VD2 ограничивает до безопасного значения отрицательное напряжение, которое может поступить на управляющий вход стабилизатора DA3 с контакта 3 разъема XS1 (линии TXD СОМ-порта).

Узел на транзисторе VT2 формирует сигнал RESET для МК семейства AVR. Узел на транзисторах VT1 и VT3 разделяет имеющуюся в МК семейства PIC двунаправленную линию DATA на две однонаправленных для компьютера. Под названиями MOSI и MISO эти же однонаправленные линии используются при программировании МК семейства AVR.

Для аналогичного преобразования в [1] был применен логический инвертор на одном транзисторе. Однако его практическое использование выявило довольно большое число сбоев, причина которых, по мнению автора, — недостаточная задержка информационного сигнала на линии DATA относительно синхронизирующего на линии CLOCK. Добавление второго инвертора увеличило задержку и устранило сбои, однако “лишнюю” инверсию приходится компенсировать соответствующей настройкой управляющей программы, о

чем будет сказано далее.

Программатор собран на макетной плате (рис.2). Монтаж — навесной. На плате установлены всего три панели для программируемых микросхем (XS2—XS4), но ее размеры (97×55 мм) выбраны с запасом, достаточным, чтобы при необходимости установить даже 40-контактные панели. Светодиоды HL1 и HL2 должны быть разного цвета свечения, так легче визуально

контролировать режим работы программатора.

Используя для управления программированием программу PonyProg, следует выбрать в соответствующем ее окне программатор “SI Prog I/O” и задать инверсию

сигналов в соответствии с табл. 1.

Программа WinPic при работе в ОС Windows ХР позволяет программировать только МК семейства PIC и микросхемы памяти. Однако в ОС Windows 98 МК этой программой не программируются. С программой IC-Prog ситуация обратная. При настройке обеих программ должен быть выбран программатор “JDM Programmer”. Инверсию сигналов

задают в соответствии с табл. 2 (для

WinPic) и табл. 3 (для IC-Prog).

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

Такое случилось при попытке запрограммировать МК PIC16F628A. В списке программы PonyProg имеется лишь PIC16F628, но при его выборе и установке в панель программатора микросхемы PIC16F628A на экране монитора появляется сообщение “Неизвестный тип микроконтроллера”.

Даже если проигнорировать это сообщение, попытки не только запрограммировать, но и просто прочитать содержимое памяти МК положительного результата не дают. Однако в списках программ WinPic800 и IC-Prog нужный МК есть, его программирование с помощью этих программ выполняется без замечаний.

Кроме МК, упомянутого выше, программатор проверен с PIC16F84A-20I/P

HATTiny2313-20PU.

ЛИТЕРАТУРА1. Lanconelly С. PonyProg — serial device programmer — www.lancos.com/prog.html 2. Gijzen B. IC-Prog Prolotype Programmer — www.ic-prog.com/icprog105E.zip 3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible. — www.winpic800.com/descargas/WlnPlc800.zlp

Источник: http://nauchebe.net/2012/09/programmator-dlya-pic-avr-i-mikrosxem-pamyati/

Универсальный программатор

Источник: http://radioskot.ru/publ/mk/universalnyj_programmator/9-1-0-912

PIC и EEPROM программатор

В этом проекте мы создадим JDM программатор, который может программировать как PIC контроллеры семейств PIC12, PIC16 и PIC18, так и некоторых распространенных микросхем ЭСППЗУ серии 24C. Программатор имеет возможность использовать ICSP, что позволяет производить последовательное программирование прямо в схеме.

Таким образом вы не должны извлекать ваш контроллер каждый раз, когда решите перепрограммировать его. Программатор подключен к последовательному (COM) порту компьютера, внешнее питание не требуется.

С другой стороны, если вы будете использовать его с компьютером не имеющем COM порта, использование переходника USB – RS232 (COM) может привести к неправильной работе устройства.

Поддерживаемые устройства:

EEPROM: 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64/65, AT24C128, AT24C256, AT24C512, M24C128, M24C256, 24C515, PCF8572 or 8572 = 24C01, PCF8582 or 8582 = 24C02, PCF8592 or 8592 = 24C04, SDA2506, SDA2516, SDA2526, SDA2546, SDA2586, SDA3506, SDA3516, SDA3526, 4C016 == 24C01, GRS-003 == 24C02, GRN-004 == 24C04, GRN-008 == 24C04, GRX-006 == 24C04, GRX-007 == 24C04, KKZ06F == 24C01, BAW658049 == 24C02, BAW57452 == 24C02, M8571 == 24C02, X24C0

Microchip PIC: 12C508, 12C508A, 12C509, 12C509A, 12CE518, 12CE519,12C671, 12C672, 12CE673, 12CE674,12F629, 12F675, 16C433, 16C61, 16C62A, 16C62B, 16C63, 16C63A, 16C64A, 16C65A, 16C65B, 16C66, 16C67,16C71, 16C72, 16C72A, 16C73A, 16C73B, 16C74A, 16C74B, 16C76, 16C77,16F73, 16F74, 16F76, 16F77,16C84, 16F83, 16F84, 16F84A, 16C505,16C620, 16C620A, 16C621, 16C621A, 16C622, 16C622A, 16CE623, 16CE624, 16CE625, 16F627, 16F628, 16F628A, 16F630, 16F676, 16C710, 16C711, 16C712, 16C715, 16C716, 16C717, 16C745, 16C765, 16C770, 16C771, 16C773, 16C774, 16C781, 16C782, 16F818, 16F819, 16F870, 16F871, 16F872, 16F873, 16F874, 16F876, 16F877, 16F873A, 16F874A, 16F876A, 16F877A, 18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1320, 18F2330, 18F432

Сборка программатора:

Компоненты программатора перечислены в списке ниже.

Список компонентов:

T1, T2 : BC337 Transistor D1, D4, D5, D6 : 1N4148 Diode D3 : 6V2 Zener Diode D2 : 5V1 Zener Diode R3, R4 : 1K8 1/4W Resistor R1 : 10K 1/4W Resistor R2 : 1K5 1/4W Resistor X1 : DB9 PCB Mount Female Connector C1, C2 : 100uF 16V Electrolytic Capacitor SV1 and SV4 : 80 Pin Machine Tooled IC Socket SV2, SV3 : 20 Pin Machine Tooled IC Socket SV5 (ICSP) : 6 Pin Header Connector

L1, L2, L3 : LED (L1: GREEN, L2: RED, L3: YELLOW)

Перед тем как распечатать печатную плату, проверьте, поставили ли вы значение «Масштабирование» в НЕТ, в опциях окна печати. Мы используем метод глажки для переноса рисунка печатной платы. Перед травлением не забудьте проверить тонкие дорожки между контактами панельки.

Щелкните здесь, что бы загрузить файлы схемы и печатной платы.

Собирайте устройство тщательно. Здесь есть всего одна хитрость, и она показана на фото. Пред тем, как впаять 80-ногую панельку, вырежьте пластиковые мостики между ее сторонами. Также, в первую очередь припаяйте диод D6 и перемычку под панелькой.

Если вы все сделали правильно, при подключении устройства к последовательному порту должен загореться красный светодиод. Программатор готов к использованию. Для программирования PIC контроллеров и микросхем ЭСППЗУ подойдут программы ICPROG и WinPIC. Желтый светодиод означает наличие тактовой частоты, красный – питания, зеленый – процесс программирования.

Установка программируемых микросхем в программатор показана на рисунке ниже. Учтите, что неправильная установка может привести к порче микросхемы, программатора или даже компьютера. Вы также можете использовать ZIF панельку вместо указанной.

Источник: https://www.rlocman.ru/shem/schematics.html?di=54951

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}
Автор: Александр ЕлисеевE-mail: ase (at) takas.lt(замените (at) на @)
  • Файл программы (zip архив 4,6 МB)

Бесплатные программаторы, которые можно найти в интернете безнадежно отстают от разработчиков чипов и не предлагают способов быстрой модернизации для программирования новых микроконтроллеров.

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

Программатор характеризуется тем, что:

  • Испытан под Windows 98, Windows Me, Windows 2000 c процессорами Celeron, AMD Duron, AMD Athlon T, Pentium III до частоты 1000 МГц
  • Программирование ведется через порт RS232
  • Программа не требует инсталяции и дополнительных драйверов.
  • Программирует микроконтроллеры семейства PIC (отладка производилась на PIC16F84 и PIC16F877) по последовательному протоколу и микроконтроллеры семейства AVR (отладка производилась на AT90S8535)
  • Предостовляет возможность самостоятельно добавлять новые чипы из указанных семейств с идентичным протоколом программирования с помощью конфигурационных файлов.
  • Позволяет произвольно менять структуру и содержание меню программируемых чипов и информационных полей связанных с программируемым чипом.
  • Позволяет загружать и редактировать бинарные и HEX файлы, выполнять блочные операции с данными, расчет CRC по нескольким алгоритмам Позволяет индивидуально программировать различные области чипа (память программ, память данных, биты опций, биты защиты)

Рис.1. Окно програмной оболочки

Программирование PIC-ов

Рис.1. Схема программатора PIC-ов

Особой оригинальностью не отличается поскольку в основном повторяет схему из известного программатора PonyProg. Следует уделять внимание уровню сигнала на выводе CLOCK чипа, он не должен быть меньше 4 В при высоком уровне, что может случиться при неправильном подборе стабилитрона

Программирование AVR-ов

Рис.2. Схема программирования AVR-ов

Здесь показан способ как организовать программирование AT90S8535 прямо на плате с помощью RS232 и небольшого аппаратного дополнения.

Микросхема DD1 служит для изоляции сигналов программирования от чипа в режиме работы. Разводка микросхемы показана в колодке c расположением контактов типа PGA44.

Испытания показали, что большинство микросхем AT90S8535 и AT90S8515 можно программировать при частоте кварца 11,0592 МГц.

Структура конфигурационных файлов

Конфигурационные файлы имеют расширение chp и должны находиться в директории программы.

Программа при запуске производит поиск в своей директории всех конфигурационных файлов и их объединение во внутреннем буфере. Идея таких файлов взята из программатора ComPic и немного изменена.

Каждому чипу соответствует своя секция. Возможность наследования свойств не предусмотренна, так как это ухудшает прозрачность описания.

Пример структуры конфигурационного файла для PIC16F84

[Chip PIC16F84_ICP] Секция чипа c уникальным названием чипа
Level1=MicroChip Название пункта меню верхнего уровня
Level2=PIC Название пункта меню 2-го уровня вложения
ItemCaption=PIC16F84 Название конечного пункта меню
InitClass=TfrmMICROCHIP_PIC_ICP Название класса окна-фрейма программирующего данное семейство чипов по определенному протоколуНазвания классов предопределены в программе: TfrmMICROCHIP_PIC_ICP и TfrmATMEL_AVR_ICP
Здесь идет определение программируемых областей, в пунктах Content разные параметры отделяются символом “|”
Area_1_Content= Code | 0..3FFh (1KW) Название и описание области программирования
Area_1_data=CODE, 0, $3FF, 14 Данные связанные с областью программирования – уникальный идентификатор, начальный адрес, конечный адрес, размер слова данных в битах
Area_2_Content=EEPROM | 0..3Fh (64B) Area_2_Data=EEPROM,0,$3F,8 Area_3_Content=Configuration word | CP, PWRTE, WDTE, FOSC Area_3_Data=CONFIG,$2007,$2007,14 Area_4_Content=ID Locations | 2000H-2003HArea_4_Data=ID,$2000,$2003,8 и т. д. для других областей
Здесь идет определение установок для некоторых областей программирования определенных выше
Param_1_Content=CP | CP | CONFIG Определение установки с названием CP, с уникальным идентификатором CP из области CONFIG. По умолчанию установка принимает значение с номером 1 в суффиксе идентификатора
Описание возможных значений установки
Param_1_Choice1=1 – Code protection OFF Название 1-го значения установки CP
Param_1_Choice1_icon=4 Номер во внутреннем списке отображаемой иконы для 1-го значения
Param_1_Choice1_data=1111111111xxxx маска 1-го значения
Param_1_Choice2=0 – Code protection ON Param_1_Choice2_icon=3Param_1_Choice2_data=0000000000xxxx Описание 2-го значения установки
Param_2_Content=PWRTE | PWRTE | CONFIG Param_2_Choice1=1 – Power up timer disabled Param_2_Choice1_icon=2 Param_2_Choice1_data=xxxxxxxxxx1xxx Param_2_Choice2=0 – Power up timer enabled Param_2_Choice2_icon=1Param_2_Choice2_data=xxxxxxxxxx0xxx Описание следующей установки и ее значений
Param_3_Content=WDTE | WDTE | CONFIG Param_3_Choice1=1 – WDT enabled Param_3_Choice1_icon=1 Param_3_Choice1_data=xxxxxxxxxxx1xx Param_3_Choice2=0 – WDT disabled Param_3_Choice2_icon=2Param_3_Choice2_data=xxxxxxxxxxx0xxParam_4_Content=Oscilator | FOSC | CONFIG Param_4_Choice1=RC oscillator (11) Param_4_Choice1_icon=8 Param_4_Choice1_data=xxxxxxxxxxxx11 Param_4_Choice2=HS oscillator (10) Param_4_Choice2_icon=8 Param_4_Choice2_data=xxxxxxxxxxxx10 Param_4_Choice3=XT oscillator (01) Param_4_Choice3_icon=8 Param_4_Choice3_data=xxxxxxxxxxxx01 Param_4_Choice4=LP oscillator (00) Param_4_Choice4_icon=8Param_4_Choice4_data=xxxxxxxxxxxx00Param_5_Content=ID | ID | IDParam_5_Choice1=0000 и т.д. для всех необходимых установок
  • Файл программы (zip архив 4,6 МB)

   Сейчас без микроконтроллеров не обходится ни одна серьёзная конструкция. Где-то ставят ПИК, где-то АВР. И для работы с ними нужен программатор. А чтоб не делать несколько разных – соберите один для различных типов МК. Предлагаю вашему вниманию универсальный программатор EXTRA-PIC v3.2, с возможностью программирования как PIC, так и AVR контроллеров.

   С помощью EXTRA-PIC+ можно программировать следующие чипы: 

  • 10F серии: PIC10F206 PIC10F204 PIC10F202 PIC10F200 
  • 12F серии: PIC12F683 PIC12F675 PIC12F635 PIC12F635 PIC12F629 PIC12F510 PIC12F509 PIC12F508 
  • 16F/С серии: PIC16F627 PIC16F627A PIC16F628 PIC16F628A PIC16F630 PIC16F636 PIC16F639 PIC16F648A PIC16F676 PIC16F684 PIC16F685 PIC16F687 PIC16F688 PIC16F689 PIC16F690 PIC16F73 PIC16F74 PIC16F76 PIC16F77 PIC16F716 PIC16F737 PIC16F747 PIC16F767 PIC16F777 PIC16F83 PIC16F84 PIC16F84A PIC16F87 PIC16F88 PIC16F818 PIC16F819 PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F873A PIC16F874 PIC16F874A PIC16F876 PIC16F876A PIC16F877 PIC16F877A PIC16C61 PIC16C62 PIC16C62A/B PIC16C63 PIC16C63A PIC16C64 PIC16C64A PIC16C65 PIC16C65A/B PIC16C66 PIC16C67 PIC16C620/A PIC16C621/A PIC16C622/A PIC16CE623 PIC16CE624 PIC16CE625 PIC16C71 PIC16C72 PIC16C72A PIC16C73 PIC16C73A/B PIC16C74 PIC16C74A/B PIC16C76 PIC16C77 PIC16C710 PIC16C711 PIC16C712 PIC16C716 PIC16C745 PIC16C765 PIC16C773 PIC16C774 PIC16C923 PIC16C924 PIC16C925 PIC16C926 
  • 18F серии: PIC18F1220 PIC18F2220 PIC18F2320 PIC18F2331 PIC18F2410 PIC18F242-2439 PIC18F2420 PIC18F2431 PIC18F2455 PIC18F248 PIC18F2480 PIC18F2510 PIC18F2515 PIC18F252-2539 PIC18F2520 PIC18F2525 PIC18F2550 PIC18F258 PIC18F2580 PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320 PIC18F4331 PIC18F4410 PIC18F442-4439 PIC18F4420 PIC18F4431 PIC18F4455 PIC18F448 PIC18F4480 PIC18F4510 PIC18F4515 PIC18F452-4539 PIC18F4520 PIC18F4525 PIC18F4550 PIC18F458 PIC18F4580 PIC18F4585 PIC18F4610 PIC18F4620 PIC18F4680 
  • EEPROM 24C серии: 24C512 24C256 24C128 24C64 24C32 24C16 24C08 24C04 24C02 24C01
  • EEPROM 93хх серии

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

Схема универсального программатора

   Теперь немного о значении джамперов и выключателя. Выключатель, как это и должно быть по логике, управляет питанием.

Контактные штырьки J3 отвечают за возможность повторного программирования некоторых микроконтроллеров (так как после подачи напряжения на запрограммированный чип, он сразу же начинает выполнять свою программу, и из-за чего не поддается перепрограммированию).

J3 – положение: 1-2 – режим первого программирования, 2-3 – режим повторного программирования (если первый выдает ошибки). Контактные штырьки J4 переключение между MISO и MOSI. Десятипиновый разъем предназначен для подключения адаптеров.

   Для использования универсального программатора EXTRA-PIC+ нужен софт, например давно обсуждаемые на нашем форуме IC-PROG, WinPic800 или PonyProg. Печатная плата в формате *.lay. прилагается. Проект испытал и представил для публикации на radioskot.ru – ГУБЕРНАТОР.

   Форум по МК