Это устройство позволяет записывать наши программы в память программ МК. Это следующий этап, после того как вы написали программу и отладили ее. Существуют последовательные и параллельные программаторы. Наибольшую популярность получили последовательные программаторы, так как они более простые, дешевые и надежные. Самый простой последовательный программатор для микроконтроллеров семейства AVR, состоит всего из пяти проводников и ограничивающих ток резисторов. Этот программатор называют программатор Громова (наверное, по фамилии его создателя). Организован он по следующему принципу: выводы RESET, MISO, MOSI, SCK, GND посредством сопротивлений соединены с 25-контактным разъемом DB-25 LPT- порт. Однако данная организация программатора не является надежной и безопасной для персонального компьютера (ПК) и микроконтроллера (МК). Есть вероятность выхода из строя порта ПК. Таким образом, эту схему усложнили защитным буфером и вышла вполне надежная, простая и дешевая схема последовательного программатора, которая представлена на рисунке 1. В качестве защитного буфера используется микросхема DD1 74HC244. Пояснения принципа работы данной схемы начнем с микроконтроллерной части (выводы RESET, MISO, MOSI, SCK, GND). Назначения этих выводов в процессе программировании следующее: RESET – вывод МК, с помощью которого работа процессора переводиться в начальное состояние. После включения МК, процессор начинает считывать программу из памяти программ (ПП) и выполнять соответствующие команды. При подачи кратковременно логического «0» на вход RESET процессор, «сбрасуется» в ноль и начинает работу заново. Однако при подачи на вход RESET не кратковременно «0» (не менее 20mc), МК переходит в режим программирования. Этим он готов принимать новый список команд записываемых в ПП. Таким образом: «1» на входе RESET – штатный режим работы МК; кратковременный «0» - сброс МК; не кратковременный «0» - режим программирования памяти МК. MISO (Master Input Slave Output) – этот вывод является частью последовательного синхронного интерфейса SPI. Как видно из самого названия вывода, он служит для ввода данных (кода программы) в память программ МК в режиме программировании. MOSI (Master Output Slave Input) – этот вывод также является частью последовательного синхронного интерфейса SPI. Однако служит он для вывода данных программатору МК в режиме программировании. В режиме программирования на эту ножку подается команда « Разрешения программирования». SCK – этот вывод также является частью последовательного синхронного интерфейса SPI. Предназначен для выдачи синхроимпульсов от МК (приемного устройства) к передающему устройству. То есть это выход синхроимпульсов, задающих скорость обмена данными. GND – тут понятно без пояснения. Вывод - общий провод или земля, или минус провод питания. Рисунок 1 Принципиальная схема последовательного программатора (мой первый программатор). Теперь понятно, что последовательный программатор так называется потому, что загрузка программы в ПП осуществляется в последовательном коде по одному проводу. На рисунке 1 светодиод VD1 предназначен для индикации о наличии питании 5В в схеме. Светодиод VD3 предназначен для индикации процесса программирования. Не для всех моделей AVR этот светодиод будет индицировать. В момент программирования он начинает быстро мигать или гореть ровным светом (мигания человеческий глаз может не воспринимать). Разъем PLD-10 для передачи программного кода в память МК выглядит так. Питать программатор не обязательно, поскольку программатор будет питаться от источника питания, который подведен к МК. Всю остальную логику работы схему берет на себя программный программатор PonyProg. PonyProg – это бесплатное программное обеспечения, поддерживающее программирования многих известных МК. Его свежую версию всегда можно скачать бесплатно на нашем сайте. Работа программы очень проста: открыть в этой среде откомпилированную и отлаженную программу, выбрать нужный МК, (например Attiny2313) и нажать кнопку программирования чипа. Процесс займет от 0.5 с до нескольких минут в зависимости от размера программы. Краткое достаточное пояснение работы программы PonyProg приведена на рисунке 2. Кстати, не сильно обращайте внимание если зелененький светодиод будет как-то неправильно себя вести. Не совсеми МК он работает верно, но это не значит , что он не сможет прошить данную микросхему.
Рисунок 2 Окно PonyProg
Пару слов о программаторе (рисунок 1). Этот программатор прекрасно себя зарекомендовал. Собрать его можно на коленке всего за 1.5$ , а надежность его высокая. За время эксплуатации ни разу не выкидывал сюрпризов.
У меня выглядит это чудо так (рисунок 3). Немного небрежно, но он работает уже не один год.
Рисунок 3 Мой первый программатор с LPT.
Вещь нужная до сих пор частенько обращаюсь к ниму. Только жаль, что порты LPT вымирают, их все сложнее сейчас найти на современных машинах. Сейчас я программирую USB-программатором, но если что-то вдруг не идет, я возвращаюсь к старому программатору (рисунок 1). К тому же сам USB-программатор (а точнее AVRку, которая там стоит) чем-то же надо запрограммировать. Поэтому собрать программатор , который описан выше это обязательная задача для начинающего. Хотя можно собрать USB-программатор, а микросхему отдать другу, чтоб он ее прошил, а к LPT-программатору уже не возвращаться. По сколько большинство современных ПК уже не имеют в свеем составе LPT- порта, не говоря уже о ноутбуках, этот программатор некуда и подключить к компьютеру, если только использовать переходники и преобразователи USB-LPT. Дороговато. Поэтому все популярнее становиться использования USB программаторов. Они не отличаются надежностью и быстродействием, но они удобнее при программировании МК и дороже вдвое. О таких программаторах пойдет речь позже. Лично я этот программатор люблю и пользуюсь активно им. Соберите и оцените сами! Реализацию USB-программаторов я привожу в отдельно статье. Причем там будет приведено два типа программатора USBASP и USB-Doper, который способен программировать МК в среде AVRstudio (определяется там как STK-500). Програмное обеспечения для программатора качаем здесь ---> PonyProg Вывод: для начинающего программиста микроконтроллеров AVR, которые не знают с чего начать, стоит начать именно с разработки данного устройства. Для новичка этот программатор должно стать первым проектом в разработке микропроцессорных устройств на базе МК AVR. Последовательный программатор дешевый (примерно 2$), практичный, малогабаритный, несложный по своей структуре, надежный, с поддержкой бесплатного приложения PonyProg и способностью программировать все существующие микроконтроллеры семейства AVR прекрасное и не заменимое устройство для программиста. После разработки такого программатора, можно приступать к разработке первого микропроцессорного устройства на МК AVR.
|