Sari la conținut
ELFORUM - Forumul electronistilor

Curiozitati - placi dezv. , progm. & altele - uC


Asgard

Postări Recomandate

Salut,Sunt interesat sa-mi fac propria placa de dezvoltare (preferabil pentru o gama larga de uC, desi ma tem ca e cam imposibil avand in vedere diferentele configuratiilor de pini; s-ar putea cu socluri multiple insa folosind cate un soclu odata, adica testarea unui singur uC odata).Din pacate nu inteleg cateva chestiuni legate de aceste echipamente.Din cate inteleg o placa de dezvoltare foloseste un programator incorporat pentru a programa uC-ul, dupa care uC-ul poate fi folosit de restul placii de dezvoltare pentru executie?Am cautat pe net diverse placi de dezvoltare DIY, insa nu inteleg de ce unele din ele prezinta si conectorii ISP si cei seriali?... adica ISP-ul poate fi folosit pentru a incarca programul printr-un adaptor USB sa zicem?Corectati-ma va rog daca gresec.Doresc sa apelez la dumneavoastra si pentru niste scheme de programatoare/placi de dezvoltare (hai facem un pachet pentru doritori).Multumesc anticipat.

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

Top autori în acest subiect

  • Asgard

    12

  • edy_wheazel

    7

  • XAN77

    6

  • diablero

    6

Top autori în acest subiect

Vizitator andrianu

Avind in vedere ca uC-urile avr, difera practic dupa volumul memoriei , e destul sa stii doar un controller, cu periferie destula (de exemplu atmega32). Doar placile de dezvoltare au un rol didactic. Dupa asta daca vrei sa faci un dispozitiv, folosesti un uC, ce satisface cerintele (am in vedere mai mic si mai ieftin), eventual schimbind doar citeva linii de cod, ce adreseaza pinii.

 

Prin conectorul serial nu se poate programa microcontrollerul. E posibil de facut asta doar cind este prezent un program pe uC, numit bootloader, care e capabil sa scrie pe flash, ceea ce i se transmite prin USART, sau pur si simplu comunica cu PC-ul sau alte dispozitive ce suporta comunicarea seriala..

ISP, e pentru a programa uC blank, desi se poate de folosit si la comunicarea cu alte dispozitive ce suporta master-slave comunicare.

Deci pentru o placa completa treb sa ai preferabil pe ambele, sau macar ISP. Se poate face relativ usor un convertor usb-usart sau usb-ISP (eu am facut cu attiny 2313, merge de minune, si folosesc un breadboard pentru conexiuni lcd, servo, butoane, leduri... arata primitiv, dar merge pentru a invata).

 

Ca exemplu, o varianta reusita si simpla http://extremeelectronics.co.in/hardwar ... -devboard/ Preferabil de a folosi in loc de atmega8, atmega 328, pentru a nu fi limitat in memorie.

Link spre comentariu

am trecut si eu prin faza de inceput, si mi-am facut placi de test, mai multe, una din ele chiar nu am folosit-o niciodata desi avea pe ea digiti led, max232, tsop136, lcd. Parerea mea este ca e suficient o placa cu un controler, conector LCD, conector ISP, porturile trase la barete de pini din care cativa pini rezistori de 4k7 la plus pentru eventuale 1wire, i2c. Orice altceva se conecteaza prin conectori la baretele de pini. De fapt cel mai important este LCD-ul, ca sa afisezi diverse variabile/informatii cand executi programe ce nu fac ceea ce te astepti.Placi A4 cu 12 taste, 16 leduri, 4 digiti LED, dipswitch-uri, si tot felul de periferice onboard gen senzori IR, senzori temperatura etc, mi se pare o mare prostie, risipa de materiale si de energie.

Link spre comentariu

Prin conectorul serial nu se poate programa microcontrollerul. E posibil de facut asta doar cind este prezent un program pe uC, numit bootloader, care e capabil sa scrie pe flash, ceea ce i se transmite prin USART, sau pur si simplu comunica cu PC-ul sau alte dispozitive ce suporta comunicarea seriala. ISP e pentru a programa uC blank, desi se poate de folosit si la comunicarea cu alte dispozitive ce suporta master-slave comunicare.

