Section outline
-
-
Examenul este format din două întrebări teoretice si o problemă.
Notarea răspunsului se v-a face conform schemei urmatoare:
1) Intrebarea teoretică nr.1 - 3 puncte
2) Intrebarea teoretică nr.2 - 3 puncte
3) Problema - 4 puncte
-------------------------------------------------------Total (nota maximă) : 10 puncte
Raspunsurile la intrebari le puteti scrie direct pe site-ul, sau le puteți scrie in editor extern
și atașa un document .doc .docx sau .pdf (zip).
În cazul în care atașati un document - indicați numele vostru în denumirea fișierului.
-
-
-
Scopul şi obiectivele disciplinei.
Scopul predării cursului constă în însuşirea de către studenţi a arhitecturii diferitor tipuri de microprocesoare şi microcontrolere, familiarizarea cu tehicile de proiectare a sistemelor pe microcontrolere.
Obiectivele studierii cursului sunt: studierea de către studenţi arhitecturii şi a principiului de funcţionare a sistemelor de control bazate pe microprocesor sau microcontroler; structura şi organizarea memoriei microprocesoarelor; cunoaşterea metodologiei de proictare a sistemelor cu microcontroler; să poată utiliza microcontrolere pentru proiectarea diferitor sisteme de calcul şi control.
Cunoştinţe anterioare:
a) Analiza şi sinteza dispozitivelor numerice: testarea dispozitivelor numerice; sinteza dispozitivelor numerice.
b) Echipamente periferice: structura şi funcţionarea diferitor echipamente periferice; programarea echipamentelor periferice.
c) Circuite integrate digitale: caracteristicile diferitor serii de circuite digitale; circuite de memorie.
d) Limbajul de asamblare: elaborarea softului utilizînd limbaj de nivel jos şi interacţiunea între componentele software şi hardware-ul a sistemului.
-
-
La finalul cursului studenții trebue să realizeze un proiect. Obiectivele acestui proiect prevăd familiarizarea studenților cu tehnicile și metodele de proiectare a sistemelor cu microprocesoare/microcontrolere.
Tema proiectului și condițiile inițiale se stabilesc individual pentru fiecare student. Se acceptă colaborarea în grupuri pentru dezvoltarea unor proiecte mai mari dar cu condiția ca fiecare candidat are tema/sarcina sa bine determinată (Spre exemplu: pentru realizare unui robot e nevoie de mai multe subsisteme, astfel un student poate proiecta subsistemul de alimentare și management al bateriilor, altul - subsistemul de drivere pentru motoare, altul - subsistemul de comunicare și control...). Sistemul/subsistemul trebue să conțină obligatoriu un microprocesor/microcontroler.
În raportul proiectului trebuie incluse urmatoarele capitole:
1. Descrierea generală - in care se prezintă conceptul și modul de funcționare a sistemului.
2. Descrierea HardWare - in care se descriu modulele sistemului si schema electrică principială.
3. Descrierea SoftWare - descrierea algoritmului de funcționare și a funcțiilor cheie.
4. Concluzii - se prezintă rezultatele obținute în urma modelării si concluziile generale.
Partea grafică trebue să conțină:
1) Schema de structură a sistemului în care se prezintă la un nivel mai abstract ce module intră în acest sistem și cum ele se interconectează
2) Schema electrică pricipială, care cuprinde toate componentele (piesele) din sistem. Schema electică se face conform cerințelor STAS. În cadrul proiectului dat proiectarea cablajului imprimat nu se cere.


3) Scheme-bloc a algoritmului - care descriu algoritmul de funcționare

