Sari la conținut
ELFORUM - Forumul electronistilor

Arduino programeaza alt Arduino


Vizitator

Postări Recomandate

Are cineva vreo idee daca merge ca un Arduino UNO[1] de exemplu, sa poata programa prin UART (TX/RX)  pe un alt Arduino UNO [2] ?

Repet. Nu SPI, prin UART, Serial...evident un fisier HEX.

 

Astept idei..

Editat de Vizitator
Link spre comentariu
  • Răspunsuri 14
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • mihaicozac

    2

  • nico_2010

    2

  • cimitavita

    2

  • Liviu M

    1

Top autori în acest subiect

Păi headerul de programare ISP nu pe Rx/Tx e legat? dacă te conectezi acolo ar trebui să meargă, după un reset manual.

Doar să-ţi scrii programul în Arduino-ul master.

Editat de mihaicozac
Link spre comentariu

Nu. Pe ISP, ai alta conexiune. MOSI, MISO, SCK... Nu are treaba cu UART.

Ceea ce vreau am zis deja dar...ideea ca trebuie sa scrii firmware in Arduino Uno[2] folosind bootloader-ul acestuia.

Arduino Uno[1] ar trebuii sa simuleze ceea ce trimite ArduinoIDE pe serial bootloader-ului.

NU se discuta de pin reset, ala este evident.

 

M-ar interesa partea de soft, pentru ca conexiunea este evidenta.

Link spre comentariu

Foloseste un sniffer pentru portul USB ca sa monitorizezi ce se intampla la scrierea Arduino si (re)scrie bootloader-ul din celalalt Arduino in conformitate cu constatarile facute.

Link spre comentariu

Nu e nevoie sa monitorizeze portul USB. Arduino uno se incarca toate pe UART (Rx/Tx). Intre USB si microcontroler este un adaptor USB-UART facut din CH340A, T sau G, ori un  adaptor USB-UART dintr-un ATMEGA8. Din cauza asta, un arduino poate fi programat prin UART de pe un calculator mai vechi direct de pe COM (folosind doar un adaptor COM-TTL) sarind peste adaptorul USB-UART de pe placa lui.

Trebuie doar sa stii exact cum merge firmware arduino ca sa stii exact ce comenzi trebuie date pentru auto-programare. Ei nu au copiat boot loder-ul din datasheet ci si-au facut propriul boot loader.

Dar hex-ul pe care vrei sa il incarci, trebuie sa fie in primul arduino in FLASH sau intr-o memorie externa atasata lui. Asta din cauza ca UART o sa fie ocupat cu trimitrerea datelor spre cel de-al doilea arduino si in timpul asta e exclusa orice legatura cu PC-ul prin USB.

Link spre comentariu

Exact cum zice @cimitavita, trebuie sa emulezi comunicatia PC - bootloader Arduino.

Cu alte cuvinte, trebuie sa te prinzi cum activezi bootloaderul si cum sa fie formatate datele pe care i le trimiti (si pe care trebuie sa le ai undeva, in Arduino programator).

Eu m-as uita prin codul de la bootloader, poate sunt destule informatii in el.

Link spre comentariu
Acum 3 ore, cimitavita a spus:

trebuie doar sa stii exact cum merge firmware arduino ca sa stii exact ce comenzi trebuie date pentru auto-programare. Ei nu au copiat boot loder-ul din datasheet ci si-au facut propriul boot loader.

 

Acum 3 ore, Liviu M a spus:

Cu alte cuvinte, trebuie sa te prinzi cum activezi bootloaderul si cum sa fie formatate datele pe care i le trimiti (si pe care trebuie sa le ai undeva, in Arduino programator)

 In concluzie ai doua variante:

  - fie folosesti un sniffer (sau si mai bine un analizor logic) care sa-ti evidentieze comenzile primite de placa Arduino de la IDE in momentul scrierii fisierului compilat (eu as monitoriza inclusiv pinii RTS si DTR ce ies din FT232);

- fie te inarmezi cu multa cafea si stai si citesti continutul sursei bootloader-ului.

L.E.: Upppssss! Arduino Uno nu este dotat cu FT232 sau CH340, ci cu ATMega16U2 , iar la pinul DTR (pinul 13 al ATMega16U2) s-ar putea sa ai acces mai greu, dar nu imposibil.

Editat de nico_2010
Link spre comentariu
Acum 6 ore, nico_2010 a spus:

[....] ai doua variante:

  - fie folosesti un sniffer (sau si mai bine un analizor logic) care sa-ti evidentieze comenzile primite de placa Arduino de la IDE in momentul scrierii fisierului compilat (eu as monitoriza inclusiv pinii RTS si DTR ce ies din FT232);

- fie te inarmezi cu multa cafea si stai si citesti continutul sursei bootloader-ului.

L.E.: Upppssss! Arduino Uno nu este dotat cu FT232 sau CH340, ci cu ATMega16U2 , iar la pinul DTR (pinul 13 al ATMega16U2) s-ar putea sa ai acces mai greu, dar nu imposibil.

  

decat sa-l trec prin logic analizor, mai bine cred ca prefer sa studiez codul sursa al bootloader-ului. daca ai un link ceva ar fi foarte bine, daca nu ramane sa sap pe net.

@deejay2k1link-ul tau pare interesant. la prima vedere e cam ceea ce vreau sa fac eu. trebuie sa studiez...

 

"Arduino Uno nu este dotat cu FT232" - nu e o problema sa am acces, se poate pune un FTDI extern ...dar asta cred ca e pentru analizor, nu ?

 

Ideea mea este ca as vrea sa imi fac o jucarie cu SD card si LCD, pun pe sd diferite HEX-uri, si urcat pe scara nu mai car laptop sa fac update de firmware la te miri ce senzor sau minune...facuta anterior in pozitii deocheate. Mi-am lasat la toate cate un port cu  [Tx Rx RST GND +5V]

Link spre comentariu

nu o sa poti face update la firmware pe UART. Nu o sa te lase boot loaderul. Update la firmware se face numai pe SPI, JTAG sau paralel, unde inscrierea se face de la 0x000 si pana la capat. Inclusiv fuse. Dar o sa poti incarca programasele exact ca si cum le-ai incarca cu PC-ul din Arduino.

Link spre comentariu
Acum 9 ore, deejay2k1 a spus:

vezi link-ul asta, poate te ajuta

 

Este exact ce aveam nevoie.

 

Va multumesc la toti pentru implicatie. Ramane sa studiez si eu codul, dar face exact ceea ce trebuie.

 

Nota: Sunt fericit. Este prima data cand pot sa gasesc ceva de-a gata. Aproape :)

Editat de Vizitator
Link spre comentariu

Salut. Bootloaderul foloseşte liniile de TX/RX care duc spre convertorul USB-serial, indiferent dacă ultimul e cip dedicat sau controller care face asta. Cu alte cuvinte, te uiţi în schemă şi/sau în cod ca să vezi ce e folosit.

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