Nu stiu daca cineva a inteles ceva din aceste explicatii (dincolo de limba romana folosita). Incerc sa revin cu cateva precizari. La inceput, pana la folosirea solutiilor ISP (In - Situ Programming - adica programarea microcontrollerului fara a mai fi scos din placa de aplicatie finala), modalitatea era una singura:- se extragea microcontrollerul din soclul in care se afla pe placa de aplicatie- se introducea in soclul de programare (care putea sa fie un soclu ZIF eventual) al programatorului- cu ajutorul software-ului de programare (care rula pe PC) se programa (se scria programul in memoria Flash sau ROM - aceasta a fost solutia initiala)- se extragea din soclul ZIF si era repus pe placa de aplicatieBineinteles ca nu era deloc comod iar manevre repetate de acest gen puteau duce la catastrofe (ruperea pinilor, distrugerea soclurilor, etc). S-a cautat o solutie de programare mai comoda, fara ca dispozitivul sa fie scos de pe placa de aplicatie si mutat pe cea de programare. In acest fel au aparut solutiile ISP / ICSP in care interfata de programare (cat mai simpla) este prezenta pe placa de aplicatie. Atat programarea (cat si eventualul update al programului - asta in cazul memoriei Flash, nu ROM!) se puteau face comod, prin accesarea interfetei si utilizarea software-ului de programare care rula pe PC.Ideea de folosire de bootloader este doar o alternativa a solutiei de mai sus, cu avantaje si dezavantaje. Bootloader-ul ocupa memorie (ce e drept cat mai putina) dar faciliteaza transferul programului catre memoria Flash.Afirmatia "Prin conectorul serial nu se poate programa microcontrollerul" este o enormitate. Eu programez si astazi printr-un programator JDM microcontrollere PIC (nu Atmel).
Link spre comentariu
Am cautat pe net diverse placi de dezvoltare DIY, insa nu inteleg de ce unele din ele prezinta si conectorii ISP si cei seriali?
Prin conectorul serial nu se poate programa microcontrollerul. E posibil de facut asta doar cind este prezent un program pe uC, numit bootloader
Nu stiu daca cineva a inteles ceva din aceste explicatii (dincolo de limba romana folosita). Incerc sa revin cu cateva precizari. La inceput, pana la folosirea solutiilor ISP...

Afirmatia "Prin conectorul serial nu se poate programa microcontrollerul" este o enormitate. Eu programez si astazi printr-un programator JDM microcontrollere PIC (nu Atmel)

 

Pe principiul de Craciun fi mai bun, ma bag si eu ca musca sa agit spiritele :rade:

Eu am inteles perfect ce a zis colegul andrianu.

@diablero nu are sens sa faci retrospectiva programarii la controlere antice. Acum aproape toti programam controlere ce detin isp/icsp/jtag sau similare. Bootloaderul nu isi mai are sensul. Nu e cam nicio diferenta intre un soft pe pc care comunica cu bootloaderul prin serial si alt soft de pc care comunica cu controlerul pe isp. Ar fi o diferenta, bootloaderul mai mananca ceva memorie si necesita un max232 care poate, unii dintre noi, eu de exemplu, nu l-as folosesc la nimic altceva.

Sper ca nu am suparat pe nimeni. Sarbatori fericite la toata lumea.

Link spre comentariu

Salut, La multi ani si Craciun fericit.

