Sunteți pe pagina 1din 9

Curs 2

1.1 IMPLEMENTAREA MEMORIEI MICROCONTROLERELOR


n afar de memoria local de tip RAM, de dimensiuni relativ reduse (10 octei1ko),
se pune problema implementrii fizice a memoriei de program prin memorie nevolatil.
Memoria de program era implementat ntr-o variant de tip ROM:
- EPROM pentru dezvoltare i producie pe scar mic/medie
- mask-ROM pentru producia de mas.
Concepte noi aprute n legtur cu implementarea memoriei de program sau date sunt
enumerate n continuare:
1. OTP - majoritatea productorilor ofer variante de microcontrolere la care memoria
local de program este de tip OTP (One Time Programmable). Aceste variante pot fi utilizate
pn n momentul testrii i validrii finale a codului, cnd pot fi comandate variantele (mask)
ROM, cele mai economice pentru o producie de mas;
2. FLASH EPROM - este o soluie mai bun dect EPROM-ul propriu-zis atunci cnd
este necesar un volum mare de memorie program. Acest tip de memorie este mai rapid i cu
un numr garantat suficient de mare (10000) de cicluri de programare.
3. EEPROM - memorie de acest tip, de dimensiune limitat (10 octei ko), destinat
memoriei de date. Este o memorie relativ lent, dar cu un numr de cicluri de tergere/scriere
mai mare ca FLASH-ul (100000).
4. NOVRAM (RAM nevolatil) - realizat prin alimentarea local a unui RAM CMOS
atunci cnd este necesar un volum mare de memorie de program i date nevolatil. Este mult
mai rapid dect toate celelalte tipuri i fr limitri ca numr de cicluri.
5. Programarea "In System" (ISP-In System Programming) - folosirea unor memorii
nevolatile de tip FLASH face posibil i "programarea" unui astfel de microcontroler fr a-l
scoate din sistemul n care este ncorporat. Programarea se face de regul prin intermediul
unei interfee seriale dedicate de tip ISP sau a unei interfee standard JTAG (Joint Test Action
Group).
6. Bootloader multe din microcontrolerele recente la care memoria de program este de
tip FLASH au instruciuni pentru a putea i scrie n memoria de program, fr un circuit de
programare extern. Bootloader-ul este i cel care lanseaz n execuie programul utilizator
dup ncrcarea acestuia.
7. Protejarea codului - protejarea codului program dintr-o memorie local nevolatil
mpotriva accesului neautorizat
8. Memoria extern de program sau date
Exist microcontrolere care permit i utilizarea de memorie extern de program.
Aceasta presupune existena i utilizarea unor magistrale externe de adrese i date.
n aceast situaie numrul de conexiuni exterioare disponibile pentru interfaa cu
exteriorul se reduce dramatic, reducnd mult din versatilitatea microcontrolerului.

1.2 CONTROLUL PUTERII CONSUMATE I ALIMENTAREA LA TENSIUNI


