попытка прошить atmega8 usbasp

Обсуждаем контроллеры компании Atmel.
Ответить
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

попытка прошить atmega8 usbasp

Сообщение dreadfull »

доброго времени суток кот.
есть программатор usbasp вот такой http://d1gsvnjtkwr6dd.cloudfront.net/la ... 01_LRG.jpg
есть atmega8-16PU в корпусе dip-40. есть два файла для прошивки в формате .hex и .eep. я оооочень далек от всех тонокостей работы с программатором, начинал я с простых и готовых решений для arduino uno в arduino ide, с собственными файлами .ino.
пару раз я заливал на atmega8 прошивку с помощью avrdude (через командную строку), с указанием фьюзов с помощью пошаговой инструкции, т.е. программатор работал.
но тепер чуть другая задача. есть файлы прошивки, но я что-то наверно сделал не так... и теперь у меня выдает ошибку

Код: Выделить всё

C:\Users\dreadfull\avrdude>avrdude -p m8 -c usbasp -e -U flash:w:TransistorTeste
r.hex

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


даже если через arduino ide загрузить простейший стандартный файл с миганием "Blink.ino", выдает такую же ошибку

Код: Выделить всё

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


даже если отключить все провода ошибка остается тойже. что может быть???
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: попытка прошить atmega8 usbasp

Сообщение Morroc »

в usbasp не пробовали slowclk включить ? там джампером или просто контакты замкнуть каплей припоя, у меня с мега8 так же - низковат клок по умолчанию, я сразу фьюзы ставлю на побольше и нормально работает уже в обычном режиме

можно и в avrdude задать скорость, но не помню как, в оболочке можно - sinaprog к примеру
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

эээ.... slowclk??? на usbasp есть три джампера
1 - выбор питания (5В или 3,3В)
2 - как я понял для программирования самого usbasp
3 - для программирования на низких частотах (или без кварца) - эта перемычка стоит.
а как выставить фьюзы?
я читал где-то что при подобных ошибках слетает прошивка самого программатора. лечится лишь перепрошивкой.
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

мда...вроде и форум большой а активности не видать....
ладно, далее мои собственные познания в области прошивки мк.
1-й способ. с помощью ардуино через arduinoISP
2-й способ. с помощью переходника usbuart
3-й способ. с помощью usbasp программатора.
самое смешное в том что у меня есть usbasp-программатор, переходник usbuart и даже пара уно и при всем при этом ничего не работает :cry:

теперь по порядку.
1-й способ. есть полностью рабочая ардуино уно с СН340 и не сьемной smd atmega328, и есть старенькая (китайская), немножко подспаленная уна со сьемной диповской atmega328. когда-то давно подал питание и теперь не шьется, т.е. нельзя загрузить скетч, выдает ошибку

Код: Выделить всё

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x8b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x8b
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

но если вытянуть мк залить скетч, установить обратно вразьем и подать питание то вроде функциклирует

начал пробывать заливать через уну(СН340) на атмегу328 (на макетке)
- загрузил на уну(СН340) файл ArduinoISP
- выбрал программатор - Arduino as ISP
- выбрал необходимый ком-порт и плату уну.
- выбрал залить бутлоадер - все хорошо, ошибок нет.
- выбрал "загрузить через программатор" стандартный файл с миганием светодиодом на 13 пине "блинк"
все получилось, все работает.
теперь пробую все тоже самое для атмеги8.
- загрузил на уну(СН340) файл ArduinoISP
- выбрал программатор - Arduino as ISP
- ком-порт ооставил тот же, а плату выбрал "Arduino NG or older" atmega8.
- выбрал залить бутлоадер и тут началось.... :o

Код: Выделить всё

"efuse" memory type not defined for part "ATmega8"
Error while burning bootloader.


