Ei... tocmai am reusit sa asamblez si sa descarc intr-un microcontroler primul programel.
Am folosit un atmel - at90s1200.
Acuma - treaba sta in felul urmator. Netul este intr-adevar plin de documentatie, DAR problema este ca e PREA PLIN si nu stii ce sa alegi, nu stii ce cu ce se potriveste.
O sa descriu aici cum am facut eu, pas cu pas, varianta de implementare minimala (dpdv costuri).
1 - Programatorul - prin programator de microcontrolere se intelege o placa cu circuite (care in general este destul de complexa, unele placi au microcontrolere pe ea - CARE TREBUIESC incarcate cu programul pe un alt programator, mai au buffere pentru controlul tensiunilor si curentilor). In general programatoarele astea sunt la vanzare, insa costa in jur de 100 - 150 $ - pe net, ca la noi se gasesc doar de-alea "de firma" foarte scumpe - au avantajul ca sunt "autoconfigurabile", deci se preteaza la o gama larga de microcontrolere.
Tot scotocind, am gasit cel mai simplu programator de atmel-uri, la pagina asta :
http://home.wanadoo..../programmer.htm
Am realizat intocmai schema aia (prima de pe pagina), cu omisiunea conexiunii - CLK -> status4 - nu am gasit pinul clk pe microcontroler.
Descrierea pinilor microcontrolerului am gasit-o pe site-ul www.atmel.com - scrieti in fereastra de search at90s1200 de exemplu. Toata schema aia m-a costat asa : mufa cu 25 pini - 25.000 lei, condensatorii, cristalul si rezistentele si soclul cu 20 de pini pentru microcontroler - inca 25.000 - sa zicem 50.000 lei maxim cu totul.
Microcontrolerul propriu-zis, desigur - 70.000, la www.conexelectronic.ro
Asa - cata vreme se foloseste strict schema 1, adica luam microcontrolerul, il bagam in programator, infigem mufa la portul paralel - programam uC-ul, apoi il scoatem si-l punem in schema de aplicatie, NU E NICI UN RISC. Porul paralel nu se va arde cu curentul generat de el insusi, nu se conecteaza alta sursa de tensiune externa.
Eu am realizat schema si mi-a mers din prima, fara probleme.
Bun.. deci am rezolvat cu programatorul.
2 - Soft-ul de programare (softul care trimite semnalele pe portul paralel, pentru programarea microcontrolerului, prin intermediul programatorului hardware proaspat realizat). Cel mai bun si mai usor de inteles este www.avrdude.com - se downloadeaza de aici :
http://download.sava...leases/avrdude/ - prima arhiva cu win32 pentru windows.
In el, in dir. bin gasim un fisier de configurare avrdude.conf , care contine definitia pinilor programatorului proaspat construit (intamplarea face ca acest programator sa fie cat de cat "standard", il gasim in biblioteca de programatoare cu indicativul sp12 - vedem in lista cu definitii de programatoare ca sunt necesare urmatoarele semnale - Vcc (se aduna curentul de la mai multi pini de date), GND, MISO, MOSI, SCK.
Asa... mai trebuie avrdude-gui - o interfata care ajuta mult la configurare si selectarea fisierului de descarcat in microcontroler - il gasiti aici :
http://sourceforge.net/project/showfiles.p...group_id=125549
3 - Software-ul de compilat programul ce va fi descarcat in uC (acest compilator se mai numeste asamblor, dar in esenta e tot un compilator, ca ia fisier text si genereaza cod obiect). Pentru asta am folosit AvrStudio v4, descarcat de pe site-ul atmel, aici -
http://www.atmel.com/dyn/products/tools_ca...C+&tool_id=2725
apasati pe icoana aia sub forma de cd-rom din dreptul lui Mature AVR Studio 4.11 (build 401)
Asta este foarte bun, ca are help relativ la limbajul assambler - foarte importante sunt directivele de compilare si de asemenea - instructiunile pentru fiecare uC in parte.
Cam asta e tot. Rezumat :
Se ia o sursa scrisa in assembler (astea se gasesc pe net ca exemple). Se compileaza cu avrstudio. Rezulta un fisier .hex (sau i(ntel)hex se mai numeste). Fisierul asta se selecteaza ca input la programatorul software (avr-dude-gui). Se conecteaza programatorul la portul paralel, avand uC infipt in el. Se bifeaza in avrdude-gui - operatiunea de write, modelul exact de uC, tipul programatorului hard cu care se comunica etc. etc.... Se apasa Execute - si voila. - avem un uC gata programato, bun de luat si de pus in placa de aplicatie.
4 - exista si software de compilat care primeste ca input program scris in C (vorba vine C), tot cu porturi se lucreaza, dar macar o variabila, un for acolo poti sa scrii decent, ca omu, nu cu ochii pe harta de registrii a uC-ului - pentru asta descarcati - WinAvr -
http://sourceforge.net/project/showfiles.p...?group_id=68108 e o biblioteca cu executabile, nu are un gui ca lumea, lucreaza cu fisiere Makefile, dar nu-i greu. Contine de asemenea si avrdude si o gramada de alte extensii - pe mine ma intereseaza doar partea de compilator de C
Cum se ruleaza aplicatia - make all - asta cauta Makefile - ul si face toata treaba de compilare (Makefile-ul trebuie configurat inainte, adica indicat sursa ( .c) de compilat.
Nu mai dau link-uri aiurea, am zis sa dau o reteta minimala, testata si functionala, mai dau un singur link care detaliaza mai bine tot ce am scris eu, cu poze, procesul.
http://www.ladyada.n...pov2/index.html