Cind am descoperit ATMEGA8 si faptul ca poate fi programat in BASIC m-am hotarit sa abordez si eu problema si astfel am descoperit placile de dezvoltare. Am tras cu ochiul la o mare varietate de placi si am ajuns la concluzia caci cel mai bine este sa-mi construiesc eu una dupa nevoile mele. In primul rind am pus un LCD pe care asa cum a spus si XAN77 ori de cite ori programul face orice altceva decit doresc eu, afisez parametrii cei mai importanti in momente de timp bine alese. Radiografie interna ii zic eu. Am pus un MAX232 ptr comunicatii seriale, dar care nu l-am folosit niciodata pina acum, push buton de reset, programator ISP serial dar si paralel cel cu rezistente si casca. Conexiunile la porturi am ales sa o fac cu conectori cu surub si consider ca am procedat bine. Ce regret este ca nu am pus mai multi conectori pe borna de masa, dar o mai rezolv cu pistolul de lipit.Am dezvoltat pe ea mai multe proiecte si consider ca ptr un incepator este un foarte bun punct de plecare. Indiferent ce se va gasii pe placa de dezvoltare ea nu va satisface niciodata programatorul. Programul adevarat se va scrie pe cipul care va functiona cel mai aproape de conditiile reale si asta se intimpla pe produsul finit, asa mi-a spus-o experienta. Iata cum arata placa mea de dezvoltare intr-un mic experiment cu o statie de emisie receptie:

. Nu promovez nimic, este doar un exemplu.
Link spre comentariu

@diablero nu are sens sa faci retrospectiva programarii la controlere antice. Acum aproape toti programam controlere ce detin isp/icsp/jtag sau similare. Bootloaderul nu isi mai are sensul. Nu e cam nicio diferenta intre un soft pe pc care comunica cu bootloaderul prin serial si alt soft de pc care comunica cu controlerul pe isp. Ar fi o diferenta, bootloaderul mai mananca ceva memorie si necesita un max232 care poate, unii dintre noi, eu de exemplu, nu l-as folosesc la nimic altceva.

Dac as fi considerat ca nu are sens sa fac acea retrospectiva, pur si simplu nu as fi scris. Din pacate am vazut ca exista multe confuzii (si raspunsuri la fel). Asupra faptului ca "bootloader-ul nu isi mai are sensul" am mari indoieli, dat fiind folosirea sa pe multe solutii actuale (si nu ma refer doar la Arduino sau Pinguino, ca sa dau exemple foarte comune). Despre faptul ca bootloader-ul consuma memorie, parca am scris si eu. Nu este singurul dezavantaj, faptul ca se cedeaza controlul catre bootloader asupra registrului de configurare este o alta problema. Totusi, alegerea folosirii lui apartine fiecaruia dintre noi.
Link spre comentariu

eu nu folosesc placa de test pentru a testa orice program a oricarei aplicatii, ar fi imposibil, mereu ar lipsi ceva, si pe montajul final aranjamentele pinilor vor fi diferite.eu folosesc placa doar pentru a-mi face rutinele pentur comunicari cu dispozitive noi cu care nu am mai lucrat. De exemplu cand am folosit prima data un 1wire, un i2c, cand am de decodat codul ir al vreunei telecomenzi, atat, pentru rutine individuale. ele sunt apoi unite intr-un program intreg care va fi testat pe montajul final. Deci placa de test e doar asa pentru cand ma joc cu vreo ciudatenie noua cu care nu am mai lucrat. De aceea mai mult de un lcd, isp si barete de pini, din care multi sunt de gnd si vcc ca sa am acces la ei de oriunde, nu cum au facut altii :ras:l.e. arduino e un produs care se vrea intreg, sa nu depinda de vreun programator, deci aveau de ales intre programator onboard sau bootloader. In ziua de azi programam cu icd2, pickit2/3 care nu necesita alimentari separate, e foarte comod sa conectezi la icsp asa ca bootloaderul devine....da ma rog, e parerea mea. Mentionez ca prima placa de test a fost cu F871 cu bootloader asa cum era descris in helpul Basicului celor de la crownhill. Si mi-am facut placa cu bootloader si cu atmega8, deci stiu ce e cu ele si le-am folosit. Acum cu pickit si usbasp chiar nu simt lipsa vreunui bootloader.

Link spre comentariu

Salut,Sunt interesat sa-mi fac propria placa de dezvoltare (preferabil pentru o gama larga de uC, desi ma tem ca e cam imposibil avand in vedere diferentele configuratiilor de pini; s-ar putea cu socluri multiple insa folosind cate un soclu odata, adica testarea unui singur uC odata).

