Sari la conținut
ELFORUM - Forumul electronistilor

Bootloader instabil


aureliu67

Postări Recomandate

Buna seara. Ma confrunt (nu prima data) cu o problema ciudata la Arduino Nano. Sare bootloaderul din procesor si habar nu am unde fuge dar mai ales de ce. Dupa ce ii scriu bootloaderul merge sa bag softul. Dupa un timp (ultima data mai putin de 24 ore) nu mai pot rescrie microcontrolerul si trebuie sa bag din nou bootloaderul. Aceasta problema la arduino o intalnesc nu foarte des insa nici destul de rar. La inceput nu stiam si am schimbat 4 procesoare pe 4  module  diferite  din aceasta cauza. Sa mai confruntat cineva cu aceasta problema si asie cum pot sa "imobilizez  bootloaderul saritor" ?

Link spre comentariu
  • Răspunsuri 15
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Nu cred că se alterează bootloaderul fără să fie afectat restul programului...  mai ales că ai mai multe module şi toate fac la fel. Mai degrabă să fie ceva probleme cu convertorul serial dintre PC şi modul (sincronizare).

Eu programez la serviciu lunar zeci de plăci cu ATMega328P, prima scriere o fac pe ISP că procesorul e nou deci gol, dar am şi header serial pt. upgrade şi niciodată nu au fost probleme, folosesc Optiboot cu 8MHz.

Link spre comentariu

Ar mai fi două cauze pentru care flash-ul se modifică:

1. Face programe care scriu in flash și nu controlează bine adresele de scriere.

2. Biblioteca coruptă, modificată de un hacker vesel.

 

La atmega singura instrucțiune care afectează memoria flash este SPM. 

Instrucțiunile ST și STS scriu doar in SRAM și nu vor afecta memoria flash chiar dacă adresele de scriere sunt greșite.

 

Link spre comentariu
Acum 3 minute, nico_2010 a spus:

Care sunt fusebits la modulele "posedate"? Nu teoretic ci practic.

Asta nu stiu cum sa aflu. Fac programe foarte simple doar cu Arduino IDE care nu stiu daca le arata. Deci nu fac nici o modificare pe acolo.

 

Acum 1 oră, mihaicozac a spus:

Nu cred că se alterează bootloaderul fără să fie afectat restul programului...  mai ales că ai mai multe module şi toate fac la fel. Mai degrabă să fie ceva probleme cu convertorul serial dintre PC şi modul (sincronizare).

Eu programez la serviciu lunar zeci de plăci cu ATMega328P, prima scriere o fac pe ISP că procesorul e nou deci gol, dar am şi header serial pt. upgrade şi niciodată nu au fost probleme, folosesc Optiboot cu 8MHz.

Pai eu astazi am testat programul si mergea in modul demo, adica rapid. Am vrut sa modific la modul normal si nu mai putea sa strie. Cica  acces  procesorului este interzis sau ceva de genul acesta

Link spre comentariu
Acum 3 ore, aureliu67 a spus:

nu mai pot rescrie microcontrolerul si trebuie sa bag din nou bootloaderul.

Care este eroare care apare ?
Nu comunica cu bootloaderul sau sunt erori la scriere ?
O poza cu eroare daca se poate.


 

Editat de Vizitator
Link spre comentariu
1 oră în urmă, cimitavita a spus:

Ar mai fi două cauze pentru care flash-ul se modifică:

1. Face programe care scriu in flash și nu controlează bine adresele de scriere.

2. Biblioteca coruptă, modificată de un hacker vesel.

 

La atmega singura instrucțiune care afectează memoria flash este SPM. 

Instrucțiunile ST și STS scriu doar in SRAM și nu vor afecta memoria flash chiar dacă adresele de scriere sunt greșite.

 

Nu am folosit biblioteca  pt ca este un program extrem de simplu, citire date, comparare si decizie un functie de valori.. Modulele cu probleme le-am demolat pana la urma la piese. Se intampla de mai multi ani asta.. Chiar am postat odata din cauza aceasta  precum ca Procesoarele de la arduino sunt mult mai putin fiabile decat PICurile. Cineva mi-a raspuns ca ar fi o afirmatie hazardata insa eu pe atunci nu stiam de bootloaderele alea din arduino. Iar PICurile nu au creat probleme, Sau moarte sau mergeau bine

Acum 6 minute, Liviu.Mihaiu a spus:

Care este eroare care apare ?
Nu comunica cu bootloaderul sau sunt erori la scriere ?
O poza cu eroare daca se poate.


 

Sketch uses 3,422 bytes (11%) of program storage space. Maximum is 30,720 bytes.
Global variables use 256 bytes (12%) of dynamic memory, leaving 1,792 bytes for local variables. Maximum is 2,048 bytes.

avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x00
avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
    read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
 

Link spre comentariu
Acum 3 minute, aureliu67 a spus:

Cineva mi-a raspuns ca ar fi o afirmatie hazardata insa eu pe atunci nu stiam de bootloaderele alea din arduino. Iar PICurile nu au creat probleme, Sau moarte sau mergeau bine

Bootloaderul este un programel oarecare.
Si PIC-urile pot avea bootloader sau nu, ca si "arduino".
 

Link spre comentariu
Acum 12 minute, Liviu.Mihaiu a spus:

Care este eroare care apare ?
Nu comunica cu bootloaderul sau sunt erori la scriere ?
O poza cu eroare daca se poate.


 


avrdude: arduino_read_sig_bytes(): (a) protocol error, expect=0x10, resp=0x38
avrdude: error reading signature data for part "ATmega328P", rc=-3
avrdude: error reading signature data, rc=-3
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
Failed uploading: uploading error: exit status 1

Deja eroarea este un pic diferita.. Este cu rc=-3 in loc de -2 cum aparea in prima 

 

 

Editat de aureliu67
Link spre comentariu
Chiar acum, Liviu.Mihaiu a spus:

Eu zic ca ai probleme cu alimentarea monajului, filtraj sursa.
Banuiesc ca si la re-scriere bootloader nu-ti iese la prima incercare.



 

Mi-a mers din prima. alimentarea din calculator, prin USB. Testele tot asa le-am facut, citind prin serial monitor datele. deci nu cred sa  fie de la alimentare.

Link spre comentariu
  • 2 săptămâni mai târziu...
La 30.10.2022 la 21:13, Vizitator a spus:

Eu zic ca ai probleme cu alimentarea monajului, filtraj sursa.
Banuiesc ca si la re-scriere bootloader nu-ti iese la prima incercare.



 

Arduino: 1.6.8 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

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

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

 

or use -F to override this check.

Ce inseamna acest -F ? Cu se foloseste ? 

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări