Summary

This document provides an introduction to microcontrollers, including their architecture, key components (CPU, memory, peripherals), and key characteristics (pins, power supply, embedded systems usage). It also discusses the fundamental differences between microcontrollers and general-purpose microprocessors, and how microcontrollers are programmed.

Full Transcript

Un **microcontroler** este un circuit integrat (IC) care funcționează ca un \"computer mic\". Are o structură complexă și include: 1. **CPU** (unitatea de procesare) -- pentru execuția instrucțiunilor. 2. **Memorie** -- pentru stocarea programelor și datelor. 3. **Periferice** -- componente pe...

Un **microcontroler** este un circuit integrat (IC) care funcționează ca un \"computer mic\". Are o structură complexă și include: 1. **CPU** (unitatea de procesare) -- pentru execuția instrucțiunilor. 2. **Memorie** -- pentru stocarea programelor și datelor. 3. **Periferice** -- componente pentru interacțiunea cu exteriorul (ex: intrări/ieșiri digitale, ADC, timere). **Caracteristici principale:** - **Pini** -- pentru conectarea la alte dispozitive (intrări/ieșiri). - **Alimentare** -- funcționează la o anumită tensiune (ex: 3.3V sau 5V) și consumă un curent specific. - **Utilizare** -- folosit în sisteme embedded (ex: electrocasnice, mașini, drone). **Componente incluse:** 1. **Memorii**: - **RAM** -- pentru stocarea temporară a datelor. - **ROM** -- pentru stocarea programului (codul firmware). - **EEPROM** -- pentru stocarea permanentă a datelor (se păstrează și după oprire). 2. **Dispozitive periferice**: - **Timere/Numărătoare** -- pentru măsurarea timpului sau evenimentelor. - **Blocuri analogice** (ex: ADC -- convertor analog-digital) -- pentru citirea semnalelor de la senzori. - **Interfețe de comunicație** (ex: UART, SPI, I2C) -- pentru comunicarea cu alte dispozitive. - **Porturi de intrare-ieșire (I/O)** -- pentru conectarea la senzori, actuatori sau - alte componente externe. **Caracteristici principale:** - **Dimensiune redusă a memoriei** -- memoria program (ROM) și memoria de date (RAM) sunt limitate, dar suficiente pentru aplicații specifice. - **Interfațare digitală și analogică** -- poate comunica atât cu senzori/actuatori digitali, cât și analogici. - **Răspuns rapid la evenimente** -- poate reacționa rapid la semnale externe, fiind ideal pentru aplicații în timp real. **Diferența fundamentală între un microcontroler și un circuit integrat analogic/digital:** Un microcontroler **nu poate funcționa fără un program software**. El are nevoie de cod pentru a executa sarcini, spre deosebire de circuitele analogice sau digitale care funcționează bazându-se doar pe configurația lor hardware. **Cum funcționează programarea unui microcontroler:** 1. **Scrierea programului**: - Programul se scrie într-un editor de text sau mediu de dezvoltare (IDE). - Există mai multe opțiuni de limbaje: - **Cod mașină** (hexadecimal) -- limbaj direct înțeles de microcontroler. - **Limbaj de asamblare** -- folosește mnemonice (scurtături ușor de reținut). - **Limbaj de nivel înalt** (C, Pascal, Basic) -- mai ușor de scris și înțeles. 2. **Compilarea programului**: - Limbajele de asamblare și cele de nivel înalt trebuie convertite în **cod mașină** (hexadecimal) folosind un **compilator**. - Compilatorul este un software oferit de producătorii de microcontrolere. 3. **Transferul programului în microcontroler**: - Codul mașină este transferat în memoria **ROM** (memoria program) a microcontrolerului folosind un **programator**. - Programatorul constă din: - Un modul electronic pentru conectarea microcontrolerului la calculator (PC **Comparație între montaj cu microcontroler și montaj cu tranzistori:** 1. **Număr redus de componente**: - Microcontrolerul integrează multiple funcții într-un singur chip, reducând numărul de componente necesare (ex: 10 componente vs 5 componente). 2. **Dimensiuni reduse ale PCB**: - Placa de circuit (PCB) este mai mică și mai simplă, ceea ce o face mai ieftină de produs. 3. **Consum energetic scăzut**: - Microcontrolerele moderne sunt optimizate pentru un consum redus de energie. 4. **Flexibilitate și ușurință în modificare**: - Parametrii funcționali (ex: timpi, logici) pot fi modificați prin reprogramare, fără a fi nevoie de componente hardware noi. **Avantajele montajului cu tranzistori:** 1. **Preț mai mic**: - Costul inițial al componentelor (ex: tranzistori) poate fi mai mic decât al unui microcontroler (ex: 2,75 lei vs 3,40 lei). 2. **Tehnologie simplificată**: - Nu este nevoie de programare sau compilatoare, ceea ce reduce complexitatea. 3. **Robustețe**: - Montajele bazate pe tranzistori sunt adesea mai rezistente la condiții extreme (ex: temperaturi, vibrații). 4. **Gabarit redus**: - În unele cazuri, montajele cu tranzistori pot ocupa mai puțin spațiu decât cele cu microcontrolere. **Microprocesor vs. Microcontroler: Diferențe și utilizări** **Microprocesor:** 1. **Utilizare**: - Folosit pentru aplicații care necesită **performanță ridicată** de procesare. - Este **CPU-ul** principal al calculatoarelor de uz general (PC, laptop, servere). 2. **Componente externe necesare**: - Are nevoie de **memorie externă** (RAM, ROM) și **interfețe I/O** externe pentru a funcționa. **Microcontroler:** 1. **Utilizare**: - Proiectat pentru a fi **compact**, **ieftin** și **eficient**. - Folosit în aplicații **embedded** (încorporate) unde dimensiunea și costul sunt importante. 2. **Componente integrate**: - Conține pe același chip: - **CPU** (unitatea de procesare). - **Memorie** (RAM, ROM, EEPROM). - **Interfețe I/O** (intrări/ieșiri). - Nu necesită componente externe suplimentare pentru funcționarea de bază. **Diferențe cheie:** **Caracteristică** **Microprocesor** **Microcontroler** -------------------- ----------------------------- ------------------------------------ **Componente** Necesită componente externe Totul este integrat pe chip **Performanță** Performanță ridicată Performanță moderată **Cost** Mai scump Mai ieftin **Flexibilitate** Foarte flexibil Specializat pe aplicații specifice **Aplicații** PC, servere, laptop-uri Sisteme embedded, IoT, control **Microcontrolerul ATMega16: Caracteristici și detalii** **Familia AVR:** - ATMega16 face parte din familia **AVR** de la Microchip. - Are o **arhitectură pe 8 biți** și un **set redus de instrucțiuni (RISC)**. - Acest lucru îl face rapid și eficient în execuția instrucțiunilor. **Memorii integrate:** 1. **ROM (Flash)**: - Stochează programul (codul scris de utilizator). - ATMega16 are **16 kB de memorie ROM** (cifra \"16\" din nume indică această capacitate). 2. **EEPROM**: - Folosită pentru stocarea permanentă a datelor (păstrează date chiar și după oprire). 3. **SRAM**: - Memorie volatilă pentru stocarea temporară a datelor în timpul execuției programului. **Performanță:** - Majoritatea instrucțiunilor se execută într-un **singur ciclu de ceas**, ceea ce îl face foarte rapid. - Aceasta este o caracteristică cheie a arhitecturii **RISC**. **Avantaje:** 1. **Toate componentele sunt integrate**: - Nu este nevoie de memorie sau componente externe suplimentare. 2. **Compact și eficient**: - Ideal pentru aplicații embedded (ex: control motoare, senzori, dispozitive IoT). 3. **Ușor de programat**: - Suportă limbaje de nivel înalt (ex: C) și are un set de instrucțiuni simplu. 1. **Unitatea Centrală de Prelucrare (CPU)**: - Este „creierul" microcontrolerului, responsabil pentru prelucrarea datelor și executarea instrucțiunilor. 2. **Memoria ROM (Read-Only Memory) -- Flash**: - Această memorie este folosită pentru a stoca codul programului, adică instrucțiunile care sunt executate de microcontroler 3. **Memoria RAM (Random Access Memory)**: - Aceasta este folosită pentru stocarea datelor temporare care sunt necesare în timpul execuției programului, cum ar fi variabilele și datele de intrare/ieșire. - RAM-ul este folosit de CPU pentru a citi și scrie rapid datele care sunt utilizate în calcule. - Acesta furnizează semnalul de ceas necesar pentru sincronizarea operațiunilor procesorului. Oscilatorul definește frecvența de lucru a microcontrolerului (de exemplu, 16 MHz sau 32 MHz). - Este esențial pentru a asigura coordonarea temporară între diversele componente ale microcontrolerului. 4. **Dispozitive periferice I/O (Porturi I/O)**: - Porturile de intrare/ieșire sunt folosite pentru a comunica microcontrolerul cu lumea exterioară. Aceste porturi permit microcontrolerului să citească semnale de la senzori sau să controleze diverse dispozitive externe, cum ar fi LED-uri, motoare sau alte circuite. - Aceste porturi pot fi configurate pentru a funcționa în moduri de intrare (input) sau ieșire (output), iar microcontrolerul poate trimite semnale pe ele pentru a controla dispozitivele sau pentru a citi informații de la senzori. 5. **Bus de Date, Adrese, Control**: - **Bus-ul de date** transportă informațiile între CPU, memoria RAM, memoria Flash și perifericele I/O. - **Bus-ul de adrese** specifică locațiile de memorie sau registrele cu care CPU-ul dorește să interacționeze. - **Bus-ul de control** trimite semnale pentru a coordona operațiunile între diferitele componente ale microcontrolerului (de exemplu, semnale de citire/scriere, semnale de activare a unui dispozitiv periferic etc.). Un **oscilator** este un circuit electronic care generează un semnal periodic (oscilație) de tipul unui **semnal de ceas**. Acest semnal de ceas este folosit pentru a sincroniza toate operațiunile unui sistem digital, cum ar fi un microcontroler sau un procesor. Oscilatorul creează un semnal electric de frecvență constantă, care este utilizat pentru a marca momentele în care trebuie să se execute instrucțiuni sau operațiuni. **Tipuri de Oscilatoare:** - **Oscilatoare cu cristal (Quartz)**: Acestea sunt cele mai folosite în microcontrolere, datorită stabilității și preciziei frecvenței. Un cristal de cuarț oscilează la o frecvență specifică atunci când este alimentat cu energie, iar această frecvență este foarte precisă. - **Oscilatoare RC**: Utilizate uneori în microcontrolere pentru aplicații unde nu este necesară o precizie mare. - **Oscilatoare LC**: Folosite pentru generarea semnalelor de frecvență mai înaltă, dar sunt mai puțin comune în microcontrolerele moderne. **Cum funcționează:** Oscilatorul transformă energia electrică într-un semnal periodic (de obicei un semnal pătratic sau sinusoidal) care este utilizat pentru a marca perioadele de timp. De exemplu, într-un microcontroler, semnalul generat de oscilator este folosit pentru a sincroniza pașii de execuție ai procesorului, cum ar fi citirea unei instrucțiuni sau efectuarea unei operațiuni aritmetice. **2. Ceasul sistemului (Clock):** **Ceasul sistemului** este semnalul generat de oscilator și folosit pentru a controla timpul și sincronizarea tuturor componentelor unui sistem digital. Acesta asigură faptul că fiecare componentă lucrează într-un ritm comun, astfel încât operațiunile să se efectueze în ordinea corectă. **Cum funcționează:** - **Frecvența ceasului** este măsurată în **Hertz (Hz)** și reprezintă numărul de cicluri de ceas pe secundă. De exemplu, un microcontroler cu o frecvență de 16 MHz înseamnă că ceasul efectuează 16 milioane de cicluri de ceas pe secundă. - Fiecare ciclu de ceas reprezintă o unitate de timp în care procesorul poate efectua o instrucțiune sau poate realiza o acțiune (de exemplu, citirea unui registru, efectuarea unui calcul etc.). **Rolul ceasului în sistem:** - **Sincronizarea operațiunilor**: Fiecare componentă a unui microcontroler (CPU, memorie, periferice) lucrează pe baza semnalului de ceas, astfel încât toate să se desfășoare într-o ordine bine definită. - **Determinarea performanței**: Frecvența ceasului este direct legată de performanța unui sistem. Cu cât frecvența ceasului este mai mare, cu atât mai multe instrucțiuni pot fi executate într-o unitate de timp. A screenshot of a computer Description automatically generatedDesigur! Tabelul din josul paginii reprezintă valorile pentru registrul de prescaler al microcontrolerului **ATMega328**. Acest registru permite configurarea divizării frecvenței ceasului sistemului printr-un factor prestabilit. **Explicația tabelului:** - **CLKPS3, CLKPS2, CLKPS1, CLKPS0** → Acești patru biți controlează factorul de divizare al ceasului sistemului. - **Clock Division Factor** → Valoarea cu care este împărțită frecvența de ceas a microcontrolerului (f\_clock), determinând frecvența efectivă a sistemului (f\_system). **Cum funcționează:** - Dacă toți biții sunt **0 (0000)**, factorul de divizare este **1**, ceea ce înseamnă că f\_system = f\_clock (frecvența rămâne neschimbată). - Dacă biții sunt **0001**, factorul de divizare devine **2**, adică f\_system = f\_clock / 2. - Pe măsură ce valoarea crește, frecvența sistemului scade: - **0010** → divizare cu 4 - **0011** → divizare cu 8 - **0100** → divizare cu 16 - **0101** → divizare cu 32 - **0110** → divizare cu 64 - **0111** → divizare cu 128 - **1000** → divizare cu 256 Acest mecanism este util pentru **reducerea consumului de energie** atunci când microcontrolerul nu trebuie să ruleze la frecvență maximă. a, în majoritatea microcontrolerelor (inclusiv **ATMega328**), pentru utilizarea unui **oscilator extern** sunt disponibili **doi pini**: - **XTAL1 (intrare)** → Primește semnalul de ceas de la un cristal de cuarț sau alt generator extern. - **XTAL2 (ieșire)** → Oferă semnalul oscilatorului către circuitul intern de ceas al microcontrolerului. **Moduri de utilizare:** 1. **Cristal de cuarț** → Se conectează un cristal între **XTAL1** și **XTAL2**, împreună cu două condensatoare la masă (de obicei 22pF) pentru stabilitate. 2. **Resonator ceramic** → Similar cristalului de cuarț, dar mai puțin precis. 3. **Generator extern de ceas** → Se aplică un semnal de ceas direct pe **XTAL1**, iar **XTAL2** rămâne neconectat. Această metodă permite utilizarea unei **frecvențe precise și stabile**, necesară în aplicații unde sincronizarea este importantă (ex. comunicare serială, temporizatoare precise). Cristalul de cuarț se conectează între pinii **XTAL1** și **XTAL2** deoarece microcontrolerul are un **amplificator oscilator intern**. **Motivul conectării cristalului între XTAL1 și XTAL2:** 1. **Circuit oscilator intern**: - Microcontrolerul include un **amplificator inversor** între **XTAL1** și **XTAL2**. - Cristalul acționează ca un element de rezonanță, menținând oscilația prin bucla de reacție a acestui amplificator. 2. **Stabilitatea și precizia frecvenței**: - Cristalul de cuarț are o **frecvență naturală de rezonanță**, care determină frecvența semnalului de ceas. - Spre deosebire de oscilatoarele RC (rezistor-condensator), cristalul oferă **o frecvență mult mai precisă și stabilă**, esențială pentru temporizări exacte și comunicare serială. 3. **Rolul condensatoarelor** (de obicei 22pF la masă): - Ele ajută la stabilizarea oscilatorului și la setarea punctului de funcționare corect. 4. **Dacă se folosește un generator extern de ceas**: - Se aplică direct un semnal de ceas pe **XTAL1**, iar **XTAL2 rămâne neconectat**, deoarece în acest caz nu este necesar oscilatorul intern al microcontrolerului. **Concluzie:** Cristalul este plasat între **XTAL1** și **XTAL2** pentru a închide bucla oscilatorului intern, permițând generarea unui semnal de ceas precis pentru microcontroler. ![A screenshot of a computer Description automatically generated](media/image2.png) **Explicația tabelului privind Fuse Bits pentru microcontrolerul ATmega8** Acest tabel conține două secțiuni, **Fuse High Byte** și **Fuse Low Byte**, care definesc opțiunile de configurare hardware ale microcontrolerului **ATmega8**, inclusiv **selecția sursei semnalului de ceas**. **1. Fuse High Byte** Această parte a tabelului include biți de configurare pentru diverse funcționalități hardware ale microcontrolerului. Printre cei mai importanți sunt: **Observație:** - Bitul **CKOPT** controlează comportamentul oscilatorului și trebuie configurat în funcție de tipul de cristal folosit. **2. Fuse Low Byte** Această parte a tabelului include biți legați de **configurarea oscilatorului** și **start-up time** (timpul de inițializare al oscilatorului): **Observații:** - Biții **CKSEL3\...CKSEL0** controlează sursa semnalului de ceas: - Cuart extern, oscilator RC intern, ceas extern etc. - Biții **SUT1, SUT0** determină **timpul de pornire al oscilatorului**, ceea ce influențează stabilitatea inițială. **Concluzie** - **Fuse Bits** sunt esențiali pentru configurarea corectă a microcontrolerului și trebuie setați cu atenție pentru a alege **sursa de ceas corectă**. - Biții **CKSEL3\...CKSEL0** determină tipul oscilatorului utilizat. - Bitul **CKOPT** influențează comportamentul oscilatorului. - **SUT1 și SUT0** ajustează timpul de stabilizare al oscilatorului. - Cristalele de cuarț și oscilatoarele ceramice au nevoie de timp pentru a ajunge la frecvența stabilă. - Dacă timpul de start-up este prea scurt, microcontrolerul poate porni înainte ca oscilatorul să fie complet stabilizat, ceea ce poate cauza funcționare defectuoasă. - **6 CK (cicluri de ceas)** -- Microcontrolerul pornește aproape imediat. Potrivit pentru oscilatoare RC interne care nu necesită stabilizare. - **4.1 ms** -- Recomandat pentru cristale de cuarț comune, deoarece acestea au nevoie de timp să oscileze stabil. - **65 ms** -- Se folosește pentru cristale mai lente sau pentru aplicații unde stabilitatea este critică, evitând resetări false. 1. **Dacă se folosește oscilator RC intern** → se alege un timp scurt (**6 CK**). 2. **Dacă se folosește cristal de cuarț extern** → se alege un timp mediu (**4.1 ms** sau mai mult). 3. **Dacă se folosește un cristal sensibil la temperatură** → se recomandă **65 ms** pentru stabilizare completă. A screenshot of a computer Description automatically generated**Explicația tabelelor pentru selecția semnalului de ceas în ATmega16** Aceste tabele prezintă configurarea biților **CKSEL\[3:0\], SUT\[1:0\] și CKOPT**, care controlează sursa și parametrii de pornire ai oscilatorului în microcontrolerul **ATmega16**. **Primul tabel -- Selectarea sursei de ceas (CKSEL\[3:0\])** Acest tabel arată diferitele opțiuni de ceas disponibile și valorile corespunzătoare ale biților CKSEL\[3:0\]: - **Cristal / rezonator ceramic extern (1111 - 1010):** Folosit pentru oscilatoare precise. - **Cristal de frecvență joasă (1001):** Utilizat pentru consum redus de energie. - **Oscilator RC extern (1000 - 0101):** Se poate configura manual cu rezistențe/capacitori externi. - **Oscilator RC intern calibrat (0100 - 0001):** Configurație implicită, mai puțin precisă. - **Semnal de ceas extern (0000):** Acceptă un semnal de tact generat de un alt circuit. - **CKSEL0 determină tipul de oscilator** (ceramic, cristal, RC extern etc.). - **SUT\[1:0\] determină timpul de pornire**: - **00 (258 CK)** → Pornire rapidă pentru rezonatori ceramici. - **01 (258 CK + 65 ms)** → Pornire lentă, utilă dacă alimentarea crește lent. - **10 (1K CK + 4.1 ms)** → Stabilizare mai bună, recomandată cu **BOD** (Brown-Out Detection). - **11 (1K CK + 65 ms)** → Pentru alimentare instabilă. - **16K CK** → Necesită cel mai mult timp, ideal pentru cristale de precizie. **Al treilea tabel -- Frecvența și capacitoarele recomandate** Acest tabel asociază biții **CKOPT și CKSEL\[3:1\]** cu gama de frecvențe și capacitoarele recomandate pentru stabilizarea oscilatorului. - **CKOPT = 1** → Setare normală, frecvență mai mică. - **CKOPT = 0** → Activează un \"full swing oscillator\" pentru stabilitate mai bună la frecvențe mari. - **Capacitorii (C1, C2)** ajută la stabilizarea cristalului. **Concluzie** - **Dacă folosești un cristal extern de 8 MHz:** Setează **CKSEL = 111**, **SUT = 00** (16K CK), iar **CKOPT = 0** pentru o stabilitate bună. - **Dacă folosești un rezonator ceramic:** Setează **CKSEL = 1010**, **SUT = 10** (1K CK + 4.1ms). - **Dacă folosești RC intern:** Nu este nevoie de condensatori, doar selectezi **CKSEL = 0100**. Aceste setări sunt importante pentru a asigura pornirea corectă și stabilitatea microcontrolerului în funcție de sursa de ceas utilizată. **Ce sunt fuse biții într-un microcontroler?** **Fuse biții** (sau **biții de configurare**) sunt biți speciali de memorie într-un microcontroler care definesc setările hardware de bază, inclusiv: - **Sursa și configurația oscilatorului** (ex.: cristal, rezonator ceramic, RC intern/extern). - **Protecția memoriei flash** (ex.: blocarea rescrierii codului). - **Activarea unor funcții speciale** (ex.: detectorul Brown-Out (BOD), debug prin JTAG, reset extern). Acești biți sunt **programabili o singură dată** (sau de foarte puține ori) și nu se modifică în timpul rulării programului. Se configurează **prin programatoare externe** (ex. AVRISP, USBasp) înainte de a încărca firmware-ul. **Cum funcționează fuse biții?** - Fiecare fuse bit poate avea **două stări:** - **0 (programat)** → Funcția asociată este activată. - **1 (neprogramat)** → Funcția asociată este dezactivată. 📌 **Atenție!** Dacă setezi greșit fuse biții, microcontrolerul poate deveni inaccesibil (ex. dezactivarea oscilatorului), necesitând un **high-voltage programmer** pentru recuperare. **Exemplu de fuse biți în ATmega** 1. **CKSEL\[3:0\]** -- Selectează sursa de tact (oscilator). 2. **SUT\[1:0\]** -- Configurarea timpului de pornire a oscilatorului. 3. **CKOPT** -- Activează un oscilator mai puternic (\"full swing mode\"). **Ce sunt fuse biții într-un microcontroler? (Explicație simplă)** Fuse biții sunt **setări speciale** care controlează modul în care microcontrolerul funcționează la nivel hardware. Ei sunt ca niște **\"butoane invizibile\"** care setează lucruri importante, cum ar fi:\ ✅ Ce tip de ceas (oscillator) folosește microcontrolerul.\ ✅ Cât timp să aștepte până pornește oscilatorul.\ ✅ Dacă activează protecția memoriei pentru a nu fi ștearsă accidental. **Cum funcționează fuse biții?** - Fiecare fuse bit poate avea **două stări:** - **0 (programat)** = Funcția este activată. - **1 (neprogramat)** = Funcția este dezactivată. Odată setați, fuse biții **nu se schimbă în timpul funcționării** microcontrolerului. Ei trebuie configurați înainte să încarci programul tău. 📌 **Atenție!** Dacă setezi fuse biții greșit (de exemplu, alegi o sursă de ceas inexistentă), microcontrolerul poate înceta să funcționeze și vei avea nevoie de un programator special ca să-l resetezi. **Exemplu concret (ATmega)** 1. **CKSEL** -- Alege ceasul microcontrolerului (cristal extern, oscilator intern, ceas extern etc.). 2. **SUT** -- Definește cât timp să aștepte oscilatorul înainte să înceapă lucrul. 3. **CKOPT** -- Controlează puterea oscilatorului (folosit pentru cristale mai mari). **Pe scurt:** 👉 Fuse biții sunt setări hardware speciale ale microcontrolerului.\ 👉 Ei controlează sursa de ceas, protecția memoriei și modul de programare.\ 👉 Odată setați, nu se pot schimba decât cu un programator special.\ 👉 Dacă îi setezi greșit, microcontrolerul poate deveni inutilizabil. ![](media/image4.png) Tabelul din imagine oferă detalii despre diferitele opțiuni de configurare pentru semnalul de ceas al microcontrolerului ATmega328. Aceste setări sunt controlate prin programarea unor biți specifici numiți **fuse bits**: CKSEL (pentru selecția sursei de ceas), SUT (setarea timpului de pornire) și CKDIV8 (împărțirea frecvenței ceasului). **1. Tipurile de surse de ceas și CKSEL** CKSEL controlează ce sursă de ceas este folosită de microcontroler: - **Oscilator cristal cu putere redusă (Low Power Crystal Oscillator):** Potrivit pentru consum redus de energie. - **Oscilator cristal full swing (Full Swing Crystal Oscillator):** Potrivit pentru aplicații care necesită mai multă putere. - **Oscilator cristal cu frecvență joasă (Low Frequency Crystal Oscillator):** Pentru frecvențe mai mici. - **Oscilator RC intern calibrat (Calibrated Internal RC Oscillator):** Fără cristal extern, folosește un oscilator intern. - **Ceas extern (External Clock):** Se folosește o sursă externă de semnal de ceas. - **Rezervat (Reserved):** Nu este utilizat. **2. Frecvențe și capacitori recomandați** Pentru fiecare opțiune de cristal oscilator, există un interval recomandat de frecvențe și valori pentru condensatori: - De exemplu, pentru frecvențe de **8-16 MHz**, condensatorii recomandați sunt de **12-22 pF**. **3. Timpul de pornire (Startup Time) și întârzierea suplimentară (Additional Delay)** - **Startup Time:** Timpul necesar microcontrolerului pentru a începe să funcționeze după o oprire sau o stare de economisire a energiei. Este măsurat în cicluri de ceas (CK). - **Additional Delay:** Întârzierea suplimentară este timpul necesar microcontrolerului pentru a finaliza resetarea și pentru a porni complet. Exemple: - Pentru un oscilator RC calibrat, timpul de pornire este de **1K CK**, iar întârzierea suplimentară este de **14CK**. - Pentru oscilatorul cu cristal full swing, timpul de pornire este de **16K CK**, iar întârzierea suplimentară poate varia în funcție de condiții (4,1 ms, 65 ms).

Use Quizgecko on...
Browser
Browser