Страница 1 из 1

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

Добавлено: Пт май 20, 2016 12:58:13
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.


даже если отключить все провода ошибка остается тойже. что может быть???

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

Добавлено: Пт май 20, 2016 13:55:52
Morroc
в usbasp не пробовали slowclk включить ? там джампером или просто контакты замкнуть каплей припоя, у меня с мега8 так же - низковат клок по умолчанию, я сразу фьюзы ставлю на побольше и нормально работает уже в обычном режиме

можно и в avrdude задать скорость, но не помню как, в оболочке можно - sinaprog к примеру

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

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

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

Добавлено: Вс май 22, 2016 14:55:45
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 можно?

если где-то я не точен или не прав - поправьте меня!

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

Добавлено: Вс май 22, 2016 21:16:31
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)???

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

Добавлено: Пн май 23, 2016 20:05:48
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 высший фьюз остается без изменений....
что делать, как это поправить?
вопрос еще такой если я залью на мк прошивку она должна адекватно работать или нет?

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

Добавлено: Чт май 26, 2016 08:30:29
ozonn
dreadfull писал(а):есть atmega8-16PU в корпусе dip-40.

что за зверь такой? :shock:

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

Добавлено: Пт май 27, 2016 00:19:06
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.

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

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

Добавлено: Пт май 27, 2016 07:15:52
Engineer_Keen
dreadfull писал(а):вопрос: как определить какие нужны фьюзы еслии есть готовая прошивка (файлы .hex .eep)???

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

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

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

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

...
Device signature = 0x000000


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

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

Почему такое может быть? И можно ли проверить сам программатор?

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

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

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

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

а кто знает как через ArduinoISP прошить мегу8???

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

Добавлено: Чт июн 02, 2016 07:39:21
Engineer_Keen
dreadfull писал(а):правильно ли я понял, что подобная ошибка появляется при подключении "залоченого" мк???

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

Доктор штука полезная и не сильно сложная, можно за вечер сделать, при наличии деталей.

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

Добавлено: Чт июн 02, 2016 16:27:12
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 писал(а):вы знаете я начинал с ардуино айди и с ней не было проблем и таких параметров как фьюзы...


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

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

Добавлено: Пн июн 13, 2016 14:58:19
dreadfull
в общем все понятно... тему можно закрывать. спс всем за обьяснения и помощь. :lol: