Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 0

Делаем LPT программатор для AVR микроконтроллеров.

DI HALT:

Признаюсь, что я этот программатор никогда не собирал, т.к. у меня с первого раза заработала и никогда не подводила схема Громова. Однако, судя по многочисленным комментариям, эта схема работает далеко не у всех и тут не все гладко. Даже если есть COM порт, то не факт что он захочет правильно работать в таком режиме. Многое зависит и от операционки, и от тактовой частоты проца. В общем, грабель там закопано много. Но есть еще варианты относительно простой прошивки микроконтроллеров AVR — это программатор на LPT, аналог STK500/300. В своей простейшей модификации «пять проводков» не требует вообще ничего, даже резисторов. Соединяешь все напрямую и шьешь. Правда пожечь LPT порт тут проще простого. C токоограничитльными резисторами все безопасней, однако и это не спасает. Помогает установка буфферной микросхемы 74HC244. И получаем STK200! Достоинства этой схемы в том, что это классика жанра. Ее поддерживают по моему вообще все прошивающие программы и оболочки. В том числе и разные среды разработки вроде CVAVR. Надежная и простая, как кувалда, схема. Недостаток один — нужен LPT порт, который ныне редкость. Но что мешает под свои радиоопыты завести древнюю машинку уровня PIII-500 которую можно собрать из хлама за пиво? И работать будет все отлично и пожечь не жалко. Ну, а вдоволь наигравшись с STK и поняв премудрости процесса прошивки в деталях, можно собрать и USB программатор. А тут Михаил (Code007) написал отличную статью по сборке этого девайса. Грех не выложить.

В настоящее время микроконтроллеры AVR фирмы ATMEL получили весьма широкое распространение. Это обусловлено небольшой стоимостью, развитой периферией, доступностью и удобством средств разработки. Несомненным достоинством процессоров этой серии является возможность внутрисхемного программирования с использованием интерфейса SPI. Для начала работы с этими микроконтроллерами необходимо обзавестись какими либо средствами осуществляющими внутрисхемное программирование. Существует достаточно большое количество различных конструкций программаторов, но на первоначальном этапе вполне подойдет адаптер STK200/300. В данной статье я попытаюсь подробно описать процесс сборки этого адаптера. Причем настоятельно рекомендую повторить конструкцию именно так, как описано, а не на куске макетной платы. Рекомендация вытекает из шести летнего использования адаптера собранного на чем попало. Адаптер получил свое название от комплектующихся им отладочных плат фирмы ATMEL для быстрого начала работы с микроконтроллерами AT90S8515 и ATmega103 соответственно. На самом деле приведенная схема соответствует одновременно обоим адаптерам, в ней присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11).

chema.jpg

Рисунок 1. Электрическая принципиальная схема адаптера STK200/300

Для изготовления адаптера нам потребуется разъем DB25М (LPT-папа) с пластиковым корпусом, десятижильный плоский кабель длиной около 2 метров, разъем IDC-10, стеклотекстолит, детали по схеме и немного терпения.

complecto.jpg

Рисунок 2. Основные комплектующие (разъем IDC-10 обжат на кабеле)

Все детали монтируются на односторонней печатной плате. Разводка платы осуществлена не на 100%, поэтому часть проводников выполнена навесным монтажом. Такое решение было принято в связи с тем, что изготовление двухсторонней платы более трудоемко и в данной ситуации не имеет особого смысла. Плата изготавливается по всем известной лазерно-утюжной технологии.

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

zazhim.jpg

Рисунок 3. Приспособление для переноса рисунка печатной платы — зажим.

Заготовка печатной платы вместе с распечатанным чертежом проводников зажимается между двумя металлическими пластинами через дополнительные прокладки из мягкого термостойкого материала ( я использую ткань сложенную в несколько слоев). На получившийся пакет ставим утюг и включаем в сеть. Ждем минут пять и снимаем утюг. После чего даем пакету остыть. Вынимаем заготовку платы с уже “мертво” прилипшей распечаткой чертежа и опускаем в теплую воду для дальнейшего удаления бумаги. Удалив бумагу и протравив фольгу у вас должно получиться нечто подобное тому, что показано на рисунке.

Рисунок 4. Плата после травления

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

Рисунок 5. Тонер смыт