Listingul programului se formateaza cu font ”Arial - 10, Row interval = 1” și se anexează la raport.
Funcționarea sistemului se valideaza prin simulare în aplicatia Proteus (Implementarea în HW se face doar la dorința studentului, dacă dorește sa-și materializeze rezultatele proiectării)
-
Raport la proiect de an trebu sa contina titlu, introducerea, si schema de structura cu o mica descriere a componentelor sistemului (doar resursele relevante utilizate in sistem - nu tot DataSheet-ul) schema electrica si Soft-ul.
In partea de introducere este necesar de descris ideia de baza a sistemului, analiza sistemelor asemanătoare existente.
Schema de de structura este formata din blocuri si descrie intr-un mod abstract (vezi exemplu).
Schema electrica principiala trebu sa contina toate componentele sistemului (ne amintim de PAC...), proiectarea PCB-ului este optionala.
Parte Soft include codul pentru microcontroller si daca e cazul pentru codul pentru Host
-
-
În acest exemplu se folosește Timer/Counter0 în mod FastPWM. Generarea semnalului este controlată de întrarea de întreruperi INT0 (PD2).
Cînd la intrarea Int0 se aplică un front pozitiv în subrutina de prelucrare a întreruperii se pornește Timer/Counter0 - aplicînd impulsuri de ceas de la ceasul intern cu predivizorul 1/8. Atunci cînd se aplică la intrarea Int0 frontul negativ Timerul se oprește (CS02..CS00 = 0: No Clock) și generarea semnalelor se oprește.
Totodata Timerul/Contorul folosește întreruperea OutputCompare Match în care se face incrementarea registrului de comparare OCR0, ceia ce duce la schimbarea duratei impulsului generat.
-
Exemplu utilizare Timer/Counter în mod NORMAL. Timerul se alimenteaza cu impulsuri de ceas cu predivizorul 1/1024, și atinge valoarea maxima (255) la fiecare 10mSec. Atunci cînd timerul/contorul se supraîncarcă se apeleaza subrutina de întrerupere TimerOverflow în care noi reăncarcăm registrul contorului TCNT0 și scoatem la Portul B un contor.
În fișierul doc gasiți modul de calcul a volorii inițiale care trebuie șcrisă în registrul TCNT și a predivizorului pentru a obține intervalul necesar.
-
În acest exemplu puteți urmari funcționarea Timerului în mod FastPWM.
Modificând valoarea registrului OCR (registrul de comparare) se modifică durata impulsului la ieșire.
-
În acest exemplu Timer/Counter se folosește în mod FastPWM și genereaza semnale cu durata ce se schimba periodic.
Valorile care se înscriu în registrul de comparare se iau dintr-un tabel înscris în memoria FLASH.
Valorile acestea descriu o funcție sinusoidala, dar voi puteți modifica acest tabel pentru a obține un grafic arbitrar.
-
-
-
-
-
Exemplu utilizare ADC - achiziția semnalelor de la intrarea ADC0 ș ADC1, adunarea și conversia valorii din cod binar în cod zecimal și afișarea acestei sume pe un display 7-SEG. (vezi schema în proteus)
-
Exemplu utilizare ADC (inclusiv codul modificat la cur pe data 16.04.2020)
-
Exemplu utilizare ADC - achiziția semnalului de la intrarea ADC7, scalarea și conversia valorii din cod binar în cod zecimal și afișarea acestei sume pe un display 7-SEG. (vezi schema în proteus)
-
-
-
Exemplul dat demonstrează transmiterii datelor prin interfata serială. Aplicația este formată din 3 subrutine de intrerupere:
- intreruperea de la ADC, în care rezultatul conversiei se salvează în memorie
- intreruperea RxComplete de la receptorul UART. In această întrerupere se analizează octetul recepționat și daca el este egal cu caracterul ”?” atunci in memorie se pregatește un frame de ”răspuns”, se inițializează contorul cu lingimea frame-ului și se activează intreruperea ”USART data register Empty”
- Întreruperea ”USART data register Empty”, care se apelează în momentul eliberării unui spațiu în bufferul emițătorului. Ăn această întrerupere se transferă următorul byte din memorie (Frame-ul de răspuns) în registrul emițătorului. Totodată se decrementeaza contorul de octeți transmiși și dacă a fost atins sfîrșitul frame-ului - intreruperea aceasta se dezactivează (pînă la următorul request).
-
Gestionarea modulului UART a microcontrolerului din seria AVR.
Scopul lucrării: studierea modulului UART şi familiarizarea cu de funționare.
Implimentarea unui program de comunicare prin interfata serială a microcontrolerului AVR, care sa raspundă la cererile sosite cu un pachet de date format din 4 octeți : 1-startOfFrame, 2- HighByte, 3-LowByte, 4-EndOfFrame (StartOfFrame = 0x23, EndOfFrame = 0x0A ). Cimpurile de date HighByte si LowByte reprezinta datele capturate de la ADC (conform variantelor din Lab. nr.5.) astfel lucrarea curenta reprezintă o dezvoltare la lucrarea precedenta și se deoasebește prin faptul ca in lucrarea precedenta datele doar se descarcau untr-un port de I/O, dar in lucrarea curenta datele sunt transportate la cerere prin interfata serială.
-