Sunt doua modalitati diferite in ceea ce priveste realizarea placilor de dezvoltare. Poate fi o abordare "modulara" (in genul Arduino, cu o placa "de baza" pe care se afla MCU si placi de extensie - asa numitele shield-uri) sau o abordare de genul "totul pe o placa" (un exemplu serios in acest sens poti gasi pe site-ul http://www.mikroe.com - imi amintesc ca dadeau si schema placilor produse de ei). Alegerea este a ta, totusi o placa de o anume complexitate poate consuma mai multe resurse (timp, componente, etc). In plus, dezideratul "totul pe o placa" este imposibil de atins, deoarece vor apare mereu componente noi cu care vei dori sa lucrezi. Vei asigura accesul la ele prin pinii de extensie ai porturilor.
Link spre comentariu

Io am un header board pentru un Atmega8535 si ii ok. Cum a zis si diablero, ii mai greu cu "totul pe o placa", in schimb poti sa pui pe o placa anumite chestii esentiale. Io as pune in felul urmator: - un Atmega32 - 8 LED-uri - 8 push butoane - un afisaj 4 x 7 segmente si unu' LCD - alimentare - convertor cu FT232 si un MAX232 - un ULN2803 - un soclu pentru o memorie - eventual un programator pe placa si neaparat headere pentru porturi. Tastaturi matriciale, placi cu relee, etc... se pot conecta prin headeru' porturilor.

Link spre comentariu

Va multumesc tuturor pentru raspunsurile de pana acuma, doresc sa va mai intreb ceva... am eu asa un feeling ciudat legat de microcontroalerele astea, si anume, odata programate ele se comporta ca orice integrat sau trebuie sa se foloseasca si de alte componente gen.. o memorie? (edy_wheazel, pentru ce e acea memorie de care vorbesti?)

Link spre comentariu

Va multumesc tuturor pentru raspunsurile de pana acuma, doresc sa va mai intreb ceva... am eu asa un feeling ciudat legat de microcontroalerele astea, si anume, odata programate ele se comporta ca orice integrat sau trebuie sa se foloseasca si de alte componente gen.. o memorie? (edy_wheazel, pentru ce e acea memorie de care vorbesti?)

Dupa ce il programezi se comporta ca un integrat, executa programul. uC au memorie interna, ce am scris io acolo ii o memorie EEPROM externa, in cazu' in care nu-ti ajunge ce ai in uC.
Link spre comentariu

Va multumesc tuturor pentru raspunsurile de pana acuma, doresc sa va mai intreb ceva... am eu asa un feeling ciudat legat de microcontroalerele astea, si anume, odata programate ele se comporta ca orice integrat sau trebuie sa se foloseasca si de alte componente gen.. o memorie? (edy_wheazel, pentru ce e acea memorie de care vorbesti?)

Dupa ce il programezi se comporta ca un integrat, executa programul. uC au memorie interna, ce am scris io acolo ii o memorie EEPROM externa, in cazu' in care nu-ti ajunge ce ai in uC.
Atunci e foarte simplu, fiindca il pot utiliza ca orice alt inegrat, il montez si-si face treaba. :aplauze
Link spre comentariu

Atunci e foarte simplu, fiindca il pot utiliza ca orice alt inegrat, il montez si-si face treaba. :aplauze

Da. Placa respectiva ii un fel de placa test, varianta finala se face separat. Adica, pe aceea placa ai un procesor bun si mai multe componente de care ai de obicei nevoie. Procesorul este unul cu memorie suficienta (Atmega32). Sa zicem ca ai de facut un urmatorul proiect: sistem de numarare complex cu afisare pe LCD, sa poti sa numeri si semnale externe si sa comanzi un releu. No bun, tu pe placa aia ai tot ce trebuie: procesor, afisaj, butoane, etc... Te pui si scrii programu', il simulezi software si il programezi in placa respectiva: vezi daca are probleme si eventual ii aduci inbunatatiri. Te uiti cat iti ocupa memoria flash, de cate porturi ai nevoie, etc... si in functie de asta iti alegi un procesor. Nu o sa folosesti un Atmega32 pentru proiectu' asta daca merge (sa zicem) si un Attiny2313. Faci un cablaj pt. Attiny2313 cu tot ce trebuie, il programezi si gata. Sper ca ai inteles ce am vrut sa zic mai sus :rade:
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