Нещодавно для навчання роботі з Atmel AVR мікроконтролери був куплений один з найпростіших і недорогих программаторов USBASP USBISP AVR Programmer ось такого типу:
USBASP USBISP AVR Programmer
Даний програматор є одним з варіантів схеми проекту USBasp, ось оригінальний сайт:
USBasp
До слова, мені дістався варіант ATMega8L, що працює в режимі розгону, на частоті 12МГц. За документації, повинно бути не більше 8МГц.
Процес пошуку рішення проблеми описаний тут:
Форум
В результаті рішення проблеми наступне:
- про всяк випадок видалив два резистора R9 (270 Ом) і R10 (100 Ом), так як не зовсім розумію для чого необхідно підтягувати RXD і TXD сигнали до GND, та ще за допомогою резисторів настільки малих номіналів;
- необхідно припаяти перемичку з PC2 (ADC2) на GND.
Після вищевказаних маніпуляцій програматор знову в строю.
Для щасливих володарів вищевказаного програматора - бажаю вчитися на чужих помилках, для інших - дозволю собі нагадати головне правило, яке може допомогти у багатьох життєвих ситуаціях: «працює - не чіпай!» :)
Сподіваюся комусь дана інформація допоможе.
P.S. Номінали в схемі вищевказаного програматора найбільш близькі до вказаних в наступною схемою:
USB програматор AVR - USBAsp
Теж є такий же будинку. Нещодавно прийшли семпли від Атмел, і там била аттіні9 яка шйется тільки по протоколу TPI, який став поддерживать остання прошивка для даного програматора. Тепер і незнаю чи потрібен апгрейд програматора + мінімальний гемор.
P.S. Бачив десь статейку як перетворити такий програматор в STK500 і підчепити до студії.
Думаю, суть переробки ясна з картинки. Тепер з'явилася перемичка швидко-повільно.
Оновлення допоможе виправити помилку: avrdude: warning: can not set sck period. please check for usbasp firmware update.
.
Щоб повернути вибору програм в бойовий стан без припаювання перемички досить прошити його прошивкою з цього архіву
У мене схожий програматор - usbasp v2 після перепрошивки почав при спробі прошити mega32 видавати:
avrdude.exe: error: programm enable: target does not answer. 1
avrdude.exe: initialization failed, rc = -1
Double check connections and try again, or use -F to override
this check.
Якщо я все правильно розібрався, то проблема полягає в наступному:
Мега, яка працює на 1МHz, вимагає, що б її прошивали на будь-якій швидкості нижче 1/4 від своєї (тобто 250 kHz і нижче). Але Usbasp в «нормальному» режимі шиє з частотою 375 kHz, що є багато. Однак, для цього є джампер JP3, про який в документації прямо і сказано If the target clock is lower than 1.5 MHz, you need to set this jumper. Then SCK is scaled down from 375 kHz to about 8
kHz. Якщо подивитися пристрій вибору програм, то видно, що цей джампер просто з'єднує PC2 і GND.
Китайці - лиходії. Не знаю, що з'єднує цей джампер, але тільки не PC2 і GND.
Хм ... Ну, або зі стандартною прошивкою використовувати опцію -B в avrdude. Наприклад, для контролера з 1MHz -B 3.