Для лужения используется следующий метод. Берем небольшую кастрюльку, наливаем немного воды, растворяем в воде лимонную кислоту ( сильно много сыпать не надо, так что бы была кислой) и кипятим. Когда вода закипит опускаем печатную плату, если лимонной кислоты было достаточно, то медь немного изменит цвет. Бросаем кусочек сплава Розе и ждем пока он расплавиться, после чего держа пинцетом ватный тампон равномерно наносим сплав по поверхности платы. Эта операция естественно проводится в кипящей воде. Должно получиться как на рисунке.

Рисунок 6. После лужения сплавом Розе

Далее вооружившись ножницами по металлу обрезаем лишнее по контуру и дорабатываем напильником.

Рисунок 7. Печатная плата готова

Подробности технологии лазерно утюжного метода (ЛУТ) можно найти в разделе «Радиолюбительские технологии» в статьях:Создание печатной платы методом лазерного утюга иИзготовление печатной платы от и до. Видео урок.

Все, можно брать в руки паяльник и распаивать детали в соответствии с монтажной схемой.

Рисунок 8. После распайки пассивных компонентов (светодиоды и микросхема не установлены)

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

Рисунок 9. Доработка верхней крышки разъема

Поле этого можно припаивать микросхему 74HC244. С помощью многожильного или одножильного монтажного провода не большого сечения ( я использовал провод во фторопластовой изоляции — МГТФ) припаиваем перемычки в соответствии с принципиальной схемой. Не забываем припаять перемычку с любого контакта из диапазона 18-25 на корпус разъема и с корпуса на общий проводник печатной платы, но уже со стороны монтажа. Для пояснения и наглядности привожу рисунок того, что должно получиться.

Рисунок 10. Монтаж печатной платы завершен

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

Рисунок 11. Распайка сигнальных цепей шлейфа

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

Рисунок 12. Распайка общего провода шлейфа

Установив собранную плату в верхнюю часть корпуса разъема проверяем не забыли ли припаять перемычку с контакта разъема на его корпус (о том как это сделать говорилось выше).

Рисунок 13. Распайка перемычки общего провода

Окончательно собираем корпус разъема. Распечатываем этикетку, обклеиваем ее с лицевой стороны скотчем и закрепляем на корпусе в предусмотренном для этого углублении на нем.

Рисунок 14. Собираем корпус и клеем этикетку

Ну вот и все. Адаптер для внутрисхемного программирования готов! Что получилось у меня показано на рисунке. У вас должно получиться то же самое, если вы следовали моим указания.

Рисунок 15. Адаптер готов

Можно проводить испытания. Подключаем к макетной плате с установленным микроконтроллером, запускаем программу для внутрисхемной прошивки с поддержкой STK200/300 ( например CodeVisionAVR Programmer) и наслаждаемся.

Рисунок 16. Проверяем работу

В заключение хотелось сказать пару слов о длине кабеля. В большинстве источников говорится что длина кабеля не должна превышать нескольких десятков сантиметров для обеспечения надежной работы адаптера. Однако практика использования адаптера с двух метровым кабелем, изготовленного по выше описанной технологии, не выявила никаких проблем. Кабель такой длины позволяет удобно располагать программируемое устройство на рабочем столе и отказаться от использования удлинителя параллельного порта компьютера. В последствии приходилось общаться с людьми утверждавшими что успешно использовали подобную конструкцию с кабелем длиной около десяти метров для внутрисхемного программирования по интерфейсу SPI. Надеюсь, что мои рекомендации окажутся полезными для тех кто решится начать свою работу с микроконтроллерами AVR со сборки адаптера STK200/300.

Файлы к статье:

На просторах интернета есть огромное количество различных схем построенных на микроконтроллерах PIC фирмы Microchip и микроконтроллерах семейства AVR фирмы Atmel.

И у начинающего радиолюбителя задумавшего собрать что либо на микроконтроллере сразу возникает вопрос как и чем его запрограммировать. Что касается микроконтроллеров PIC, то об этом довольно подробно описано здесь. В данной статье рассмотрим схему LPT программатора, а также как и чем можно запрограммировать контроллеры AVR. Существует множество  устройств способных прошить AVR контроллер. Рассмотрим несколько из них.

Программирование при помощи пяти проводков.

У микроконтроллеров AVR   для программирования имеются следующие выводы:

  1. вывод MOSI — предназначен для приема данных;
  2. вывод MOSO — для вывода данных;
  3. вывод SCK — вывод синхроимпульсов;
  4. вывод RESET — говорит сам за себя, это сброс.
  5. Пятым проводом является общий провод.

