Не удается залить бутлоадер в Atmega328p
- Войдите на сайт для отправки комментариев
Чт, 21/05/2020 - 23:53
МК Atmega328p магазинные, куплены в Чип и Дипе, т.е. непрошитый.
Припаял МК на плату, кварц 16 МГц тоже припаял.
Пробую прошить загрузчик, в IDE выбираю Uno, в качестве программатора "Arduino as ISP" (через другую ардуинку):
Using Port : COM4 Using Programmer : stk500v1 Overriding Baud Rate : 19200 avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15 Ошибка при записи загрузчика. avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15 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 flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10 Hardware Version: 4744608 Firmware Version: 0.4611299 Topcard : STK502 Vtarget : 1.8 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10 avrdude done. Thank you.
Пробую через программатор USBasp (что с установленной перемычкой JP3, что без нее):
Using Port : usb Using Programmer : usbasp avrdude: Warning: cannot open USB device: Function not implemented 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 flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : usbasp Description : USBasp, http://www.fischl.de/usbasp/ avrdude: auto set sck period (because given equals null) avrdude: error: program 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. Ошибка при записи загрузчика.
Другие ардуинки, валявшиеся в столе, обеими способами прошиваются загрузчиком нормально, без ошибок.
А вот с новыми магазинными МК затык.
Где порыться?
Частоту SPI убавь. Прямо в скетче avrisp прописана константа.
Не помогло :(
Причем каждый раз Device signature = 0x0007ff - вот это число разное.
0. м.б. с проводами что ? Приложте фото контроллера .
1. Попробуйте джампер Slow на USBASP и программу Khazama, считайте хотя бы Read Chip Signature.
2. Попробуйте программатор USBtinyISP, помогало от
не шьющихся из местного магазина
http://arduino.ru/forum/apparatnye-voprosy/atmega328pb-u-chem-chrevato#comment-536135
и вот ветка по соседству, мож там что дельное есть
HTTP : //arduino.ru/forum/apparatnye-voprosy/ne-mogu-vostanovit-zagruzchik-v-chetyrekh-nano#new
Разреши поинтересоваться - а какую ты скорость пробовал?
Магазинный МК должен быть настроен на внутренний RC 8 Гц с делителем на 8. Так что кварц вообщем то и не нужен пока фьюзы не поменяются. По вашим логам даже сигнатура чипа не считывается - проверяйте схему/пайку.
Не помогло :(
Потому что не убавил
https://habrastorage.org/webt/tb/oa/s2/tboas2zouejlwy4qn7swtd4dp40.jpeg
https://habrastorage.org/webt/hw/02/yc/hw02ycq9u_2a70xd156k5wmbs9q.png
Остальные советы сейчас попробую.
ну вот , хорошо что полные фото выложили (хотя интересны были надписи самой atmega328) , а то бы гадали и дальше .
у вас reset с разъема SPI непонятно куда идёт (только на разъем uart). а он должен приходить напрямую в reset контроллер. просто киньте проводок с низу платы от кнопки reset к пину reset SPI.
а пин DTR на разъеме UART , желательно должен идти через кондер 0.1мкф на reset контроллера.
// для зуммера удобно использовать цифровые транзисторы ( BCR133 , BCR108 ... ) , у них внутри уже стоят пара резисторов. пассивные зуммеры на али по 5руб., удобно разные тональности через них пищать, в отличии от активных , которые редко так умеют делать в силу схемы внутреннего генератора внутри них.
Вот в этом месте
пишешь
и всё будет работать
Да, косячок. Причем на схеме у меня соединение есть, а в топологии нету, видимо, прибил когда кнопку разводил.
Всё прошивается, причем любым из программаторов.
Спасибо.
Загружал загрузчик как стандартным способом (Плата Uno - Программатор USBasp - Записать загрузчик), так и по описанному тут. Всегда успешно.
Но не работает Serial.
Пытаюсь загрузить скетч через переходник USB-UART CP2102:
Кабель менял, переходник менял, пробовал на Win и Mac - на моей плате ошибка, на любой другой ардуинке все прошивается. Абыдна.
Загружаю через USBasp скетч:
Светодиод моргает. Открываю терминал IDE - окно в нем пустое (даже Start" не выводится), после этого светодиод перестает моргать.
Причем сами пины Rx и Tx исправны - подключенные к ним светодиоды моргают:
Частота 16 МГц вроде верная, светодиод мигает каждые 10 сек, за 8 минут не сместилось(проверял по секундомеру).
Видимо надо поменять местами RX и TX
пробовал.
китайцы изредка путают rx tx на переходниках.
скорее всего с переходником что. попробуйте просто замкнуть у него rx tx , и в мониторе порта отправить любой символ , он должен вернуться .
попробуйте переходник на ch340 . если нет то используйте его с ардуины , залив в нее пустой скетч , или удерживать кнопку reset .
....
Но не работает Serial.
.....
Светодиод моргает. Открываю терминал IDE - окно в нем пустое (даже Start" не выводится), после этого светодиод перестает моргать.
....
очень похоже на то , что вы подключили DTR на reset пин , а т.к. у вас не установлен разделяющий конденсатор (писал выше) , то при открытии порта (открывании терминала) , система выдает постоянный лог0 на DTR , он и удерживает контроллер в постоянном сбросе. Как вы говорите: - Светодиод моргает. Открываю терминал IDE - окно в нем пустое (даже Start" не выводится), после этого светодиод перестает моргать.
// далее вариантов несколько:
первым делом , вверху кнопки , надо убрать кондер С9 .
- можно аккуратно разрезать дорожку на платах под кнопкой, зачистить, и поставить кондер 0.1мкф, к примеру типоразмеров 0603 0402 .
- после переходника разорвать провод DTR , поставить кондер 0.1
- не подключать DTR . а когда IDE после компиляции напишет "загрузка" , резко жманкнуть кнопкой reset . а лучше её заранее нажать и отпустить в этот момент.
- или палевный вариант - не убирать C9 , а разрезать дорожку слева от него , и сверху проводком пробросить его левый вывод на DTR пин разъема uart . И разрезать дорожку reset от разъема SPI к разъему uart.
Разрезал дорожку, перенес С9 - все заработало.
Спасибо!