Avr usb програматор на ft232
Мікросхема USB-UART перетворювача FT232 спрощує розробникам завдання по сполученню мікроконтролера з комп'ютером. Але крім цієї функції, FT232 має можливість довільного управління своїми висновками, що істотно розширює діапазон її можливих застосувань. Наприклад, завдяки цій функції, можна створювати на FT232 різні перетворювачі інтерфейсів, вузли знаходяться і програматори. Власне про USB программаторе для AVR мікроконтролерів в цій статті і піде мова.
Зараз існує вже багато доступних схем USB программаторов для AVR. Це усіма улюблений USBASP. USBTINY, AVR910USB, клони JTAGICE і AVRISP MKII і т.д. Всі ці програматори містять мікроконтролер, тому для їх складання, вже потрібно мати який-небудь AVR програматор. Виняток становлять програматори на мікроконтролерах AT90USB, так як вони мають в своєму складі завантажувач і можуть безпосередньо програмуватися по USB.
USB програматор на FT232 позбавлений цього недоліку, правильно зібраний пристрій відразу ж готове до роботи. Крім того цей програматор досить спритний (процес прошивки займає одиниці секунд), побудований з доступних компонентів, досить простий в збірці і має кілька керуючих програмних оболонок. Це класична консольная AVRDude, а також кілька варіантів віконних програм у вигляді надбудови над нею, наприклад SinaProg.

Схема є відкритою на просторах інтернету, я тільки вніс пару особистих правок і розвів свій варіант друкованої плати. Мій початковий варіант не припускав подачу харчування на 2-ий висновок роз'єму програмування, але коли я писав цей матеріал, я вирішив виправити розведення. Тому фотографія плати, наведена вище, трохи відрізняється від те, що ви можете бачити в pcb файлі для Eagle.

Програматор живиться від USB порта. Рівні вихідних сигналів програматора за допомогою джампера JP1 можуть бути задані або 5-ти вольтовими, або 3-ох вольтовими.
Напруга живлення програматора може бути подано через роз'єм X2 на програмовану плату, для чого потрібно замкнути джампер JP2.
Слід мати на увазі, що при 5-ти вольта напруга подається з USB порту. І максимально струм, який можна отримати з програматора, обмежений величиною 500 мА. Однак для такого струму мікросхему FT232 потрібно налаштувати за допомогою утиліти FT Prog.
При 3-ех вольта напруга береться з виходу внутрішнього стабілізатора мікросхеми FT232, максимальний струм якого дорівнює близько 50 мА.
Для запобігання подачі живлення на USB порт від зовнішнього пристрою на программаторе встановлений діод Шотткі (у них маленьке падіння напруги в прямому напрямку). При бажанні діод VD1 усунути звичайним діодом або перемичкою, але цю вже на ваш страх і ризик.
Також програматор можна використовувати як USB-UART перетворювач. Для цього на роз'єм Х2 виведені сигнали RXD, TXD і підключені світлодіоди LED2, LED3. Вони спалахують, коли відбувається передача даних.
Програматор не потрібно відключати від програмованої плати, тому що після програмування мікросхема DD1 переводить вихідні буфери в третій стан.
Світлодіод LED1 загоряється, коли йде процес програмування.
На контактну площадку JP можна вивести тактовий сигнал. Для цього потрібно конфігурація FT232 за допомогою утиліти FT Prog.
Після складання програматора не слід відразу включати його в USB порт. Перевірте, чи не замикань між землею і плюсом харчування, встановіть джампери в необхідне положення і тільки потім підключайте програматор до комп'ютера.
Якщо на вашому комп'ютері вже встановлені драйвера для FT232, комп'ютер "пізнає" програматор як USB-UART перетворювач, якщо немає, запропонує їх встановити. Драйвера можна скачати на сайті виробника мікросхеми FT232 - ftdi.com
З цим програматором я вважаю за краще використовувати оболонку SinaProg, тому що вона проста і зручна. Завантажити SinaProg можна за посиланням в кінці статті.
Підключаємо програматор до USB порту і до цільової платі. Запускаємо SinaProg, встановлюємо швидкість обміну з програматором. Натискаємо кнопку Search. Програма видасть діагностичне повідомлення "Searching. OK", а у віконці Device відобразитися ваш тип мікроконтролера.

Вибираємо hex файл прошивки, натискаємо Program. Почнеться процес програмування, після закінчення якого, програма видасть повідомлення "Programming Flash. OK".
Також SinaProg дозволяє програмувати Fuse біти мікроконтролерів AVR. Частоту внутрішнього генератора можна вибрати зі списку в рамці Fuse. Програма сама встановить потрібні fuse біти, а вам залишиться тільки натиснути кнопку Program. Щоправда ця опція доступна тільки для декількох мікроконтролерів, інші мікроконтролери потрібно ручками прописувати в текстовому файлі fuse.txt, який розташований в папці SinaProg.
Повноцінне програмування fuse бітів можна зробити в віконці, яке відкривається при натисканні на кнопку Advanced.

Консоль, на яку SinaProg видає більш детальну діагностичну інформацію відкривається при натисканні на кнопку ">". Я завжди тримаю її відкритою, щоб бачити, що відбувається з програматором.
Спробуй в файлі avrdude.conf поміняти настройки, щоб відповідали твоїй схемі. Ось ці настройки.
# = 0; # TXD [1 PIN FT232RL]
# = 1; # RXD [5 PIN FT232RL]
sck = 2; # RTS [3 PIN FT232RL]
gates = 3; # CTS [11 PIN FT232RL]
miso = 4; # DTR [2 PIN FT232RL]
reset = 5; # DSR [9 PIN FT232RL]
mosi = 6; # DCD [10 PIN FT232RL]
# = 7; # RI [6 PIN FT232RL]
avrdude -C avrdude.conf -c usbbit -P ft0 -B 115200 -p m645 -q
avrdude: BitBang OK
avrdude: pin assign -
MISO: 4
SCK: 2
MOSI: 6
RESET: 5
GATES: 3
avrdude: drain OK
SET => ft245r: bitclk 76800 -> ft baud 38400
avrdude: ft245r_program_ enable: failed
avrdude: initialization failed, rc = -1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.