REDUSE
Majoritatea microcontrolerelor pot fi trecute sub control soft n stri speciale cum ar fi:
- n ateptare (STAND-BY),
- inactiv ("IDLE")
- oprit ("HALT", "POWER DOWN"),
denumirile acestor stri diferind i n funcie de fabricant.
n aceste moduri, starea CPU, coninutul RAM-ului intern, starea I/O-urilor (intrrilor i
ieirilor) pot fi conservate n condiiile unei tensiuni de alimentare reduse (fa de cea
nominal) i deci al unui consum mult redus. Flexibilitatea acestui sistem este strns legat de
facilitile i programabilitatea sistemului de generare a ceasului de lucru.
De exemplu, ntr-un mod de tip "IDLE" toate activitile sunt oprite cu excepia
circuitului oscilatorului local de ceas i, dac exist, circuitul "watchdog" (ceasul de gard),
circuitul de monitorizare a oscilatorului de ceas i eventual un temporizator dedicat ("idle
timer"). Puterea consumat este redus la aproximativ 30%, iar ieirea din acest mod se face
prin reset (iniializare) sau printr-un stimul exterior (de regul o ntrerupere).
n modul "HALT" toate activitile sunt oprite, tensiunea de alimentare poate fi
cobort sub valoarea nominal, fr alterarea strii (CPU, RAM, I/O), puterea consumat
fiind minim. Ieirea din aceast stare se face prin "reset" sau ca urmare a unei cereri de
ntrerupere. Toate aceste moduri de lucru sunt de regul valorificate n aplicaii n care
alimentarea sistemului se face de la o surs de tip baterie (n funcionarea normal sau numai
n anumite situaii).
Tensiunea de alimentare standard pentru microcontrolere:
 Vcc = 5V, majoritatea
 Vcc= 1.83.3V variante cu tensiune de alimentare redus
 Vcc = 26V, funcionarea la limita inferioar implicnd doar o micorare a
frecvenei maxime de ceas.
Sistemul de ceas
Orice microcontroler este caracterizat de existena circuitelor electronice aferente
oscilatorului care genereaz ceasul de sistem. Astfel, este posibil implementarea simpl a
oscilatorului doar prin adugarea, n exterior, a unui rezonator extern pentru stabilizarea
frecvenei i eventual a unor capaciti. Dac stabilitatea i precizia frecvenei nu este o
cerin important, la anumite microcontrolere se poate utiliza doar un circuit RC extern sau,
exist un circuit RC intern care determin frecvena de oscilaie.
Exist microcontrolere la care configuraia oscilatorului este programabil prin
intermediul unor fuzibile FLASH:
- rezonator extern i tipul acestuia,
- varianta RC intern sau extern,
- gama de frecven etc.

1.3 INTERFAA EXTERN


Toate microcontrolerele au un numr oarecare de intrri/ieiri Inputs/Outputs
numerice, organizate sub forma unor porturi I/O; conexiunile exterioare sunt bidirecionale
sau unidirecionale, unele sunt multifuncionale etc.
Pentru interfaa cu mediul exterior alte faciliti importante de intrare/ieire cum ar
fi:
a. Porturi seriale universale
- UART (Universal Asynchronous Receiver Transmitter) - port serial
bidirecional destinat implementrii unui protocol clasic de comunicaie
asincron;
- USART (Universal Synchronous Asynchronous Receiver Transmitter)
permite implementarea i a unui protocol sincron cu obinerea unor viteze mai
mari de comunicaie;
- SCI (Serial Communications Interface) - circuit de tip UART mbuntit,
definit i utilizat de ctre firma Freescale (Motorola);
- LIN (Local Interconnect Network) - o implementare particular a unui
protocol de comunicaie asincron.
b. Porturi seriale sincrone dedicate - destinate transferului serial de date de mare
vitez cu unele periferice specializate. Presupun existena, mpreun cu datele, a unui semnal
de ceas pentru sincronizarea acestora. Exist cteva implementri mai cunoscute:
- SPI (Serial Peripheral Interface) este un port serial sincron definit de firma
Motorola;
- Microwire / Microwire Plus este o interfa serial bidirecional sincron
definit i utilizat de firma National Semiconductors;
- I2C (Inter Integrated Circuits bus) este o interfa serial bidirecional,
dezvoltat de Philips, destinat aplicaiilor de 8 bii.
- CAN (Controller Area Network) proprietate intelectual a firmei Bosch. Este
un standard de comunicaie serial sincron utilizat n industria de automobile.
c. Conectivitate Ethernet/Web implic existena unor resurse care s permit
integrarea cu uurin ntr-o reea de tip Ethernet, pentru a face posibil, n final,
implementarea unui protocol TCP/IP. Resursele respective pot fi de natur software care
presupun o vitez de prelucrare a CPU suficient de mare pentru a nu afecta vizibil operarea
propriu-zis a controlerului, sau hardware.
Modelul TCP/IP (Protocol de control al transmisiei/Protocol Internet - Transmission
Control Protocol/Internet Protocol) a fost creat de Ministerul Aprrii Naionale al Statelor
Unite, din necesitatea unei reele care ar putea supravieui n orice condiii. Era nevoie de o
arhitectur flexibil, deoarece se aveau n vedere aplicaii cu cerine divergente, mergnd de
la transferul de fiiere pn la transmiterea vorbirii n timp real.
d. Conectivitate USB - magistrala serial USB (Universal Serial Bus) a fost creat
pentru conectarea cu uurin a diverselor periferice la un calculator PC. Conexiunea permite
i furnizarea tensiunii de alimentare. Varianta USB 1.1 permite atingerea unei rate de transfer
maxime a datelor de 12Mbytes/sec, varianta USB 2.0 a unei rate maxime de cca.
480MBytes/sec, varianta USB 3.0 a unei rate maxime de iar 5Gbytes/sec.
e. Conectivitate Wireless - se refer la existena unor resurse hardware i/sau software
care s permit integrarea cu uurin i la un pre de cost avantajos ntr-o reea de tip
wireless, pentru a face posibil, implementarea unui protocol.
Exemple de astfel de reele, protocoale i stive sunt: Bluetooth (IEEE 802.15.1) i
Zigbee (IEEE 802.15.4).
f. Convertoarele Analog Numerice (CAN, ADC). Rezoluia disponibil este tipic de 8,
10 sau 12 bii. Sursa de referin utilizat este intern sau extern. Timpul minim de conversie
este n plaja (1-10)sec. Exist microcontrolere care utilizeaz tehnici de recalibrare (autozero, corecie ctig etc.) pentru mrirea i/sau meninerea preciziei.

Tehnicile de conversie cele mai utilizate sunt:


- aproximaii succesive cu eantionare implicit
- ramp digital
- subsisteme locale care pot fi folosite pentru implementarea unor alte tehnici de
conversie bazate pe integrare etc.
g. Convertoarele Numeric Analogice (CNA, DAC). Cea mai rspndit tehnic de
conversie numeric analogic folosit este bazat pe modulaia n lime - PWM (Pulse Width
Modulation). Exist unul sau mai multe canale pe care se poate genera un tren de impulsuri cu
factor de umplere programabil (de la 0 100%). Factorul de umplere este controlat cu o
rezoluie de la 8 bii sau 16 bii. Frecvena trenului de impulsuri este i ea programabil, n
limite largi.
h. Interfaa pentru sisteme de afiare tip LCD. n prezent au aprut variante care
posed un subsistem destinat conectrii directe, cu utilizarea unui numr minim de
componente exterioare, a unui sistem de afiare de tip LCD (liquid crystal display - display cu
cristale lichide).
1.4 FAMILII DE MICROCONTROLERE REPREZENTATIVE
n prezentarea care urmeaz accentul este pus pe familiile mai cunoscute, de 8bii i
16bii.
1. 8048 (Intel MCS-48 - www.intel.com)
"Bunicul" microcontrolerelor pe 8 bii, mai este nc folosit! Unele din caracteristicile
sale arhitecturale se regsesc la urmtoarea generaie (MCS-51, 8051).
2. 8051 (Intel MCS-51 i muli alii: Atmel, Philips- www.semiconductor.philips.com,
Infineon, Atmel, Dallas-Maxim - www.maxim-ic.com, Cygnal www.cygnal.com etc.).
3. 80C196 (Intel MCS-96)
Este un microcontroler pe 16 bii fcnd parte din generaia a treia de microcontrolere a
firmei Intel. Are o arhitectur von Neumann, cu un spaiu de adresare de 64kBytes, o unitate
de intrri/ieiri numerice de mare vitez, ieiri PWM, convertor analog numeric, timer
watchdog.
4. 80C186, 80C188 (Intel, AMD .a.)
Derivate din clasicele 8086/88 prin includerea pe acelai microcircuit a 2 canale
DMA(Direct Memory Access), 2 numrtoare/timere, un sistem de ntreruperi i un controler
pentru DRAM (Dynamic Random Access Memory).
5. 68HC05 (Freescale - www.freescale.com, exemplu Motorola)
Un microcontroler de 8 bii derivat din microprocesorul M6800. Varianta evoluat a
acestei familii este seria 68HC08 bazat pe o nou unitate central de 8 bii numit CPU08, cu
cea mai recent dezvoltare sub forma seriei 68HCS08 destinat unor aplicaii din industria
automobilului.
6. 68HC11, 68HC12, 68HC16 (Freescale)
68HC11 a fost unul din cele mai puternice microcontrolere pe 8 bii,
7. 683xxx (Freescale)
Microcontrolere pe 32 de bii construite n jurul unui CPU analog microprocesorului
M68020 (CPU32), denumite i "procesoare integrate". Putere de calcul comparabil sau mai
mare ca a lui Intel 80386.
8. PIC (Microchip- www.microchip.com)
Este o familie de microcontrolere care, n ultimii ani, a cunoscut o dezvoltare exploziv.
Sunt disponibile actualmente sub forma a 6 serii: PIC10, PIC12, PIC14, PIC16, PIC17 i
PIC18.
9. AVR (Atmel- www.atmel.com )

Un concurent puternic al seriei PIC este familia numit AVR, a firmei ATMEL, familie
aprut n ultimii ani, care ofer variante de microcontrolere oarecum asemntoare cu familia
PIC, la performane similare sau mai bune.
10. COP4(00) i COP8(00) (NS -National Semiconductors - www.national.com)
COP4 este un microcontroler pe 4 bii, categorie de microcontrolere care, n general,
departe de a fi nvechite, ocup un segment relativ important al pieei.
COP8 reprezint o serie de microcontrolere pe 8 bii, versatil, cu pre sczut,
disponibil n multe variante. Arhitectura este similar lui 8051, dar setul de instruciuni este
similar lui Z80.
11. Z8 (Zilog, - www.zilog.com)
Un derivat al microprocesorului Z80, reprezint un compozit al mai multor arhitecturi
diferite. Nu este compatibil cu setul de instruciuni i nici cu perifericele standard Z80.
12. Z180(Zilog), Rabbit ( Rabbit Semiconductors- www.rabbitsemiconductor.com)
Z180 -ul firmei Zilog are un CPU similar cu Z80 dar mbuntit cu resurse locale.
Instruciuni suplimentare fa de setul standard Z80, printre care i nmulirea. Utilizarea unui
mediu de programare foarte productiv numit Dynamic C precum i a facilitailor de
programare i depanare In-System au fcut ca acest microcontroler sa cunoasc o rspndire
destul de larg.
13.TMS370 (Texas Instruments- www.ti.com)
Microcontrolerul standard pe 8 bii al firmei TI realizat n multe variante, prezint unele
asemnri cu 8051.
14. 80386EX (Intel)
Un 80386 destinat aplicaiilor de tip controler. Resurse locale: I/O seriale,
timere/numrtoare, DMA, optimizarea consumului, controler de ntreruperi, controler pentru
RAM dinamic. Nu au memorie local.
15. SC 3/4/5xx, Elan (AMD- www.amd.com )
O serie de microcontrolere deosebit de performante realizate n jurul unei uniti
centrale de tip 386/486. Permit practic, doar prin adugarea de memorie extern, obinerea
unui sistem de calcul compatibil PC, destinat unor aplicaii de control ncapsulate-integrate
("embedded PC").
16. 80C16x (Infineon, exemplu Siemens www.infineon.com)
Unul din microcontrolerele de 16 bii foarte utilizat n Europa. Arhitectur deosebit de
performant a CPU, de tip RISC, are diverse variante, cu resurse complexe: 80C165, 80C166,
80C167 etc.
17. MSP430 (Texas Instruments)
Firma TI ofer i o familie de microcontrolere de 16 bii cu arhitectura RISC, destinat
aplicaiilor portabile, denumit MSP 430. Cu un spaiu de adresare de 64kBytes, are diverse
variante de realizare a memoriei interne de program, resurse diverse.
18. Alte familii de microcontrolere
Fujitsu Microelectronics (www.fme.fujitsu.com) ofer familii deosebit de puternice de
microcontrolere pe 8 bii (FMC-8), 16 bii (FMC-16) sau 32 de bii (FR).
Renesas (Hitachi, www.renesas.com) ofer de asemenea o gam larg de
microcontrolere organizate n familii de 4, 8, 16 i 32 de bii
ARM (Advanced RISC Machine, www.arm.com) - o unitate central de 32 de bii care
face parte din categoria structurilor IP (Intelectual Property). Consoriul ARM a oferit
licene ale acestei micro arhitecturi (nucleu ARM) pentru numeroi productori de circuite
(Atmel, Philips, TI, OKI www.okisemi.com etc.). Pe baza acestor licene se realizeaz i
microcontrolere de mare performan. Cele mai cunoscute i rspndite variante de nuclee
sunt ARM7 i ARM9, cu implementrile lor simplificate numite ARM7T, ARM9T (TThumb).
MPC500 (Freescale) este o familie de microcontrolere bazat pe o unitate central de
32 de bii compatibil cu arhitectura i cu setul de instruciuni.

1.5 LIMBAJE DE PROGRAMARE


1.4.1. Limbajul main i cel de asamblare
Limbajul main este singura form de reprezentare a informaiei pe care un
microcontroler o "nelege". Aceast form de reprezentare a informaiei este total nepractic
pentru un programator, care va utiliza cel puin un limbaj de asamblare, n care o instruciune
are drept corespondent o instruciune n limbaj main.
Un program n limbaj de asamblare este rapid i compact. Aceasta nu nseamn c un
astfel de program, prost scris, nu poate fi lent i de mari dimensiuni, programatorul avnd
controlul total pentru execuia programului i gestiunea resurselor.
Muli productori mari de microcontrolere ofer medii de dezvoltare software gratuite
care includ programe asambloare gratuite.
1.4.2. Interpret-ere
Un interpreter este o implementare a unui limbaj de nivel nalt, mai apropiat de
limbajul natural. Caracteristic pentru execuia unui program interpretat, este citirea i
executarea secvenial a instruciunilor. Fiecare instruciune de nivel nalt este interpretat
ntr-o secven de instruciuni main care se execut imediat.
Cele mai rspndite interpret-ere sunt cele pentru limbajele BASIC i FORTH.
Limbajul BASIC este remarcabil prin simplitatea i accesibilitatea codului, dar i prin viteza
mai mic de execuie, acesta fiind de altfel preul pltit pentru utilizarea oricrui interpreter.
Limbajul FORTH este popular datorit vitezei de execuie i posibilitii construirii
aplicaiilor din pri re-utilizabile. Este un limbaj mult diferit de limbajele clasice, codul este
destul de greu de scris i mai ales de citit.
Avantaj al utilizrii unui interpreter este dezvoltarea interactiv i incremental a
aplicaiei.
1.4.3. Compilatoare
Un compilator combin uurina n programare oferit de un interpretor cu o vitez mai
mare de execuie a codului. Pentru aceasta, programul n limbaj de nivel nalt, este translatat
direct n limbaj main sau n limbaj de asamblare. Codul main rezultat are dimensiuni
relativ mari i este executat direct, de microcontroler.
Compilatoare pentru limbajele: C, BASIC, Pascal, PL/M (Intel), Forth.
Pentru unele familii noi i foarte puternice de microcontrolere, datorit complexitii
setului de instruciuni i al numeroaselor moduri de adresare, unitatea central a unor
microcontrolere a fost proiectat i optimizat pentru utilizarea unor limbaje de nivel nalt.
Preul unor astfel de compilatoare (pentru C) poate fi destul de ridicat (100-1000USD).
Totui, exist i variante freeware de compilatoare de C, cum ar fi gcc, care este o portare a
compilatorului omonim din Linux, n lumea microcontrolerelor.
OBSERVAII:
1. Pentru 1.4.1. i 1.4.3. codul este obinut cu ajutorul unui mediu integrat de
dezvoltare a programelor (IDE-Integrated Development Environment) care conine n
mod tipic urmtoarele componente software:
- un editor specializat,
- un asamblor/compilator,
- un editor de legturi,
- programe de gestiune a unor biblioteci de cod,
- programe de conversie a formatelor de reprezentare a codului (
- un simulator i/sau depanator ("debugger").
2. Codul astfel obinut trebuie ncrcat n memoria de program a microcontrolerului,
fiind de fapt programat ntr-o memorie de tip (EP)ROM/FLASH sau ncrcat direct ntr-o
memorie de tip RAM.

1.6 DEZVOLTAREA I TESTAREA APLICAIILOR


Cele mai rspndite mijloace hardware/software utilizate n dezvoltarea i testarea
aplicaiilor sunt:
1.6.1. Simulatoarele
Sunt programe care ruleaz programul microcontrolerului folosind un sistem de calcul
gazd, host (un PC). Programul se poate executa pas cu pas, coninutul variabilelor i
registrelor poate fi vizualizat i modificat. Reprezint un punct de plecare atunci cnd se
abordeaz un microcontroler, pentru familiarizarea cu resursele lui i cu limbajul de
asamblare. Nu permite simularea n timp real a ntreruperilor i, de regul, programul ruleaz
mai ncet dect pe maina real.
1.6.2. Programele de depanare ("debbugers") rezidente
Sunt programe care ruleaz pe microcontroler, oferind faciliti de depanare similare
simulatorului. Interfaa cu utilizatorul este realizat prin intermediul unui sistem gazd (PC)
i/sau a unui terminal alfanumeric, conectate prin intermediul unui port serial.
Programele de depanare rezidente utilizeaz o parte din resursele microcontrolerului:
- memorie de program (de tip ROM) i memorie de date (RAM) pentru variabile
proprii,
- memorie de program pentru programul ce se depaneaz,
- un port serial pentru comunicaia cu sistemul gazd,
- eventual ntreruperi, etc.
1.6.3. Emulatoarele n circuit (ICE-In Circuit Emulators)
Sunt cele mai eficiente mijloace de testare i dezvoltare dar i cele mai complexe i mai
costisitoare. Presupun existena unui hardware complicat care nlocuiete microcontrolerul.
Permit un control total al mainii int fr a folosi nimic din resursele acesteia. Ele sunt
realizate ca un mijloc de testare i depanare de sine stttor, conectat la un PC, prin
intermediul unui port paralel, serial sau USB. Cele mai ieftine sunt disponibile n gama (1001000)$. Nu este necesar nlocuirea microcontrolerului de pe sistemul int, conectarea cu
acesta fcndu-se printr-un numr minim de interconexiuni.
Exemple:
JTAG/ICE In Circuit Emulation - la multe familii de microcontrolere,
BDM (Background Debug Monitor) pentru Freescale/Motorola.
1.6.4. Simulatoarele de sistem
Reprezint o categorie de simulatoare destinate simulrii ct mai complete a
microcontrolerului mpreun cu dispozitivele hardware externe. Ele integreaz, de obicei, i
un simulator SPICE.
Exemple:
- Proteus VSM (Virtual System Modelling) al firmei Labcenter Electronics
(http://www.labcenter.co.uk/)
- UMPS (Universal Microprocessor Program Simulator) al firmei Virtual
Microdesign (www.vmdesign.com).
Un astfel de simulator permite rularea aplicaiei i evaluarea modului cum aceasta i
microcontrolerul interacioneaz cu hardware-ul extern. El permite interaciunea dintre
software-ul microcontrolerului i dispozitivele electronice analogice sau numerice conectate
cu acesta.
Sunt bazate pe utilizarea unor modele avansate ale unor familii de microcontrolere
precum i pe modelele SPICE ale dispozitivelor electronice.

1.6.5. Nucleele (sistemele de operare) n timp real (Real Time kernel, Real Time
Operating System-RTOS)
Pe piaa de software pentru microcontrolere exist i componente numite nuclee de
timp real sau sisteme de operare n timp real (RTOS).
Un sistem de operare n timp real faciliteaz crearea aplicaiilor aa zise de timp real,
dar nu garanteaz i faptul c ele chiar se vor executa n timp real, aceasta depinznd de
modul n care este utilizat acest software la nivel de sistem.
Un sistem integrat (embedded system) este proiectat ntotdeauna ntr-un anumit scop i
are un cod care se execut aproape ntotdeauna dintr-o memorie ROM, fiind de presupus c
nu se modific pe parcursul execuiei aplicaiei. Astfel, lucrurile sunt uurate deoarece
comportarea sistemului poate fi specificat complet nc din faza de proiectare.
Esenial este pan la urm competena celui care programeaz aplicaia !
1.7 CRITERII DE ALEGERE A UNUI MICROCONTROLER
Cteva criterii de alegere a unui microcontroler, dup cerinele impuse aplicaiei:
a. Costurile aplicaiei
 Care va fi scara de producie: prototip, producie mic/medie sau de mas?
 Care sunt costurile permise pentru microcontroler?
 Care sunt costurile permise pentru mediul de programare i dezvoltare?
b. Timpul de dezvoltare al aplicaiei
 Ce limbaj de programare s aleg?
 Ce limbaje de programare cunosc bine i ce medii de dezvoltare am utilizat?
 Ce modalitate de testare i depanare folosesc: simulator, sistem de dezvoltare,
emulator?
c. Caracteristicile fizice
 Care este viteza de prelucrare necesar?
 De ct memorie am nevoie pentru program i respectiv date?
 Va fi necesar i o memorie extern?
 Ce fel de alimentare este disponibil i care sunt limitrile acesteia?
 De cte intrri i/sau ieiri am nevoie?
 Ce fel de intrri i/sau ieiri sunt necesare: intrri/ieiri analogice, ieiri numerice?
 Care sunt resursele necesare n materie de temporizare/numrare i care ar fi
caracteristicile lor cele mai importante?
 Ce tip de capsul, ce dimensiuni fizice i numr de pini ar trebui s aib?
 Care este gama temperaturilor de lucru necesare?
 Aplicaia va funciona ntr-un mediu cu caracteristici speciale?
d. Conectivitatea
 Care sunt resursele de comunicaie necesare: cte porturi seriale asincrone i cu ce
caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile?
 Este necesar o conectivitate Ethernet, USB sau wireless?
e. Compatibilitate, scalabilitate i dezvoltarea ulterioar
 Cu ce tipuri de circuite se poate interfaa ct mai simplu: sisteme de afiare, senzori,
elemente de comand i execuie (relee, motoare de c.c., motoare pas cu pas etc.)?
 Cum se poate realiza extinderea ulterioar, atunci cnd este necesar?
 Eventuale cerine suplimentare n materie de vitez de lucru, resurse periferice sau
de memorie?
f. Alte aspecte
 Ce distribuitori exist i ct sunt de accesibili pentru mine?
 Care este suportul oferit de fabricant sau distribuitor i care este baza de cunotine
existent?

1.8. CUM SE POATE PROGRAMA UN MICROCONTROLER?


a. Programator specializat extern.(ex.STK200) - este un circuit electronic
care conecteaz un port al PC-ul ( serial, paralel sau USB ) cu pinii de programare ai
microcontrolerului. Programatoarele acestea au de obicei un soclu n care se pot
conecta mai multe tipuri de microcontrolere.
b. Programarea "In System" (ISP-In System Programming) - folosirea unor
memorii nevolatile de tip FLASH face posibil i "programarea" unui astfel de
microcontroler fr a-l scoate din sistemul n care este ncorporat. Programarea se
face de regul prin intermediul unei interfee seriale dedicate de tip ISP sau a unei
interfee standard JTAG.
c. Bootloader Microcontrolerele recente la care memoria de program este de
tip FLASH au i instruciuni pentru a putea scrie n aceast memorie de program
fr a utiliza un circuit de programare extern. n microcontroler poate exista
permanent un cod de mici dimensiuni (bootloader) care va ncrca, prin intermediul
unui port serial, codul utilizator sau constantele pe care acesta vrea s le actualizeze.
Bootloader-ul este i cel care lanseaz n execuie programul utilizator dup
ncrcarea acestuia.
ATENIE!!!
Protejarea codului program dintr-o memorie local nevolatil mpotriva
accesului neautorizat este oferit ca o opiune care trebuie folosit la variantele
FLASH, EPROM sau OTP. Codul poate proteja att la citire ct i la scriere. Este
eliminat astfel posibilitatea de a se realiza, n acest caz, de patch-uri (alterri cu un
anumit scop) ale codului original. La variantele mask-ROM propriu-zis protecia este
de cele mai multe ori implicit.

Programator pe SPI sau JTAG

Programator UNIVERSAL