Поиск по этому блогу

19 нояб. 2013 г.

USB-программатор для микроконтроллеров AVR на базе FT232 (APU-2)

Похожие программаторы:

APU-2N (Narrow),
APU-2M (Module USB),
APU-2MM (Module Mini-USB)

Поделюсь с общественностью еще одним вариантом USB программатора микроконтроллеров AVR на базе чипа FT232RL. Сразу отмечу, что данная разновидность программаторов (т.е. основанная на «тупой» логике FT232RL) является идеальным вариантом для людей, только начинающих осваивать микроконтроллеры AVR, поскольку не требует программатора, чтобы прошить программатор для того, чтобы начать прошивать микроконтроллер (вот так вот всё сложно).





В преддверии 8 Марта благополучно издохла материнка. Само собой, пришлось тащиться за новой, ибо для жены без игр на Мэйл.ру и праздник – не праздник. Ну и естественно, что про LPT-порт на борту матери я как-то позабыл, поскольку на старой он присутствовал, и был само собой разумеющимся. Обнаружился сей прискорбный факт только ближе к весне, когда понадобилось доработать некий дывайс с работы в домашних условиях.

Приношу домой, пытаюсь воткнуть STK200 в LPT-порт, а он не лезет, ибо некуда. И COM-порта тоже нет, ага. На следующий день приволок AVR910, который хоть как-то, хоть с жутчайшими глюками, но шил камни на рабочих относительно древних компах. Новый же электронный друг работать с этим программатором отказался – не видит его шьющий софт, и всё.

Впрочем, я даже не огорчился. Уже давно назрела потребность в новом, более прогрессивном программаторе. И, поскольку с FT232RL я был год-полтора знаком, в башке прочно засела мысль – народные умельцы уж точно ее как-то смогли прикрутить к задаче программирования микроконтроллеров. Однако, посмотреть примеры и смастерить себе подобный программатор всё как-то руки не доходили.

И вот – прекрасный повод! Поматерившись для виду, начал лазать в Интернете. Забил в гугл «USB программатор AVR FT232RL», начал изучать ссылки. Первой попалась ссылка на статью DiHalt’а. Вывод, который я сделал из этой статьи – благодаря битбангу программатор на FT232RL должен получиться дубовый и шустрый. В принципе, поиски можно было прекращать, ибо сам принцип работы программатора не предполагает существования другой схемы с какими-либо серьезными отличиями (ну, разве что сигналы MOSI, MISO, SCK и RESET будут сниматься с других ног FT232RL). Однако, не радовало наличие кнопок «RUN» и «PROG». Хотелось, чтобы всё получалось автоматически, как в STK200. Решил поискать еще – и точно! Народные умельцы допилили дудку, теперь она может дергать еще одну из ног FT232RL в то время, пока шьется камень. Ну, думаю, теперь точно всё, можно делать дывайс.

При создании программатора мне хотелось чтобы:

— дывайс был как можно меньше, чтоб таскать его в кармане как флэшку;
— дывайс можно было совать прямо в порт USB (обратно, как и флэшку), ибо количество проводов на рабочем столе и так ужасает;
— был доступ ко всем возможностям FT232RL, не использующимся непосредственно для функций программирования (это чтобы не городить отдельные железяки для USB-UART, исследования работы битбанга, использования «штатных» возможностей шины CBUS и т.д.);
— для прошивки можно было использовать старый шлейф от STK200;
— дывайс не сиял, как новогодняя елка, но была возможность проконтролировать хотя бы начало и конец прошивания камня;
— ну и желательно чтобы количество слоев меди равнялось одному.

Вот схема того, что получилось (фото собранного программатора приведены в начале заметки):



Ничего нового здесь не придумано, никаких Америк не открыто. Описание работы схемы неоднократно приводились в Интернете. В принципе, здесь и описывать-то особо нечего. Данная схема просто направляет сигналы MOSI, MISO, SCK и RESET, которые формируются на выводах DCD, DTR, RTS и DSR микросхемы DD1 (FT232RL) соответственно, на нужные выводы прошиваемого микроконтроллера. Причем, делает это только в момент программирования камня, в остальные моменты времени программатор отключен от прошиваемой платы за счет 4-х буферных элементов микросхемы DD2 (74HC125D). Состояние линий MOSI, MISO, SCK и RESET устанавливается/считывается прошивающим софтом на компьютере. Передача данных между компом и микросхемой FT232RL идет по шине USB (от которой еще и получает питание программатор).

Светодиод HL2 («PWR») сигнализирует о подаче на программатор напряжения питания с шины USB. Светодиод HL1 («PROG») индицирует процесс прошивки микроконтроллера (горит только во время прошивки). Вот, в принципе, и все описание собственно схемы электрической принципиальной.

Печатная плата (TOP View):



Печатная плата (BOTTOM View):



Ориентировочные габаритные размеры программатора:



Фото печатной платы:



Чтобы не делать заметку громоздкой, я здесь не буду описывать установку дров для программатора и описание прошивающего софта (я шью дудкой вкупе с SinaProg). В архивах в конце заметки есть файл краткого описания программатора, в котором рассказано об этом (с картинками). Или можно посмотреть освещение данных вопросов на бескрайних просторах Интернета. Отмечу лишь, что для рассматриваемого дывайса в файл avrdude.conf нужно добавить следующий текст:

programmer
id = «APU_2»;
desc = «FT232R Synchronous BitBang»;
type = ft245r;
miso = 4;
sck = 2;
mosi = 6;
reset = 5;
gates = 3;
;

Вот, собственно, и всё. Удачной работы с микроконтроллерами!

Содержание архивов:

APU-2_Hardware.zip:
APU-2_SCH.pdf — схема электрическая принципиальная;
APU-2_ЛУТ.lay — печатная плата для «утюжников» (SL v5.0);
APU-2_ФР.lay — печатная плата для «шаблонщиков» (SL v5.0).

APU-2_Software.zip:
SinaProg — программа-прошивальщик с поправленными файлами конфигурации.

APU-2_Describe.zip:
APU-2_Описание.pdf – краткое описание программатора и работы с ним.

Комментариев нет:

Отправить комментарий

Создайте свой комментарий.