Печать

Программатор AVR на микросхеме FT232RL

вкл. .

Рейтинг:   / 0
ПлохоОтлично 

В наши дни становиться всё меньше и меньше ПК с наличием в них COM и LPT портов.  В этом случае можно использовать USB программаторы, но большинство из них имеют в своём составе микроконтроллер, который тоже нужно чем-то прошить. Вот тут и начинается проблема “курицы и яйца” т.е чтобы собрать программатор нужен ещё один программатор. Но к счастью в интернете уже давно появилась схема высокоскоростного USB программатора, не требующего прошивки управляющего контроллера. Программатор называется USBBit. В составе этого программатора имеется распространённая микросхема FT232RL. Это аппаратный высокоскоростной переходник USB – RS232, который может не только эмулировать RS232, но и поддерживает прямой доступ к порту (это когда мы можем не только записать в порт число, но и выставить любой вывод порта в 0 или 1). Такой режим называется BitBang. Именно с помощью этого режима можно эмулировать интерфейс SPI, по которому программируются микроконтроллеры AVR. Недостатка у этой микросхемы два: она очень маленькая и запаять её бывает сложно, и она дорогая (у нас она стоит 210 рублей). Но это стоит того! Программатор получается отличный, а главное не требует прошивки управляющего контроллера! Схема (упрощённая):

Это упрощённая схема, но тем не менее рабочая. Также программатор можно использовать в качестве переходника USB – UART. Джампером выбирается уровень сигналов программирования – 5 или 3.3в. Но у этой схемы есть два недостатка: он не возвращает в 1 линию RST после программирования, и чтобы программа запустилась, нужно отключать программатор то целевой платы, что неудобно. И ещё один её недостаток – после завершения программирования линии остаются либо в нулях, либо в единицах, а если к выводам программирования мк подключено ещё что-то, то это доставляет неудобство. Я рекомендую эту схему:

Я собрал именно эту схему. За счёт применения микросхемы буфера удалось избавиться от вышеперечисленных недостатков. У микросхемы буфера есть три состояния выхода: высокий уровень, низкий уровень и HI-Z. HI-Z – третье состояние, при котором линии как бы не к чему не подключены, поэтому на них ни 1, ни 0. Вывод 1 и 19 – выводы управления. Если на них подать 1, то выход перейдёт в HI-Z состояние, а если ноль – на выводе будет либо 1, либо 0, в зависимости от сигнала на входе. И ещё один плюс такой схемы – если вывод программирования случайно закоротить(соединить) на землю, то сгорит буфер, который стоит 7 рублей, а не микросхема за 210!

Далее я , как обычно развёл плату в Sprint-layout:

Вытравил и запаял:

Вид со стороны пайки:

Всё, программатор собран. Переходим к тестированию. Для начала подключите его к пк, он должен найти новое оборудование – FT232R USB UART. Далее скачайте архив с драйвером в конце страницы, и установите драйвер. Если всё прошло успешно, в диспетчере устройств появятся два новых устройства – USB Serial Converter (в разделе “контроллеры последовательной шины USB”) и USB Serial Port (в разделе “порты COM и LPT”):

Если эти устройства отобразились в диспетчере устройств, то можно идти дальше. Следующим шагом идёт настройка микросхемы FT232RL так, чтобы она генерировала тактовый сигнал 6 мГц. Для этого открываем программу FT PROG из архива и нажинаем Devices – Scan and Parse. Через несколько секунд программа найдёт чип и появится такое окно:

Теперь переходим на вкладку USB_Config_Descriptor и выставляем значение Max Bus Power = 500:

Остальное не трогаем. Эта настройка позволит получать из шины USB ток до 500 мА. Теперь переходим на Hardware_Specific – IO_Controls и устанавливаем в поле С4 значение CLK6:

После этой настройки на выводе CUSB4(12) будет генерироваться импульс с частотой 6 мГц. Далее можно поменять идентификатор устройства т.е. имя, под которым его распознаёт система, когда драйверы не установлены. Переходим на USB_String_Descriptors и пишем в поле Product Description своё название. Я написал “Программатор USBBit”:

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

Этот программатор поддерживает только модифицированная AVR Dude. Поскольку программа консольная, я использую графическую оболочку SinaProg. Оболочка+модифицированная дудка находятся в архиве в конце статьи. Скачивайте их и распаковывайте куда-нибудь поближе. Например, C:\usbbit\. В этом пути не должно быть никаких папок с русскими названиями и пробелами, иначе программа не будет работать!!! Запускайте SinaProg и выбирайте программатор USBBit, порт USB и максимальную скорость. Дальше подключите программатор к мк и к компу. Подайте на мк питание и нажмите кнопку Search:

Из логов дуды следует, что она обнаружила программатор, а потом и мк – ATmega16. Программатор получился очень удобный и быстрый. Надо только суметь запаять FT232RL, но я думаю у вас всё получится! Удачи!

Скачать архив с Depositfiles

Источник: www.reddylab.eu

Комментарии  

makhn1
0 #1 makhn1 28.03.2014 11:10
Доброго времени суток!
Большое спасибо за статью. Повторил описанный программатор, настроил
Подключаю к меге8, указываю все как на скрине, но программа выдает такой лог:


avrdude -C avrdude.conf -c usbbit -P ft0 -B 3000000 -p m8 -q


avrdude: BitBang OK
avrdude: pin assign -
MISO:4
SCK:2
MOSI:6
RESET:5
GATES:3
avrdude: drain OK

SET=> ft245r: bitclk 460800 -> ft baud 230400
avrdude: ft245r_program_ enable: failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

RESET ... OK

avrdude done. Thank you.

Никак не могу разобраться в чем причина.
Подскажите, пожалуйста, куда смотреть?
Сообщить модератору
AntonChip
0 #2 AntonChip 28.03.2014 14:29
Возможно неправильное подключение или фьюзы
Сообщить модератору
makhn1
0 #3 makhn1 30.03.2014 15:24
Подключение проверил. Все по схеме.
Проверил уровни на выходах:
везде примерно +3,7 если перемычка на уровень 5V.
МК новый - из магазина. АТмега8
Сообщить модератору
makhn1
0 #4 makhn1 30.03.2014 15:34
при этом на входе в буфер - выводы 2,4,6,8 напряжение - 5,5,5,3.7 соответственно.
может стоит подключить МК на прямую без буфера для проверки?
Сообщить модератору

Добавить комментарий

Если Вы хотите написать исходный код на языке Си, выделяйте его тегами [CODE]...Ваш код...[/CODE]

Защитный код
Обновить

Покер онлайн