ATMEGA 328P-PU
- Войдите на сайт для отправки комментариев
Hi. Не получается записать bootloader в ATMEGA 328P-PU. Пробовал стандартными средствами с помошью другой ардуины, залил в неё скетч Arduino ISP, подключил:
Но при выборе нужного порта и указания программатора Arduino ISP в логе пишет:
D:\distrib\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CD:\distrib\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P\\.\COM3 -b19200 -Uflash:w:D:\distrib\arduino-1.0.5\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex:i -Ulock:w:0x0F:m avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "D:\distrib\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf" Using Port : \\.\COM3 Using Programmer : stk500v1 Overriding Baud Rate : 19200 avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] AVR Part : ATMEGA328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware avrdude: Send: A [41] . [80] [20] avrdude: Recv: . [14] avrdude: Recv: . [02] avrdude: Recv: . [10] avrdude: Send: A [41] . [81] [20] avrdude: Recv: . [14] avrdude: Recv: . [01] avrdude: Recv: . [10] avrdude: Send: A [41] . [82] [20] avrdude: Recv: . [14] avrdude: Recv: . [12] avrdude: Recv: . [10] avrdude: Send: A [41] . [98] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown avrdude: Send: A [41] . [84] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [85] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [86] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [87] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [89] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: Send: A [41] . [81] [20] avrdude: Recv: . [14] avrdude: Recv: . [01] avrdude: Recv: . [10] avrdude: Send: A [41] . [82] [20] avrdude: Recv: . [14] avrdude: Recv: . [12] avrdude: Recv: . [10] avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: Send: P [50] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: AVR device initialized and ready to accept instructions Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: V [56] 0 [30] . [00] . [01] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] ################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] ################################## | 100% 0.08s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude: Send: Q [51] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude done. Thank you.
Ничего не прошивается =/
Пробовал просто с помошью FTDI прошить подключил так:
FTDI ATMEGA
(CTS) — MISO MISO -> Digital pin 12
(DSR) — SCK SCK -> Digital pin 13
(DCD) — MOSI MOSI -> Digital pin 11
(RI) — RESET RESET -> RESET
В логе пишет такое:
D:\distrib\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CD:\distrib\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P\\.\COM3 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "D:\distrib\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf" Using Port : \\.\COM3 Using Programmer : stk500v1 avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Recv: avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude done. Thank you.
Пробовал шить через консоль с параметром -F:
D:\tmp\ar\avrdude-5.3.1+ftbb>avrdude.exe -p m328p -c ftbb -P ft0 -B 4800 -F -U f lash:w:boot+blink.hex:a avrdude.exe: BitBang OK avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7 avrdude.exe: drain OK ft245r: bitclk 4800 -> ft baud 2400 avrdude.exe: ft245r_program_enable: failed avrdude.exe: initialization failed, rc=-1 avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude.exe: Device signature = 0xffffff avrdude.exe: Yikes! Invalid device signature. avrdude.exe: Expected signature for ATMEGA328P is 1E 95 0F avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be perfo rmed To disable this feature, specify the -D option. avrdude.exe: erasing chip ft245r: bitclk 4800 -> ft baud 2400 avrdude.exe: ft245r_program_enable: failed avrdude.exe: reading input file "boot+blink.hex" avrdude.exe: input file boot+blink.hex auto detected as Intel Hex avrdude.exe: writing flash (32670 bytes): Writing | ################################################## | 100% 213.11s avrdude.exe: 32670 bytes of flash written avrdude.exe: verifying flash memory against boot+blink.hex: avrdude.exe: load data flash data from input file boot+blink.hex: avrdude.exe: input file boot+blink.hex auto detected as Intel Hex avrdude.exe: input file boot+blink.hex contains 32670 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 201.69s avrdude.exe: verifying ... avrdude.exe: verification error, first mismatch at byte 0x0000 0x0c != 0xff avrdude.exe: verification error; content mismatch avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Вопрос почему ни один из программаторов не видит МК? вроде подключаю всё правильно, в чём может быть ошибка?
По ArduinoISP:
1. Поставьте резистор на 100 Ом между ресетом дуины-программатора и +5V.
2. Прозвоните все соединения.
Пробовал ставить резистор на 100 Ом, результат тот же. Также пробовал ставить конденсатор между ресетом и GND как при программировании ATtiny85, не помогает. Кстати ATtiny85 прошивается нормально с помошью ArduinoISP. Соединения прозвонил, контакты все на месте, разрывов нету.
Может у вас МК "залоченный" попробуйте другой МК.
А как точно проверить? мб есть какой-нибудь софт или ещё чего? А то у меня этих МК 10 штук ...
А как точно проверить? мб есть какой-нибудь софт или ещё чего? А то у меня этих МК 10 штук ...
arduino ISP работает с averdude? по идее да, тогда из командной строки попробуйте прочитать fuse
если прочитает - надо смотреть что там
если не прочитает причин может быть несколько:
- запрограмирован внешний кварц или внешний тактовый геренатор - попробовать подклбчить кварц или затоктавать от внешнего генератора
- отключен ISP интерфейс (SPIEN fuse) или запрограмирован DWEN. В эьтом случае помочь может только параллельный програматор.
Попробовал прочитать fuse через FTDI пишет вот что(и то только с параметром -F):
Кварц у меня поставлен на 16МГц, пробовал и без него и с ним эффект тот же. Судя по тому что там Device signature = 0xffffff то я так понимаю что всё пусто и как бы провода в воздухе висят, или это не так? хотя подключал всё как на фото которое в шапке.
sign.tmp - FF FF FF; lock.tmp - 3F; calib.tmp - FF; hfuse.tmp - FF; lfuse.tmp - FF; efuse.tmp - 07.
PS смущает вот что:
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
Это про какие пины реч идёт? потому как в даташите по счёту совсем другие номера идут - miso 22 sck 20 mosi 19 reset 18
ориентируйтесь на даташит
у вас МК из магазина или откуда-то? если из магазина они должны прошиваться без всяких кварцев, потому что в них прошиты fuse на внутренний генератор
если откуда-то и мы не знаем что там за fuse прошиты, то не факт, что 16мгц это правильный выбор. Под разные частоты в 328-й разные fuse. к тому же много не очень качественных кварцев и стоит попробовать разные. так же стоит попробовать разные конденсаторы которыми кварц соединяется на землю
У китайцев на aliexpress.com брал. Получается что кварц ненужен совсем если новые?
У китайцев на aliexpress.com брал. Получается что кварц ненужен совсем если новые?
я тоже там покупал - никаких проблем не было. Да, если МК новый, то кварц не нужен так как фьюзы на заводе прошивают на использование встроенного генератора
я через ардуино не шил, не могу сказать какие там могут быть глюки
я использовал вот такую простую штуку http://www.buyincoins.com/item/12139.html а с ней eXtremeburner программу для прошивки - с мегами все шьется отлично
можно и недорогой паралельный программер купить если собираетесь часто шить
Спасибо, попробую найти такой, а то посылку ждать долго(спасибо почте). А так как я понимаю если lpt программатор спаять с 5ю проводками типа такого:
то тоже вроде как для проверки работают МК или нет, сойдёт? Остаётся только комп с lpt найти...
перепроверяйте еще раз подключение. Arduino с прошитым Arduino ISP работать должен точно так же как указанные мной последовательный програматор. Оба програмируют через интерфейс ISP. Должно работать.
Если у вас без проблем шьются аттини АрдуинойИСП, то другой программатор врядли поможет.
доброго времени суток присутствующим.
притащил с алиэкспресса про мини платки, с тамегой 328Р
Попытался залить скетч с помощью профилик
USB\VID_067B&PID_2303\6&269AB911&0&4
сигналы пользовал TX RX DTR, RX c TX местами менял, ничего не вышло.
выдает ошибку, что плата не отвечает
Думал может с загрузчиком чего, из подручной меги соорудил Arduino SPI.
В плате, Arduino pro or pro mini
в программаторе выбираю Arduino SPI
Жму записать загрузчик...
получаю
avrdude: Yikes! Invalid device signature.
Ну и какую сигнатуру он считал?
0x00 0x00 0x00 ?
0x1e 0x95 0x0F ?
0x1e 0x95 0x14 ?
Я дуб.
как посмотреть эту сигнатуру? Которую он считал?
http://arduino.ru/forum/programmirovanie/proshivka-atmega8a-au-cherez-spi-s-pomoshchyu-arduino#comment-45944
Вот что выдал avrdude, что и где смотреть?
в общем я дебил.
проводки все проверил.. все верно.
а общий между мини и мега не кинул.
ну он и не шилось.
Загрузчик в общем врорде как влетел.
а вот скетч что то через профилик не хочет лится, пишет нот синк....
у avrdude скорость 115200 может понизить?
Только вот где это сделать?
Или дело не в этом?
Мой опыт клонирования Ардуино Уно р3! на чип Atmega 328 PU!!
Собираем схему как в первом посту.
Подключаем, загружаем скетч Arduino ISP
Далее открываем блокнотом avrdude.conf
находим строчку # ATmega328P
и правим сигнатуру signature = 0x1e 0x95 0x0f;
на signature = 0x1e 0x95 0x14;
сохраняем.
выбираем плату Arduino Uno
программатор Arduino as ISP и жмем Загрузить загрузчик, ждем когда прошьет.
Отключаем Ардуинку, вынимаем МК и ставим ту что прошили, возвращаем сигнатуру в файле avrdude.conf на signature = 0x1e 0x95 0x0f;
все готова, теперь можно включать Ардуинку и загружать свои скетчи, проверено все работает.
Так же можно создать свое устройство просто скопировав секции и заменить сигнатуры и фьюзы для конкретного чипа. Но так как это я буду делать не часто то решил именно таким способом так сказать на лету.
Чтобы не создавать новые темы напишу сюда. Пытаюсь залить загрузчик optiboot нанкой в нанку и получил ту же ошибку.
USB ASP программатора нет? считать сигнатуру, понять МК вообще живой или нет.
Мой косяк. Целый день жарился, а по итогу вместо 10 пина Reset воткнул в RST. Правда после заливки написало вот что: