Arduino Polska Forum

Pełna wersja: Błąd podczas wgrywania bootloadera.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Dzień dobry,borykam się z problemem poprawnego wgrania bootloadera jak i kodu programu dla układu Atmega88PA w obudowie TQFP32. Układ jest już wlutowany na płytkę do programowania używam przejściówki kanda ISP na 6 pinów.
Co ciekawe sprawdzając podłączony avr w programie mkAVR Calculator atmega jest poprawnie wykrywana to też odrzuciłem opcję błędnego połączenia wyprowadzeń mosi,miso,sck i resetu. Podmieniłem programatory i tasiemki i sytuacja się nie zmienia mkAVR Calculator wykrywa za każdym razem a Adruino ide sypie błędami. Przeinstalowałem jeszcze raz środowisko 1.8.13 no i wciąż Arduino IDE pokazuje mi takie coś przy próbie wgrania bootloadera jak i programu:
Kod:
avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Waldek\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.8/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega88P
         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        512    4      0  3600  3600 0xff 0xff
           flash         65     6    64    0 yes      8192   64    128  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
Błąd przy wgrywaniu bootloadera.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Błąd rc=-1 to w większości przypadków było niepoprawne podłączenie no ale w tym przypadku nie mogę się go dopatrzeć.
I tutaj pytanie czego to może być wina ?
Drugie pytanie czy podczas ponownego instalowania środowiska należy usunąć plik Arduino15 z folderu AppData ?
Pozdrawiam Waldek.
Nigdy nie musiałem nic usuwać.
Jeśli Arduino nie działa z USBASP to może być wina driverów. USBASP można zainstalować z co najmniej trzema driverami, służy do tego program https://zadig.akeo.ie/, jak masz zainstalowany z MK to podmień sobie drivery tym programem. Można też podmienić AVRDUDE z Arduino, sprawdź czy działa Ci ten program https://rctruck.pl/forum/viewtopic.php?f=77&t=3950 (darmowy odpowiednik MK) czasami kombinowałem biorąc z niego AVRdude do Arduino.
Aktualnie mam USBASP zainstalowany jako LibusbK USB DEVICES.
Arduino działa z USBASP bo przykładowo na Atemgę328 tyle że w wersji dip28 mogę normalnie przesłać kod czy wypalić bootloadera.
Użyj programatora w Arduino USBASP SLOW, podejrzewam, że masz zegar poniżej 4MHz. Jak nie masz takiego do wyboru to on jest może doinstalowywany przy okazji różnych core, np. MINICORE. Domyślnie w Arduino płytki do wyboru są tylko 8 lub 16MHz, więc nie trudzili się w obsługę takiej opcji.
Jak faktycznie masz zegar poniżej 4MHz to możesz zmienić w MK na 8MHz wew oscylator i przetestować czy pomoże, a poza tym warto było o tym wspomnieć w opisie co tam masz na stole - jeśli o to chodziło.
(02-03-2021, 16:24)kaczakat napisał(a): [ -> ]Użyj programatora w Arduino USBASP SLOW, podejrzewam, że masz zegar poniżej 4MHz. Jak nie masz takiego do wyboru to on jest może doinstalowywany przy okazji różnych core, np. MINICORE. Domyślnie w Arduino płytki do wyboru są tylko 8 lub 16MHz, więc nie trudzili się w obsługę takiej opcji.
Jak faktycznie masz zegar poniżej 4MHz to możesz zmienić w MK na 8MHz wew oscylator i przetestować czy pomoże, a poza tym warto było o tym wspomnieć w opisie co tam masz na stole - jeśli o to chodziło.
Faktycznie zapomniałem napisać co pomogło - tak jak kolega wspomniał pomogło przestawienie programatora na
USBasp slow. A używam taktowania 8MHz co też mnie trochę zdziwiło no ale przy zwolnieniu programatora udało się wgrać wszystko bez problemu. Co mnie trochę zdziwiło to to że na taki sam procek tyle że obudowa "zwykła" czyli dip28 wgrywa się przy ustawieniu USBasp bez slow a na obudowę TQFP bez ustawienia slow pojawia się błąd jak w pierwszym poście. Czy ktoś jest w stanie mi wytłumaczyć dlaczego tak się dzieje ?
Odczytaj ustawienia fuse w MK i sprawdź czy na pewno masz takie taktowanie jak myślisz. Tylko taki przypadek przychodzi mi do głowy. To że sobie w Arduino ustawiasz, że wgrywasz program do płytki 8MHz nie sprawia wcale, że płytka będzie działać na 8MHz, a możesz mieć ustawiony fusebit ckdiv8 i zamiast 8 masz 8/8=1MHz.
[attachment=1116]