Подключив эти пять выводов через токоограничивающие резисторы к параллельному  порту персонального компьютера получаем простой LPT программатор для микроконтроллеров AVR.

При сборке данной схемы необходимо чтобы  кабель соединяющий микроконтроллер и LPT порт персонального компьютера был с экраном (можно использовать ненужный шнур от принтера). Если применить  не экранированный кабель, то его длинна не должна быть более 15 сантиметров, так как при большей длиннее возможны ошибки при программировании.

Программатор LPT на основе микросхемы 74HC244

Одним из минусов выше приведенной схемы является большая вероятность того что при ошибке монтажа схемы или не аккуратном ее подключении к компьютеру можно сжечь LPT порт. Чтобы защитить его и увеличить помехоустойчивость программатора  данную схему необходимо дополнить буфером, применив микросхему 74HC244.

На схеме светодиод HL2 предназначен для индикации напряжения питания, а светодиод HL1 указывает на процесс программирования.

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

Лазерный дальномер MileseeyДальность измерения: 40/60/80/100 м,точность:± 2 мм, измерение площади и объе…ПодробнееЕсли вы задумали собрать какое-нибудь устройство на AVR микроконтроллерах Atmel (да хоть свою homemade Arduino), Вам просто не обойтись без программатора. Программатор позволит прошить микроконтроллер нужной программой или, в случае с Arduino, записать в память микроконтроллера подходящий bootloader.84687de659d8fd113d5bb880ae4b33db.jpg Вообще-говоря, существует превеликое множество программаторов, различающихся сложностью сборки, скоростью прошивки и надежностью работы. Самым простым из них является вариант, называемый в народе «Пять проводков». Но надежность его оставляет желать лучшего, так как убить им LPT порт легче легкого=) Более надежным является программатор STK200, который содержит буферную микросхему и гарантирует нормальную работу с портом. Но из-за наличия микросхемы он становится гораздо сложнее в изготовлении для начинающего (то есть для меня). Как с этим бороться?3229dacb1a66c3605638e895818bd80c.png Для защиты от замыканий добавляем резисторы по 150 Ом, для совместимости с STK200 (это позволит работать с большинством прошивающих программ) соединим выводы 2 с 12 и 3 с 11 в LPT. Как видите, схема совсем не усложнилась и в то же время появилась дополнительная защита. Начинаем сборку! На LPT разъеме типа папа (его можно взять от древнего кабеля к принтеру) необходимо соединить ножки от 18 до 25 — это выходы земли. Для защиты от статики между землей и корпусом LPT-разъема можно дополнительно впаять резистор на 1 КОм.4f0af2a514c88d2fb15de6f5721f01dd.jpg Затем нужно соединить выход 3 с выходом 11 и выход 2 с выходом 12 (отличительный признак STK200) К ножкам 6, 7, 9, 10 припаиваются резисторы номиналом от 100 до 150 Ом. Это будут наши 4 сигнальных выхода.2065ee6f0702d49d272023e6ecb3573a.jpg Шлейф можно взять от IDE, длину лучше выбирать без фанатизма, сантиметров 20-30 должно хватить=) Чем короче, тем надежнее в итоге будет программатор. Хорошим тоном будет чередовать каждый сигнальный провод с землей (как это сделано, к примеру, в том же IDE шлейфе) для защиты от возможных помех. Разъемы для внутрисхемного программирования…077a76deaceef30450c4232c0eda7162.png Вот здесь можно дать фантазии разгуляться=) Можно отколоть группу 2×3 от IDE шлейфа, можно воспользоваться разъемы BLS типа «мама» (ими подключается передняя панель корпуса к материнской плате). Я отрезал две полоски по 3 пина от 40-пиновой линейки. Получилось не хуже=)48f25e585a174ba6ee30bb98eabc7247.jpg После спайки всего этого добра закрываем LPT-разъем и любуемся на творение рук своих.457c326c7f329e321524588f781ff228.jpgИспользуемые источники:

  • http://easyelectronics.ru/programmator-stk200300-dlya-mikrokontrollerov-avr.html
  • http://www.joyta.ru/3139-lpt-programmator-dlya-mikrokontrollerov-avr/
  • https://habr.com/post/137740/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации