You are on page 1of 9

Curs 2

1.1 IMPLEMENTAREA MEMORIEI MICROCONTROLERELOR
În afară de memoria locală de tip RAM, de dimensiuni relativ reduse (10 octeŃi…1ko),
se pune problema implementării fizice a memoriei de program prin memorie nevolatilă.
Memoria de program era implementată într-o variantă de tip ROM:
- EPROM pentru dezvoltare şi producŃie pe scară mică/medie
- mask-ROM pentru producŃia de masă.
Concepte noi apărute în legătură cu implementarea memoriei de program sau date sunt
enumerate în continuare:
1. OTP - majoritatea producătorilor oferă variante de microcontrolere la care memoria
locală de program este de tip OTP (One Time Programmable). Aceste variante pot fi utilizate
până în momentul testării şi validării finale a codului, când pot fi comandate variantele (mask)
ROM, cele mai economice pentru o producŃie de masă;
2. FLASH EPROM - este o soluŃie mai bună decât EPROM-ul propriu-zis atunci când
este necesar un volum mare de memorie program. Acest tip de memorie este mai rapidă şi cu
un număr garantat suficient de mare (×10000) de cicluri de programare.
3. EEPROM - memorie de acest tip, de dimensiune limitată (10 octeŃi … ko), destinată
memoriei de date. Este o memorie relativ lentă, dar cu un număr de cicluri de ştergere/scriere
mai mare ca FLASH-ul (×100000).
4. NOVRAM (RAM nevolatil) - realizat prin alimentarea locală a unui RAM CMOS
atunci când este necesar un volum mare de memorie de program şi date nevolatilă. Este mult
mai rapidă decât toate celelalte tipuri şi fără limitări ca număr 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 fără a-l
scoate din sistemul în care este încorporat. Programarea se face de regulă prin intermediul
unei interfeŃe seriale dedicate de tip ISP sau a unei interfeŃe standard JTAG (Joint Test Action
Group).
6. Bootloader – multe din microcontrolerele recente la care memoria de program este de
tip FLASH au instrucŃiuni pentru a putea şi scrie în memoria de program, fără un circuit de
programare extern. Bootloader-ul este şi cel care lansează în execuŃie programul utilizator
după încărcarea 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 existenŃa şi utilizarea unor magistrale externe de adrese şi date.
În această situaŃie numărul de conexiuni exterioare disponibile pentru interfaŃa cu
exteriorul se reduce dramatic, reducând mult din versatilitatea microcontrolerului.

rezonator extern şi tipul acestuia. iar ieşirea din acest mod se face prin reset (iniŃializare) sau printr-un stimul exterior (de regulă o întrerupere). fără alterarea stării (CPU.în aşteptare (STAND-BY). Flexibilitatea acestui sistem este strâns legată de facilităŃile şi programabilitatea sistemului de generare a ceasului de lucru.2 CONTROLUL PUTERII CONSUMATE ŞI ALIMENTAREA LA TENSIUNI REDUSE Majoritatea microcontrolerelor pot fi trecute sub control soft în stări speciale cum ar fi: . dacă există.3V variante cu tensiune de alimentare redusă  Vcc = 2…6V. Sistemul de ceas Orice microcontroler este caracterizat de existenŃa circuitelor electronice aferente oscilatorului care generează ceasul de sistem. majoritatea  Vcc= 1. Există microcontrolere la care configuraŃia oscilatorului este programabilă prin intermediul unor „fuzibile” FLASH: . într-un mod de tip "IDLE" toate activităŃile sunt oprite cu excepŃia circuitului oscilatorului local de ceas şi. "POWER DOWN").gama de frecvenŃă etc. la anumite microcontrolere se poate utiliza doar un circuit RC extern sau.inactiv ("IDLE") . Astfel.1. funcŃionarea la limita inferioară implicând doar o micşorare a frecvenŃei maxime de ceas. în exterior. Ieşirea din această stare se face prin "reset" sau ca urmare a unei cereri de întrerupere. tensiunea de alimentare poate fi coborâtă sub valoarea nominală. Tensiunea de alimentare standard pentru microcontrolere:  Vcc = 5V. . Puterea consumată este redusă la aproximativ 30%.varianta RC intern sau extern. RAM. există un circuit RC intern care determină frecvenŃa de oscilaŃie.8…3. a unui rezonator extern pentru stabilizarea frecvenŃei şi eventual a unor capacităŃi. . este posibilă implementarea simplă a oscilatorului doar prin adăugarea. starea CPU. I/O). În aceste moduri. puterea consumată fiind minimă. Dacă stabilitatea şi precizia frecvenŃei nu este o cerinŃă importantă. Toate aceste moduri de lucru sunt de regulă valorificate în aplicaŃii în care alimentarea sistemului se face de la o sursă de tip baterie (în funcŃionarea normală sau numai în anumite situaŃii). conŃinutul RAM-ului intern. De exemplu. În modul "HALT" toate activităŃile sunt oprite. . circuitul de monitorizare a oscilatorului de ceas şi eventual un temporizator dedicat ("idle timer"). . denumirile acestor stări diferind şi în funcŃie de fabricant. starea I/O-urilor (intrărilor şi ieşirilor) pot fi conservate în condiŃiile unei tensiuni de alimentare reduse (faŃă de cea nominală) şi deci al unui consum mult redus.oprit ("HALT". circuitul "watchdog" (ceasul de gardă).

LIN (Local Interconnect Network) .0 a unei rate maxime de cca. c.circuit de tip UART îmbunătăŃit. . implementarea unui protocol TCP/IP. împreună cu datele.UART (Universal Asynchronous Receiver Transmitter) . Era nevoie de o arhitectură flexibilă. Porturi seriale sincrone dedicate . mergând de la transferul de fişiere până la transmiterea vorbirii în timp real.port serial bidirecŃional destinat implementării unui protocol clasic de comunicaŃie asincron. 480MBytes/sec. Conectivitate USB . .USART (Universal Synchronous Asynchronous Receiver Transmitter) permite implementarea şi a unui protocol sincron cu obŃinerea unor viteze mai mari de comunicaŃie. Există câteva implementări mai cunoscute: .1) şi Zigbee (IEEE 802.SCI (Serial Communications Interface) . pentru a face posibilă. sau hardware. Este un standard de comunicaŃie serială sincronă utilizat în industria de automobile.I2C (Inter Integrated Circuits bus) este o interfaŃă serială bidirecŃională. Timpul minim de conversie este în plaja (1-10)µsec. f. protocoale şi stive sunt: Bluetooth (IEEE 802. d. Conectivitate Wireless . a unui semnal de ceas pentru sincronizarea acestora. implementarea unui protocol.se referă la existenŃa unor resurse hardware şi/sau software care să permită integrarea cu uşurinŃă şi la un preŃ de cost avantajos într-o reŃea de tip wireless.15. Conexiunea permite şi furnizarea tensiunii de alimentare. definit şi utilizat de către firma Freescale (Motorola). b.CAN (Controller Area Network) proprietate intelectuală a firmei Bosch. RezoluŃia disponibilă este tipic de 8. deoarece se aveau în vedere aplicaŃii cu cerinŃe divergente. destinată aplicaŃiilor de 8 biŃi. Convertoarele Analog Numerice (CAN.) pentru mărirea şi/sau menŃinerea preciziei. Presupun existenŃa.1 permite atingerea unei rate de transfer maxime a datelor de 12Mbytes/sec. .15.destinate transferului serial de date de mare viteză cu unele periferice specializate. . varianta USB 2. Sursa de referinŃă utilizată este internă sau externă. Varianta USB 1. e. din necesitatea unei reŃele care ar putea supravieŃui în orice condiŃii.1. .SPI (Serial Peripheral Interface) este un port serial sincron definit de firma Motorola. ADC).4). Pentru interfaŃa cu mediul exterior alte facilităŃi importante de intrare/ieşire cum ar fi: a. unele sunt multifuncŃionale etc. conexiunile exterioare sunt bidirecŃionale sau unidirecŃionale.o implementare particulară a unui protocol de comunicaŃie asincron. Porturi seriale universale .0 a unei rate maxime de iar 5Gbytes/sec. dezvoltată de Philips.3 INTERFAłA EXTERNĂ Toate microcontrolerele au un număr oarecare de intrări/ieşiri – Inputs/Outputs numerice. Există microcontrolere care utilizează tehnici de recalibrare (autozero. Modelul TCP/IP (Protocol de control al transmisiei/Protocol Internet .Transmission Control Protocol/Internet Protocol) a fost creat de Ministerul Apărării NaŃionale al Statelor Unite. 10 sau 12 biŃi.Microwire / Microwire Plus este o interfaŃă serială bidirecŃională sincronă definită şi utilizată de firma National Semiconductors. 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. . organizate sub forma unor porturi I/O.magistrala serială USB (Universal Serial Bus) a fost creată pentru conectarea cu uşurinŃă a diverselor periferice la un calculator PC. Conectivitate Ethernet/Web – implică existenŃa unor resurse care să permită integrarea cu uşurinŃă într-o reŃea de tip Ethernet. . Exemple de astfel de reŃele. corecŃie câştig etc. pentru a face posibilă. în final. varianta USB 3.

com) Este o familie de microcontrolere care. AVR (Atmel. ieşiri PWM.subsisteme locale care pot fi folosite pentru implementarea unor alte tehnici de conversie bazate pe integrare etc. Există unul sau mai multe canale pe care se poate genera un tren de impulsuri cu factor de umplere programabil (de la 0 … 100%). mai este încă folosit! Unele din caracteristicile sale arhitecturale se regăsesc la următoarea generaŃie (MCS-51.aproximaŃii succesive cu eşantionare implicită . Are o arhitectură von Neumann. a cunoscut o dezvoltare explozivă.com) "Bunicul" microcontrolerelor pe 8 biŃi.rampă digitală . 8.Tehnicile de conversie cele mai utilizate sunt: . DAC).maxim-ic. Cygnal – www.www. Atmel. 1. Dallas-Maxim . 3. PIC (Microchip. 80C186.a. 7. convertor analog numeric. 68HC05 (Freescale . 4. InterfaŃa pentru sisteme de afişare tip LCD. în ultimii ani. Varianta evoluată a acestei familii este seria 68HC08 bazată pe o nouă unitate centrală de 8 biŃi numită CPU08. 8051 (Intel MCS-51 şi mulŃi alŃii: Atmel. Infineon. în limite largi. AMD ş. timer watchdog. 683xxx (Freescale) Microcontrolere pe 32 de biŃi construite în jurul unui CPU analog microprocesorului M68020 (CPU32).www. Putere de calcul comparabilă sau mai mare ca a lui Intel 80386. exemplu Motorola) Un microcontroler de 8 biŃi derivat din microprocesorul M6800.PWM (Pulse Width Modulation). PIC17 şi PIC18. Cea mai răspândită tehnică de conversie numeric analogică folosită este bazată pe modulaŃia în lăŃime . cu cea mai recentă dezvoltare sub forma seriei 68HCS08 destinată unor aplicaŃii din industria automobilului.display cu cristale lichide). 1.www. h.). PIC16.www. 68HC11. de 8biŃi şi 16biŃi.semiconductor. FrecvenŃa trenului de impulsuri este şi ea programabilă.atmel. 8051). Sunt disponibile actualmente sub forma a 6 serii: PIC10. Convertoarele Numeric Analogice (CNA. 6. un sistem de întreruperi şi un controler pentru DRAM (Dynamic Random Access Memory). o unitate de intrări/ieşiri numerice de mare viteză. PIC12.com. denumite şi "procesoare integrate". 8048 (Intel MCS-48 .) Derivate din clasicele 8086/88 prin includerea pe acelaşi microcircuit a 2 canale DMA(Direct Memory Access).www. 68HC16 (Freescale) 68HC11 a fost unul din cele mai puternice microcontrolere pe 8 biŃi.freescale.intel.com.com etc. 2 numărătoare/timere. a unui sistem de afişare de tip LCD (liquid crystal display . PIC14. 5.com ) .philips. 80C188 (Intel. În prezent au apărut variante care posedă un subsistem destinat conectării directe. 9.www.com. Factorul de umplere este controlat cu o rezoluŃie de la 8 biŃi sau 16 biŃi.4 FAMILII DE MICROCONTROLERE REPREZENTATIVE În prezentarea care urmează accentul este pus pe familiile mai cunoscute.cygnal.microchip. 68HC12. cu un spaŃiu de adresare de 64kBytes. 80C196 (Intel MCS-96) Este un microcontroler pe 16 biŃi făcând parte din generaŃia a treia de microcontrolere a firmei Intel. 2. cu utilizarea unui număr minim de componente exterioare. Philips. g.

TMS370 (Texas Instruments. Nu este compatibil cu setul de instrucŃiuni şi nici cu perifericele standard Z80. 16 şi 32 de biŃi ARM (Advanced RISC Machine. 80C167 etc. familie apărută în ultimii ani. 11.infineon. 80C16x (Infineon.www. Elan (AMD. ARM9T (T“Thumb”).com etc. 13. SC 3/4/5xx. 8. Renesas (Hitachi. Philips. .com) Unul din microcontrolerele de 16 biŃi foarte utilizat în Europa. care oferă variante de microcontrolere oarecum asemănătoare cu familia PIC. obŃinerea unui sistem de calcul compatibil PC.www.national. www. ocupă un segment relativ important al pieŃei. resurse diverse. are diverse variante de realizare a memoriei interne de program. are diverse variante.com) . Cele mai cunoscute şi răspândite variante de nuclee sunt ARM7 şi ARM9. 18. cu implementările lor simplificate numite ARM7T. 15. 80C166.fujitsu. dar setul de instrucŃiuni este similar lui Z80. Cu un spaŃiu de adresare de 64kBytes.zilog. destinată aplicaŃiilor portabile.www.com) oferă familii deosebit de puternice de microcontrolere pe 8 biŃi (FMC-8). controler pentru RAM dinamic. prezintă unele asemănări cu 8051. departe de a fi învechite.o unitate centrală de 32 de biŃi care face parte din categoria structurilor IP (“Intelectual Property”).renesas. 14. doar prin adăugarea de memorie externă.ti.com) Z180 -ul firmei Zilog are un CPU similar cu Z80 dar îmbunătăŃit cu resurse locale. 80386EX (Intel) Un 80386 destinat aplicaŃiilor de tip controler.Un concurent puternic al seriei PIC este familia numită AVR. la performanŃe similare sau mai bune. . cu preŃ scăzut.com) oferă de asemenea o gamă largă de microcontrolere organizate în familii de 4. a firmei ATMEL. optimizarea consumului. controler de întreruperi.okisemi. MPC500 (Freescale) este o familie de microcontrolere bazată pe o unitate centrală de 32 de biŃi compatibilă cu arhitectura şi cu setul de instrucŃiuni. Alte familii de microcontrolere Fujitsu Microelectronics (www. categorie de microcontrolere care.fme.).com) Un derivat al microprocesorului Z80. Arhitectura este similară lui 8051.com) Microcontrolerul standard pe 8 biŃi al firmei TI realizat în multe variante. destinat unor aplicaŃii de control încapsulate-integrate ("embedded PC"). 17.www. Pe baza acestor licenŃe se realizează şi microcontrolere de mare performanŃă. denumită MSP 430. Z8 (Zilog. de tip RISC. cu resurse complexe: 80C165. ConsorŃiul ARM a oferit licenŃe ale acestei micro arhitecturi (nucleu ARM) pentru numeroşi producători de circuite (Atmel. InstrucŃiuni suplimentare faŃă de setul standard Z80. printre care şi înmulŃirea. Resurse locale: I/O seriale.rabbitsemiconductor. 16 biŃi (FMC-16) sau 32 de biŃi (FR). Rabbit ( Rabbit Semiconductors.arm. 10. COP8 reprezintă o serie de microcontrolere pe 8 biŃi.amd.com ) O serie de microcontrolere deosebit de performante realizate în jurul unei unităŃi centrale de tip 386/486. reprezintă un compozit al mai multor arhitecturi diferite.www. DMA. www. disponibilă în multe variante. COP4(00) şi COP8(00) (NS -National Semiconductors . MSP430 (Texas Instruments) Firma TI oferă şi o familie de microcontrolere de 16 biŃi cu arhitectura RISC. 16. 12. exemplu Siemens www. Nu au memorie locală. Arhitectură deosebit de performantă a CPU. Utilizarea unui mediu de programare foarte productiv numit Dynamic C precum şi a facilitaŃilor de programare şi depanare In-System au făcut ca acest microcontroler sa cunoască o răspândire destul de largă. TI. versatilă. timere/numărătoare. în general. OKI – www.com) COP4 este un microcontroler pe 4 biŃi. Permit practic. Z180(Zilog).

Este un limbaj mult diferit de limbajele clasice. BASIC.3. nu poate fi lent şi de mari dimensiuni. 1.4. 1. Un program în limbaj de asamblare este rapid şi compact. Cele mai răspândite ″interpret-ere″ sunt cele pentru limbajele BASIC şi FORTH. Pentru aceasta. programul în limbaj de nivel înalt. datorită complexităŃii setului de instrucŃiuni şi al numeroaselor moduri de adresare.un simulator şi/sau depanator ("debugger").1. MulŃi producători mari de microcontrolere oferă medii de dezvoltare software gratuite care includ programe asambloare gratuite. acesta fiind de altfel preŃul plătit pentru utilizarea oricărui ″interpreter″. codul este obŃinut cu ajutorul unui mediu integrat de dezvoltare a programelor (IDE-Integrated Development Environment) care conŃine în mod tipic următoarele componente software: . 2.4.3. prost scris. în lumea microcontrolerelor.programe de conversie a formatelor de reprezentare a codului ( . care va utiliza cel puŃin un limbaj de asamblare.5 LIMBAJE DE PROGRAMARE 1.un editor de legături. unitatea centrală a unor microcontrolere a fost proiectată şi optimizată pentru utilizarea unor limbaje de nivel înalt.un editor specializat.programe de gestiune a unor biblioteci de cod.1. în care o instrucŃiune are drept corespondent o instrucŃiune în limbaj maşină. Limbajul FORTH este popular datorită vitezei de execuŃie şi posibilităŃii construirii aplicaŃiilor din părŃi re-utilizabile. . Avantaj al utilizării unui ″interpreter″ este dezvoltarea interactivă şi incrementală a aplicaŃiei. există şi variante ″freeware″ de compilatoare de C. de microcontroler.1. mai apropiat de limbajul natural. .4. cum ar fi gcc. care este o portare a compilatorului omonim din Linux.un asamblor/compilator. Aceasta nu înseamnă că un astfel de program. Totuşi.2. codul este destul de greu de scris şi mai ales de citit. . dar şi prin viteza mai mică de execuŃie. OBSERVAłII: 1. Pentru 1. este citirea şi executarea secvenŃială a instrucŃiunilor.4. PreŃul unor astfel de compilatoare (pentru C) poate fi destul de ridicat (100-1000USD). Pentru unele familii noi şi foarte puternice de microcontrolere. Compilatoare pentru limbajele: C. Caracteristic pentru execuŃia unui program interpretat. Forth. PL/M (Intel).4. Compilatoare Un compilator combină uşurinŃa în programare oferită de un interpretor cu o viteză mai mare de execuŃie a codului. Codul maşină rezultat are dimensiuni relativ mari şi este executat direct. . programatorul având controlul total pentru execuŃia programului şi gestiunea resurselor. şi 1. . Această formă de reprezentare a informaŃiei este total nepractică pentru un programator. Limbajul BASIC este remarcabil prin simplitatea şi accesibilitatea codului. este translatat direct în limbaj maşină sau în limbaj de asamblare. Limbajul maşină şi cel de asamblare Limbajul maşină este singura formă de reprezentare a informaŃiei pe care un microcontroler o "înŃelege". fiind de fapt programat într-o memorie de tip (EP)ROM/FLASH sau încărcat direct într-o memorie de tip RAM. ″Interpret-ere″ Un ″interpreter″ este o implementare a unui limbaj de nivel înalt. Pascal. Codul astfel obŃinut trebuie încărcat în memoria de program a microcontrolerului. Fiecare instrucŃiune de nivel înalt este interpretată într-o secvenŃă de instrucŃiuni maşină care se execută imediat.

1. Programele de depanare rezidente utilizează o parte din resursele microcontrolerului: .vmdesign.co. Un astfel de simulator permite rularea aplicaŃiei şi evaluarea modului cum aceasta şi microcontrolerul interacŃionează cu hardware-ul extern.2.uk/) . Exemple: JTAG/ICE – In Circuit Emulation . Nu este necesară înlocuirea microcontrolerului de pe sistemul Ńintă. oferind facilităŃi de depanare similare simulatorului.Proteus VSM (Virtual System Modelling) al firmei Labcenter Electronics (http://www. .6.6.la multe familii de microcontrolere.com). ″host″ (un PC). pentru familiarizarea cu resursele lui şi cu limbajul de asamblare. Cele mai ieftine sunt disponibile în gama (1001000)$.4.6 DEZVOLTAREA ŞI TESTAREA APLICAłIILOR Cele mai răspândite mijloace hardware/software utilizate în dezvoltarea şi testarea aplicaŃiilor sunt: 1. BDM (Background Debug Monitor) – pentru Freescale/Motorola. programul rulează mai încet decât pe maşina reală.1. El permite interacŃiunea dintre software-ul microcontrolerului şi dispozitivele electronice analogice sau numerice conectate cu acesta.6.memorie de program (de tip ROM) şi memorie de date (RAM) pentru variabile proprii.1. de regulă. Nu permite simularea în timp real a întreruperilor şi. Presupun existenŃa unui hardware complicat care înlocuieşte microcontrolerul.memorie de program pentru programul ce se depanează. Sunt bazate pe utilizarea unor modele avansate ale unor familii de microcontrolere precum şi pe modelele SPICE ale dispozitivelor electronice. Emulatoarele în circuit (ICE-In Circuit Emulators) Sunt cele mai eficiente mijloace de testare şi dezvoltare dar şi cele mai complexe şi mai costisitoare. prin intermediul unui port paralel. conectarea cu acesta făcându-se printr-un număr minim de interconexiuni. serial sau USB. . Simulatoarele de sistem Reprezintă o categorie de simulatoare destinate simulării cât mai complete a microcontrolerului împreună cu dispozitivele hardware externe. . conŃinutul variabilelor şi registrelor poate fi vizualizat şi modificat. InterfaŃa cu utilizatorul este realizată prin intermediul unui sistem gazdă (PC) şi/sau a unui terminal alfanumeric. 1.3. . de obicei. Programele de depanare ("debbugers") rezidente Sunt programe care rulează pe microcontroler. conectat la un PC. Reprezintă un punct de plecare atunci când se abordează un microcontroler.UMPS (Universal Microprocessor Program Simulator) al firmei Virtual Microdesign (www. etc. Ele sunt realizate ca un mijloc de testare şi depanare de sine stătător. şi un simulator SPICE. 1. Permit un control total al maşinii Ńintă fără a folosi nimic din resursele acesteia. Programul se poate executa pas cu pas. Simulatoarele Sunt programe care rulează programul microcontrolerului folosind un sistem de calcul gazdă. Ele integrează.un port serial pentru comunicaŃia cu sistemul gazdă.eventual întreruperi.labcenter. conectate prin intermediul unui port serial.6. Exemple: .

producŃie mică/medie sau de masă?  Care sunt costurile permise pentru microcontroler?  Care sunt costurile permise pentru mediul de programare şi dezvoltare? b. resurse periferice sau de memorie? f. atunci când este necesară?  Eventuale cerinŃe suplimentare în materie de viteză de lucru. Real Time Operating System-RTOS) Pe piaŃa de software pentru microcontrolere există şi componente numite nuclee de timp real sau sisteme de operare în timp real (RTOS). Timpul de dezvoltare al aplicaŃiei  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. motoare de c. Nucleele (sistemele de operare) în timp real (Real Time kernel. ieşiri numerice?  Care sunt resursele necesare în materie de temporizare/numărare şi care ar fi caracteristicile lor cele mai importante?  Ce tip de capsulă. Astfel. sistem de dezvoltare. emulator? c. USB sau wireless? e.. motoare pas cu pas etc. aceasta depinzând de modul în care este utilizat acest software la nivel de sistem. fiind de presupus că nu se modifică pe parcursul execuŃiei aplicaŃiei. elemente de comandă şi execuŃie (relee. Alte aspecte  Ce distribuitori există şi cât sunt de accesibili pentru mine?  Care este suportul oferit de fabricant sau distribuitor şi care este baza de cunoştinŃe existentă? .1. EsenŃială este pană la urmă competenŃa celui care programează aplicaŃia ! 1. senzori.5. Caracteristicile fizice  Care este viteza de prelucrare necesară?  De câtă memorie am nevoie pentru program şi respectiv date?  Va fi necesară şi o memorie externă?  Ce fel de alimentare este disponibilă şi care sunt limitările acesteia?  De câte intrări şi/sau ieşiri am nevoie?  Ce fel de intrări şi/sau ieşiri sunt necesare: intrări/ieşiri analogice. 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. Compatibilitate.)?  Cum se poate realiza extinderea ulterioară. Un sistem de operare în timp real facilitează crearea aplicaŃiilor aşa zise de timp real.7 CRITERII DE ALEGERE A UNUI MICROCONTROLER Câteva criterii de alegere a unui microcontroler. ce tipuri de magistrale seriale sincrone sunt disponibile?  Este necesară o conectivitate Ethernet.c. dar nu garantează şi faptul că ele chiar se vor executa în timp real. Costurile aplicaŃiei  Care va fi scara de producŃie: prototip.6. Conectivitatea  Care sunt resursele de comunicaŃie necesare: câte porturi seriale asincrone şi cu ce caracteristici. lucrurile sunt uşurate deoarece comportarea sistemului poate fi specificată complet încă din faza de proiectare. ce dimensiuni fizice şi număr de pini ar trebui să aibă?  Care este gama temperaturilor de lucru necesare?  AplicaŃia va funcŃiona într-un mediu cu caracteristici speciale? d. scalabilitate şi dezvoltarea ulterioară  Cu ce tipuri de circuite se poate interfaŃa cât mai simplu: sisteme de afişare. după cerinŃele impuse aplicaŃiei: a.

Programarea se face de regulă prin intermediul unei interfeŃe seriale dedicate de tip ISP sau a unei interfeŃe standard JTAG. Programator specializat extern. în acest caz.este un circuit electronic care conectează un port al PC-ul ( serial. Programator pe SPI sau JTAG Programator UNIVERSAL . Programarea "In System" (ISP-In System Programming) . Codul poate proteja atât la citire cât şi la scriere. CUM SE POATE PROGRAMA UN MICROCONTROLER? a. Programatoarele acestea au de obicei un soclu în care se pot conecta mai multe tipuri de microcontrolere. b. În microcontroler poate exista permanent un cod de mici dimensiuni (bootloader) care va încărca. Este eliminată astfel posibilitatea de a se realiza. de patch-uri (alterări cu un anumit scop) ale codului original. EPROM sau OTP. c.STK200) .1.folosirea unor memorii nevolatile de tip FLASH face posibilă şi "programarea" unui astfel de microcontroler fără a-l scoate din sistemul în care este încorporat. La variantele mask-ROM propriu-zis protecŃia este de cele mai multe ori implicită.8. Bootloader – Microcontrolerele recente la care memoria de program este de tip FLASH au şi instrucŃiuni pentru a putea scrie în această memorie de program fără a utiliza un circuit de programare extern. ATENłIE!!! Protejarea codului program dintr-o memorie locală nevolatilă împotriva accesului neautorizat este oferită ca o opŃiune care trebuie folosită la variantele FLASH. paralel sau USB ) cu pinii de programare ai microcontrolerului. codul utilizator sau constantele pe care acesta vrea să le actualizeze. Bootloader-ul este şi cel care lansează în execuŃie programul utilizator după încărcarea acestuia. prin intermediul unui port serial.(ex.