есть кучу вопросов по второму и третьему способу, но остановлюсь пока на этом....
П.С. по поводу ошибки для юсбасп, люди пишут что это может быть канифоль на плате или еще какое-либо короткое замыкание на плате, или не правильно подключен прошиваемый МК. плата новая, заводская, специально её помыл расствором калоша-спирт, теперь блестит как у кота яела :)) . питанием на мк поступает, провода поменял, все контачит. дело еще вот в чем, программатор выдает такую же ошибку даже если ничего к нему не подключать. похоже что слетела прошивка в программаторе. ну и как её прошить? через arduinoISP можно?

если где-то я не точен или не прав - поправьте меня!
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

:facepalm: :facepalm: :facepalm:
прошивка через usbasp и ардуино уно удалась. :music: помогла установка дополнительного питания...
только шьется и работает с кварцом на 16кгц. без кварца при загрузке выдает ошибку

Код: Выделить всё

avrdude: Expected signature for ATmega8 is 1E 93 07
         Double check chip, or use -F to override this check.
Wrong microcontroller found.  Did you select the right board from the Tools > Board menu?


вопрос: как определить какие нужны фьюзы еслии есть готовая прошивка (файлы .hex .eep)???
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

короче для этой прошивки и этого мк необходимо установить фьюзы 0xC1 и 0xF9. захожу в аврдуд указываю:

Код: Выделить всё

C:\Documents and Settings\Administrator\avrdude>avrdude -p m8 -c usbasp -U lfuse
:w:0xC1:m -U hfuse:w:0xF9:m

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: reading input file "0xC1"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xC1:
avrdude: load data lfuse data from input file 0xC1:
avrdude: input file 0xC1 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xF9"
avrdude: writing hfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.09s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xF9:
avrdude: load data hfuse data from input file 0xF9:
avrdude: input file 0xF9 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xf9 != 0xd9
avrdude: verification error; content mismatch

avrdude: safemode: hfuse changed! Was f9, and is now d9
Would you like this fuse to be changed back? [y/n]

и тут надо бы выбрать: да или нет....
выбираем нет - не шьется.
выбираем да - все виснет.
пробывал прошить через синапрог, шьется только фьюз С1 высший фьюз остается без изменений....
что делать, как это поправить?
вопрос еще такой если я залью на мк прошивку она должна адекватно работать или нет?
ozonn
Вымогатель припоя
Сообщения: 522
Зарегистрирован: Чт янв 21, 2016 15:59:10

Re: попытка прошить atmega8 usbasp

Сообщение ozonn »

dreadfull писал(а):есть atmega8-16PU в корпусе dip-40.

что за зверь такой? :shock:
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

упс... дип28))))
по поводу этой ошибки

Код: Выделить всё

C:\Users\dreadfull\avrdude>avrdude -p m8 -c usbasp -e -U flash:w:TransistorTeste
r.hex

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

оказалось что я на втором мк она никуда не пропадала... кто знает что это может быть??? чем это можно вылечить? питание на месте, канифоли нет, подключено верно...
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: попытка прошить atmega8 usbasp

Сообщение Engineer_Keen »

dreadfull писал(а):вопрос: как определить какие нужны фьюзы еслии есть готовая прошивка (файлы .hex .eep)???

Это должно быть описано в источнике, откуда вы брали прошивку, если там не написано, значит фьюзы заводские.

Прошив "hfuse:w:0xf9" - вы отключите возможность внутрисхемного программирования (бит SPIEN), и не сможете вообще ничего прошить в контроллер без использования высоковольтного программатора или fusebit-доктора. Если так надо прошить F9, то сначала прошиваете hex (и EEP, если надо), а уже в последнюю очередь фьюз-биты.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
divisоr
Сверлит текстолит когтями
Сообщения: 1238
Зарегистрирован: Пн янв 25, 2016 10:19:15

Re: попытка прошить atmega8 usbasp

Сообщение divisоr »

Тоже решил программировать микроконтроллеры, а не платы Aduino. LTP нет, выписал USBasp. Развел провода по схеме. Поставил AVRDude, но получаю ошибки при чтении Fuse-битов. Отключил программатор, прозвонил все контакты, от программатора до микроконтроллера - цепь есть, далее проверил питание между Vcc и Gnd, получаю 4.95 Вольта. Поставил Khazama, в Command -> Read Chip Signature:

