Sari la conținut
ELFORUM - Forumul electronistilor

Programare On-Line a MC


spinach

Postări Recomandate

Salutam cu respect,Se poate programa MC in regim de functionare , cu alimentare ? Adica sa nu decuplam nimic si sa putem programa ; cum o vad eu: pornim programarea , se opereste activitatea de la MC , se reprogrameaza , se reseteaza si apoi porneste in conditiile date in cod. Care ar fi legaturile si schema folosita ?

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

Top autori în acest subiect

  • bogdan_

    3

  • wingless

    3

  • spinach

    3

  • deep-blue

    2

Top autori în acest subiect

Sau chiar si fara BootLoader poti programa mc-ul in mod ISP (in system programming) In cazul asta iti trebuie un circuit extern un programator care poate fi simplu daca vrei sa legi programatorul la PC prin interfata seriala/paralela sau are o schema mai complicata si mai multe variante daca vrei sa legi programatorul pe port USB

 

Trebuie sa ai o mufa prevazuta pe cablaj la mufa aceea cuplezi programatorul

Cand dai comanda de programare programatorul reseteaza MCul deci ii opreste activitatea il programeaza si apoi lasa liber semnalul de reset si mc-ul isi reincepe activitatea. Nu trebuie oprita alimentarea nu trebuie scos integratul etc etc

 

Cred ca orioce Atmel din familia AVR suporta ISP tot ce trebuie sa faci este sa ai acea mufa care s conecteaza la 6 pini ai integratului (2 pini alimentare 1 pin reset 1 pin ceas (SCK) 1 pin data_in 1 pin data_out ) Pe foaia de catalog pinii sunt VCC GND RESET SCK MOSI MISO

 

Programul pe care il poti folosi pentru a descarca codul de pe calculator in integrat poate fi de exemplu PonyProg uite aici pagina wweb unde gasesti si niste sc heme electrice pt programator

http://www.lancos.com/prog.html

 

Bafta si spor

Link spre comentariu

cum sa nu se poata....? eu fac asta mereu(cu bootloader).trebuie doar avut grija ca ceea ce comanda uC sa fie adus intro stare incat vreo comanda parazita sa nu strice ceva(de exemplu vreun reset sau ceva).daca folosesti un bootloader, poti avea de exemplu un semnal(sau un cod primit) care va trimite microcontrollerul catre adresa bootloaderului, asta dupa ce a aranjat perifericele.

Link spre comentariu

Subscriu, se poate sigur si eu fac asta:)Atentie mc-ul este tinut in starea de reset atunci cand programezi ISP. Cand progr cu bootloader nu cred ca e tinut in starea de reset. In starea de reset toti pinii sunt in stare de impedanta inalta HighZdeci daca aveti nevoie de iesiri digitale spre alte module asigurati-va ca aveti rezistente implicite pull-up / down dupa cum e cazul. Asta ca sa nu porneasca motoare, glitch-uri la servouri and stuff :) In rest no problem :)By the way unele mc-uri alea care suporta bootloader defapt suporta o instructiune cu care isi pot scrie singure memoria de program in timp ce merg. Deci se poate scrie un soft care se auto-configureaza si isi schimba buclele de decizie conditiile din bucle etc in functie de stimuli ... se autoprogrameaza :)) Pana aici s-a ajuns sa poata mc-ul sa isi modifice singur programul:D (deasta e recomandata folosirea modulului de BrownOut de pe integrat sa il reseteze cand scade tensiunea sub cea minima de alimentare sa nu sara in stari ciudate sa inceapa sa execute instrucuini aiurea de ex sa isi modifice programul :) )Bafta cu programarea :)

Link spre comentariu

Am citit ce ati scris , dar inca sint nelamurit , astfel: -varianta 1 de programare , fara a fi scos din placa dar cu alimentare decuplata (adica cuplam cu + , Gnd , Miso,mosi, r ,stk de la programator -varianta 2 ar fi sa folosim sursa de lucru din aplicatie , sa cuplam GND , miso, mosi ,r ,stk de la programator , sa avem ceva suplimentar in soft ;Am inteles bine ? -in ambele variante sa presupunem ca folosin intrarile respective pentru altceva ; cum le izolam ? rezistente , diode , ??? pentru ca semnalele de programare sa nu le depreciem ?

Link spre comentariu

Pentru varianta 1 de programare se poate folosi si alimentarea existenta deja fara problemeDaca pinii respectivi ii folosesti pentru a comunica cu un alt modul poti folosi intrarea ChipSelect a acelui modul pentru a-l dezactiva. De exemplu legi intrarea chipSelect cu resetul procesorului => cand procesorul va fi in reset chip_select al integratul;ui cu care comunica mc sa fie dezactivat asta depinde daca cghip select ete cu logica negata sau nuDaca pe pinii respectivi cuplezi butoane e bine ca butonul apasat sa nu cupleze direct masa la pinul mc-ului ci sa limitezi curentul printr-o rezistenta in serie cu pinul de semnal al butonului astfel incat sa poata si altii sa foloseasca pinul mc-ului. Trebuie dimensionate rezistoarele astefl incat divizoarele rezistive rezultate sa mentina semnalul in 0...0.3V pt 0 logic si 3...5V pt 1 logic valorile exact pentru praguri sunt in datasheetul mc-uluiCea mai eleganta solutie ar fi sa folosesti drivere de bus tristated pe care le poti dezactiva atunci cand mc-ul este in reset si astfel sa lasi bus-ul format din cele 3 linii sck miso mosi pt varianta 1 respectiv rxd txd pt varianta2 de programare. Din nou spun in varianta 2 cred ca mc-ul nu este in reset din moment ce executa un program(boot-loader-ul)Sunt multe vorbe e mai simplu decat pare :)Bafta