...
Device signature = 0x000000


Хотя подключал и ATMega8A, и ATMega328P.

Иногда, вместо 0x000000 были цифры с буквами, но всего два раза, когда сигнатура была равна сигнатуре установленного микроконтроллера. Один раз удалось прошить микроконтроллер. Проверил - программа работает нормально. Но сигнатура опять определяется как 0x000000 :(
Причем, так и не смог понять, почему там порой были другие значения, и лишь два раза была правильная сигнатура...

Почему такое может быть? И можно ли проверить сам программатор?
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

Engineer_Keen писал(а):Прошив "hfuse:w:0xf9" - вы отключите возможность внутрисхемного программирования (бит SPIEN), и не сможете вообще ничего прошить в контроллер без использования высоковольтного программатора или fusebit-доктора. Если так надо прошить F9, то сначала прошиваете hex (и EEP, если надо), а уже в последнюю очередь фьюз-биты.

правильно ли я понял, что подобная ошибка появляется при подключении "залоченого" мк???
высоковольтного программатора и fusebit-доктора - нет. положу на полочку эти атмеги, пускай лежат... может когда-то дорасту до такого уровня....
divisоr писал(а):Тоже решил программировать микроконтроллеры, а не платы Aduino. LTP нет, выписал USBasp.

вы знаете я начинал с ардуино айди и с ней не было проблем и таких параметров как фьюзы...

а кто знает как через ArduinoISP прошить мегу8???
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: попытка прошить atmega8 usbasp

Сообщение Engineer_Keen »

dreadfull писал(а):правильно ли я понял, что подобная ошибка появляется при подключении "залоченого" мк???

Залоченными обычно называют контроллер у которого включены биты защиты от чтения прошивки, при этом если не отключена возможность работы по внутрисхемному интерфейсу программирования и RESET, то можно спокойно прочитать сигнатуру, фьюз-биты и даже прошивку (только в прошивке будет бред, на то и защита). А вот если отключен RESET и ISP (внутрисхемное программирование), то считать простым программатором нельзя ничего, даже сигнатуру. И в принципе фразы "error: programm enable: target doesn't answer" и "Double check connections and try again" вполне подходят для таких случаев, если действительно все соединено правильно.
dreadfull писал(а):высоковольтного программатора и fusebit-доктора - нет. положу на полочку эти атмеги, пускай лежат... может когда-то дорасту до такого уровня....

Доктор штука полезная и не сильно сложная, можно за вечер сделать, при наличии деталей.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
Art_el
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Re: попытка прошить atmega8 usbasp

Сообщение Art_el »

dreadfull писал(а):avrdude: safemode: hfuse changed! Was f9, and is now d9
Would you like this fuse to be changed back? [y/n] [/code]
и тут надо бы выбрать: да или нет....
выбираем нет - не шьется.
выбираем да - все виснет.
пробывал прошить через синапрог, шьется только фьюз С1 высший фьюз остается без изменений....
что делать, как это поправить?
вопрос еще такой если я залью на мк прошивку она должна адекватно работать или нет?


Сначала прибил чип, запретив ему Enable Serial programming and Data Downloading, а затем начал думать что делать...
Инструкции по прошивке читать надо было до, а не после...

dreadfull писал(а):вы знаете я начинал с ардуино айди и с ней не было проблем и таких параметров как фьюзы...


Вот на ардуино и надо было тренироваться до... а потом уже читать инструкции и браться за фьюзы
dreadfull
Прорезались зубы
Сообщения: 211
Зарегистрирован: Пт янв 15, 2016 20:28:42

Re: попытка прошить atmega8 usbasp

Сообщение dreadfull »

в общем все понятно... тему можно закрывать. спс всем за обьяснения и помощь. :lol:
Ответить

Вернуться в «AVR»