Link spre comentariu

Am citit ce ati scris , dar inca sint nelamurit , astfel: -varianta 1 de programare , fara a fi scos din placa dar cu alimentare decuplata (adica cuplam cu + , Gnd , Miso,mosi, r ,stk de la programator -varianta 2 ar fi sa folosim sursa de lucru din aplicatie , sa cuplam GND , miso, mosi ,r ,stk de la programator , sa avem ceva suplimentar in soft ;Am inteles bine ? -in ambele variante sa presupunem ca folosin intrarile respective pentru altceva ; cum le izolam ? rezistente , diode , ??? pentru ca semnalele de programare sa nu le depreciem ?

Eu le programez intotdeauna in placa de aplicatie cu sursa pe care functioneaza ! (NU izolez nimic niciodata , doar deconectez daca am ceva sensibil pe iesire .)Pai asta e ideea programarii in sistem ( ! ) : il programezi acolo unde il folosesti , fara sa izolezi nimic !
Link spre comentariu

...Se poate programa MC in regim de functionare , cu alimentare ? Adica sa nu decuplam nimic si sa putem programa...

In timp ce utilajul/masinaria/aparatul este in regim de functionare (in productie) nu poti sa-i schimbi firmware-ul. Pe perioada cat tu schimbi firmware-ul acel aparat este mort, nu isi mai indeplineste functia. Daca cineva stie vreo familie de microcontrollere la care firmware-ul sa fie "hot swapable" il rog sa-mi spuna si mie.

 

Bineinteles ca se poate reprograma un microcontroller fara a fi scos de pe placa si fara sa-i tai alimentarea, dar asta este cu totul alta poveste, se cheama in circuit programming, si nu inseamna in regim de functionare. Majoritatea uC dar nu toate au facilitatea asta.

 

Ca sa te lamuresti cum se face, ce si unde se leaga, citeste foaia de catalog de la microcontroller-ul respectiv pentru ca poate sa difere in functie de familia din care face parte.

Link spre comentariu

Depinde foarte mult de la caz la caz. Uneori poti lega cele 6 fire direct alteori trebuie sa le decuplezi (jumperi ?). Cel mai bine e sa fii prevazator cand proiectezi circuitul si sa nu legi iesirile altor circuite pe pinii de ICSP. Eu mi-am facut un obicei de a pune mufa ICSP inca de la inceputul proiectului (chiar si daca programam o singura data circuitul). Oricum ai face, ieisi in mai toate cazurile mai ieftin decat daca pui soclu la controler. Nici varianta cu bootloader nu e de neglijat. Doar ca daca se intampla ceva poti oricand sa te bazezi pe ICSP.

Link spre comentariu
  • 3 săptămâni mai târziu...
Vizitator Paul Nadejde

Am citit ce ati scris , dar inca sint nelamurit , astfel: -varianta 1 de programare , fara a fi scos din placa dar cu alimentare decuplata (adica cuplam cu + , Gnd , Miso,mosi, r ,stk de la programator -varianta 2 ar fi sa folosim sursa de lucru din aplicatie , sa cuplam GND , miso, mosi ,r ,stk de la programator , sa avem ceva suplimentar in soft ;Am inteles bine ? -in ambele variante sa presupunem ca folosin intrarile respective pentru altceva ; cum le izolam ? rezistente , diode , ??? pentru ca semnalele de programare sa nu le depreciem ?

Nu ca ar fi bai da' se vede ca esti virgin la ISP. Asa ca ia' si downloadeaza BASCOM-ul, il gasesti tu pe net si apoi la Help au o sectiune supported programmers. Iti dau aia mura in gura, desi tre' sa fii atent la scheme, parca la unele era cam varza. DT006 (Sample electronic programmer) se cheama cablul, doua mufe, sarma si niste rezistente. Vezi ca nu prea lucreaza cu ceas mai mare de 8MHz (dai o bere). A, asta e unul din cele mai folosite cabluri pentru astea de la atmel. Merge cam cu toate programatoarele (softurile adica).
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