PMP Flashcards
Intrebari teorie
Ce este o întrerupere mascabilă?
Intreruperi care pot fi dezactivate/ignorate temporar
Afectate de flag-ul IF
De câte ori se apelează funcția loop într-un program Arduino?
Se apeleaza continuu.
Care este rolul registrului TIMSK?
Activeaza/dezactiveaza intreruperile asociate cu temporizatoarele si counterele
Care sunt evenimentele care pot genera întreruperi la un temporizator (timmer) AVR?
Timer Overflow
Compare Match
Eveniment extern (16 bits timers)
Care este rolul apelului attachInterrupt(3, fun, RISING)?
Indică că o funcție numită fun va fi chemată atunci când nivelul semnalului pe linia de întrerupere 3 face o tranziție de la LOW la HIGH (RISING edge).
Ce rol are registrul PINA?
Memoreaza starea pinilor din portul A (I/O).
Ce înseamnă baud rate (la comunicare serială UART)?
Numarul de biti transmisi intr-o secunda
Ce inseamnă “daisy chaining”?
“Daisy chaining” se referă la conectarea în serie a dispozitivelor sau componentelor, astfel încât semnalul sau datele să treacă printr-unul și apoi să ajungă la următorul într-un lanț continuu. Este o configurație în care fiecare dispozitiv este conectat la următorul, similar cu modul în care margaretele sunt legate una de alta.
Cum se numesc semnalele unei conexiuni I2C?
SDA - data
SCL - clock
Ce este PWM?
Pulse Width Modulation - este o tehnică de control care ajustează lățimea pulsului într-un semnal.
Ce este un tri-state buffer?
Dispozitiv electronic cu 3 stari: activ, inactiv, inalta impedanta
Câte linii de date sunt la 8086?
16
Câte canale poate sa serveasca controllerul 8237?
4
Cum se generează adresele pe 20 biți pentru un transfer DMA?
Se face prin combinarea a două surse de adrese:
8 biți inferiori (A0 - A7) furnizați direct de la perifericul 8237A
12 biți superiori (A8 - A19), dintre care 4 biți (A16 - A19) provin de la un registru I/O Latch și 8 biți (A8 - A15) de la un registru Addr Latch.
Dați un exemplu de memorie non-volatilă.
Memoria flash
HDD/SSD
CD/DVD
Care este diferența dintre un micro-procesor și un micro-controller ?
Microprocesorul este componenta centrală a unui sistem de calcul, în timp ce microcontrollerul este un sistem înglobat care integrează într-un singur cip un microprocesor, memorie și periferice, fiind proiectat pentru sarcini specifice și controlul dispozitivelor externe.
Câte locații adresabile are o memorie cu 13 biți de adresă?
2^13
Ce rol are registrul DDRA?
Este folosit pentru a seta direcția pinilor din portul A al microcontrolerului.
Care este efectul instrucțiunii lpm r16, Z?
r16 = Memorie_Program[Z];
Care este rolul funcției millis()?
Returneaza timpul in ms care a trecut de la pornirea programului
Ce este o variabilă “volatile”?
Variabila care se poate modifica intr-o functie de tip ISR si salvata in memoria RAM.
Ce valoare trebuie scrisă în registrul OCRn pentru a genera un semnal de 100Hz in modul CTC?
OCR0 =16.000.000 / (2Nf)-1
fOCn = 100
N = 1024 (prescalar)
Fclk_io = 16MHz=16000000Hz
OCR0 = 16000000/(21024100)-1= 77
Cum se generează un semnal PWM folosind temporizatoare?
Folosind functia analogWrite()
Comunicarea SPI este sincronă sau asincronă?
Sincrona
Pe câți biți sunt codificare adresele la I2C?
7 biti
Care este rolul funcției serialEvent()?
Functie definita de utilizator, care este apelata automat cand exista date disponibile in zona buffer
Pe câți biți este codificat rezultatul unei conversii ADC?
10 biti
Cum se calculeaza rezoluția de masurare la ADC?
Rezolutia de masurare = RANGE volti / 1024 unitati
Care este diferența dintre un motor DC si unul pas cu pas?
Motorul DC rulează continuu cu viteză variabilă, în timp ce motorul pas cu pas se deplasează în pași specifici, oferind control precis al poziției și fără senzori de poziție.
Care este dimensiunea de memorie adresabila la 8086?
Arhitectura de 16 biti => 2^16 adrese de memorie
Se pot lega la aceeași adresă două dispozitive periferice la 8086?
Doua dispozitive pot avea aceeasi adresa daca sunt de tipuri diferite
Unde se găsește tabela cu vectorii de întrerupere?
Tabela de vectori se afla in RAM
Care este diferența dintre transferurile DMA “fly-by” și “flow-through”?
Fly-by:
- Datele nu trec prin controllerul DMA
- 1 ciclu de magistrală per transfer
Flow-through:
- Datele trec prin controller
- Transfer cu preluare şi stocare: 2 cicluri/transfer
Care este rolul semnalului EOP?
Semnalul EOP indică sfârșitul unui pachet de date într-un sistem de comunicații sau într-un protocol specific.
Care este efectul instrucțiunii lpm r17, Z-?
r17 = Memorie_Program[Z];
Z = Z - 1;
Câți biți de adresă are o memorie de 4 GB?
32
Pe câți bytes se face scrierea în urma apelului instrucțiunii spm?
2
Secvența de cod
clr r16; out DDRA, r16;
out PORTA, r16
activează rezistențele PULL-UP (Da/Nu)?
Nu
Care este instrucțiunea care activează întreruperile la un micro-controller AVR?
SEI
La AVR, întreruperea de tip “Pin Change” se activează doar pe frontul descrescător al
semnalului legat la un pin (Da/Nu).
Nu
Se poate genera un semnal PWM cu ajutorul unui temporizator? (Da/Nu)
Da
Ce valoare trebuie scrisă în registrul OCRn pentru a genera un semnal de 25Hz in modul CTC,N=64?
OCR0 =16.000.000 / (2Nf)-1
OCR0 = 16000000 / (2* 64* 25) – 1 = 3199
Cum se seteaza directia unui pin la Arduino?
Cu ajutorul functiei pinMode
(pinMode(pin, INPUT), pinMode(pin, OUTPUT));
Care este efectul instructiunii lpm R16, z-?
Incarca un byte de la adresa la care pointeaza z in r16, apoi il decrementeaza pe z.
Cum putem introduce valoarea imediata 95 in r0?
Nu putem.
Ce indica flagul z din SREG?
Z-indicator al unui rezultat nul
Cum poate convertorul A/D sa dea un rezultat pe 10 biti daca registrii AVR au doar 8 biti?
Se folosesc 2 registrii ADCL si ADCH
Care sunt variantele de declansare a unei intreruperi externe?
-nivel 0 (LOW)
-schimbarea nivelului pinului(CHANGE)
-front descrescator(FALLING)
-front crescator(RISING)
Ce efect are EIMSK | = (1«n)?
EIMSK = EIMSK | (1«n)
Activarea punctuala a intreruperilor externe ;
Setarea la 1 a bitului corespunzator activeaza intreruperea.
Pe cati biti sunt temporizatoarele AVR?
Pe 8 sau pe 16 biti
Ce face functia analogRead?
analogRead(pin) citeste o val de pe un pin analogic.
Ce face functia tone()?
Tone() cauzeaza producerea de pulsuri cu factor de umplere 50% si frecventa variabila
Tone(pin, frequency)/tone(pin, frequency,duration)
Cum se semnaleaza sfarsitul unei transmisii I2C?
Cand SDA trece din 0 in 1 si SCL e 1
Cine scrie bitul ACK la I2C ?
Slave-ul, pentru a transmite master-ului ca a primit datele.
Care e rolul circuitului integrat intel 8237?
8237 (DMA) decide prioritatea in cazul cererilor simultane si ofera adresele de memorie pt transferul datelor.
Ce este polaritatea la comunicatii SPI?
CPOL- clock polarity
Stabileste daca primul front e crescator sau descrescator
Ce este latch-ul de adrese?
Latch-ul este folosit pentru a separa liniile de adresă și date de la AD0 la AD15.
De ce memoria DRAM are capacitate mai mare decat memoria SRAM?
O celula SRAM ocupa mai mult spatiu pe chip decat una DRAM, deoarece necesita mai multe parti si legaturi.
Ce e un transfer DMA fly-by ?
Transfer in care datele nu trec prin controller-ul DMA, intre Mem <-> I/O (1 ciclu de magistrala pe transfer)
Ce e un CPU ?
O unitate centrala de procesare este o masina logica ce poate executa programe de calculator.
Efectul executiei instructiunii ldi r17, 20?
Se incarca in registrul r17 valoarea imediata 20.
Cum se activeaza sistemul de intreruperi AVR?
Prin instructiunea SEI()
Care este rolul semnalului ALE la 8086?
ALE (Address Latch Enable) – indica disponibilitatea unei adrese valide pe liniile de date/adrese
Care sunt cele 3 adrese asociate unui port de 8 biti AVR?
PORTx (registrul de date)
DDRx(registrul de directie)
PINx(starea pinilor de intrare)
Care e dimensiunea tabelei vectorului de intreruperi la 8086?
1KB
Care e dimensiunea memoriei program la ATMega 2560?
256KB
Ce este un registru de comparatie la un temporizator?
Registru de comparare(OCR0)-continutul lui e comparat cu continutul registrului de numarare(TCNT0) => folosita la generarea diferitelor semnale
Care e rolul registrului TIMSKx?
Rolul de a activa sau dezactiva întreruperile bazate pe temporizator.
Cum se poate genera un semnal PWM cu Arduino?
Prin functia analogWrite(pin, value), unde value e factorul de umplere.
Ce stari se pot configura pentru un controller SPI?
Master/Slave
Ce este “framing error” la receptia UART?
Cand se detecteaza valoarea zero in pozitia unde trebuie sa fie bitii de stop.
Parity error – daca bitul de paritate calculat la destinatie nu corespunde cu bitul P
Rolul registrului UBRRx la AVR?
UBRRx (UBRRxH+UBRRxL) - registri de control ai frecventei.
Care e efectul liniei de cod: SREG &= 0b01111111?
Dezactiveaza bitul 8 din registrul SREG (bitul de activare globala a intreruperilor) => dezactivarea intreruperilor
Care e structura unui pachet de adrese la I2C?
7 biti de adresa, 16 adrese rezervate => 112 adrese disponibile
Rolul semnalului READY la 8086?
Folosit pentru a extinde ciclul, in cazul in care un dispozitiv nu e capabil sa raspunda cererii procesorului in ciclul standard.
Cand e ‘0’ UP insereaza wait-uri in ciclul de procesor
Eroarea in ldi r12, 45?
In registrul r12 nu se poate incarca o valoare imediata, acestea se incarca in registrii r16-r31.
Ce este un microcontroller?
Microcontroller = circuit integrat care are multiple componente ale unui sistem cu microprocesor
Multiple componente ale unui sistem cu microprocesor sunt incluse in acelasi circuit integrat – Microcontroler (RAM< ROM pt date si program, unele periferice)
Efectul executarii instructiunii st -x, r20
Se decrementeaza X, apoi se incarca valoarea din registrul r20 in locatia de memorie
Efectul instructiunii CLI pe intreruperi nemascabile la 8086?
CLI (Clear intrrerupt flag) seteaza flagul IF pe 0 (intreruperile nemascabile sunt activate)
IF=1 activeaza intreruperile mascabile.
Continutul registrului SREG la AVR?
SREG contine informatii despre starea sistemului si rezultatul unor operatii.
De ce instructiunea in r17, PORTA ar putea fi gresita?
Deoarece aceasta instructiune citeste starea registrului PORTA, setata din interiorul microcontrollerului prin program
Ce e un prescaler?
Divizor de frecventa pt semnalul de ceas de intrare
Cum poate un timer genera un semnal PWM ?
Prin intreruperi. Se calculeaza timpul proportional cu factorul de umplere, iar la momentul intreruperii se schimba starea.
Cum se poatea atasa o rutina de tratare a intreruperii bazata pe temporizator la Arduino?
attachIntrrerupt(function)
Rolul semnalului BHE la 8086 ?
BHE (Byte High Enable) - indica transferul de date folosind magistrala de date D8-D15
Ce se intampla cand 8086 primeste o cerere de HOLD?
8086 termina ciclul de magistrala current, intra in starea HOLD si cedeaza controlul magistralei catre DMA
Ce tip de pini sunt MOSI, MISO, SCLK, SS la SPI Master?
MOSI – output SCLK output SS – output MISO – input
Care e structura unui pachet UART?
St: I bit de start, cu valoarea ‘0’
D: bitii de date (5…9)
P: 1 bit de paritate
Sp: 1 sau 2 biti de stop, cu valoarea ‘1’
Rolul registrului UDRx la AVR?
Citire date receptionate/scriere date pt transmis
Efectul liniei de cod PORTA ^= 0b11111111
Inverseaza toti bitii din PORTA
Cati biti de adresa sunt intr-un pachet de adresa I2C?
7 biti de adresa
Ce este o punte H?
Un circuit pentru controlul pornirii-opririi si a directiei unui motor
Ce se intampla in interiorul DRAM la primire semnal RAS?
La primirea semnalului :
RAS – adresa randului (A8:A15) este plasata pe pinii de adresa si memorata
CAS – adresa coloanei (A0:A7) este plasata pe pinii de adresa
Care este eroarea in instructiunea urmatoare: ori r2, 0x1F?
Pe registrul r2 nu sunt premise operatii cu un imediat. Sun premise doar pe registrele (r16-r31)
Care sunt componentele esentiale ale unui sistem cu microprocesor?
Memorii RAM-ROM(Flash), dispositive periferice(Timer, Numarator, Controller pt comunicatii seriale/paralele)
Cati registrii are un microprocesor AVR?
32 registrii de uz general
Ce este un microcontroller?
Un circuit integrat care are multiple componente ale unui sistem cu microprocessor (memorie RAM, ROM – pt program si date + unele dispositive periferice)
Cum se activeaza rezistentele Pull-Up la Arduino?
Prin scrierea unei valori HIGH pe pinul de intrare (pinMode(pin,INPUT_PULLUP);)
Care este efectul instructiunii ld r16, -y?
Se decrementeaza Y, si apoi se incarca valoarea de la adresa respectiva in r16.
Ce indica flag-ul C din SREG?
C este flag-ul de CARRY
Cum poate interfata UART la AVR sa receptioneze date pe 9 biti daca registrii AVR au doar 8 biti?
Prin bitul1 al registrului de control si stare UCSRnB
Cum se poate dezactiva o intrerupere fara a dezactiva tot sistemul de intreruperi?
dettachInterrupt(interrupt) (interrupt-numarul intreruperii)
Ce se gaseste la inceputul memoriei de program AVR?
La inceputul memoriei de program AVR se gaseste sectiunea “Application Flash Memory”
Ce effect are bool b = PINA &2?
Daca PINA e egal cu 2, atunci b e true, altfel false.
Ce este intreruperea OVERFLOW la un temporizator AVR?
Cand numaratorul se satureaza (ajunge la 0xFF), o intrerupere de tip OVERFLOW este generata prin setarea flag-ului TOV0 si numaratorul reporneste de la ‘0’
De ce trebuie evitata utilizarea pinilor digitali 0 si 1 la Arduino?
Deoarece sunt pinii RX si TX, iar daca sunt folositi pt operatii generale de I/O digital, poate fi impiedicata comunicarea (nu se mai receptioneaza sau transmit datele)
Ce este functia “analogReference()”?
Configureaza tensiunea de referinta care va fi folosita pentru intrarea analogica (in cazul conversiei AD)
Ce este o configuratie “OpenCollector”?
Iesire a unor circuite integrate, care se comporta ca un intrerupator, fie conectata la GND sau deconectata.
Care este rolul circuitului integrat Intel 8259?
Intel 8259 este un controller de intreruperi care informeaza procesorul de cererea de intreruperi si ii transmite numarul vectorului pentru intreruperea ceruta
Care e rolul semnalului SS la comunicatia SPI?
Slave Select are rolul de active dispozitivul Slave de catre Master (active pe 0)
De ce memoria SRAM e mai rapida decat DRAM?
Pentru ca SRAM nu face reimprospatare (refresh) a datelor precum DRAM
Ce este un transfer DMA “flow through”?
Transfer in care datele trec prin controller-ul DMA, fiind un transfer cu preluare si stocare (2 cicluri/transfer); Mem-Mem, I/O – I/O
Cati biti de address poate genera controller-ul DMA 8237?
16 biti de adresa
Cum se ataseaza o rutina de tratare a intreruperii bazate pe temporizator cu Arduino?
Timer1.attachInterrupt (functie-intrerupere).
Ce este un “precharge voltage”?
Ajuta la injumatatirea timpului de tranzitie la memorii si astfel obtinem o memorie mai rapida
Ce este un bit de paritate?
Bit folosit in comunicarea seriala si retine daca in pachetul de date transmis este un numar par sau impar de biti de 1
Cum se seteaza tensiunea de referinta pt conversia A-D(Arduino)?
analogReference(x) – seteaza tensiunea maxima cu care sa efectuam masuratori
X = DEFAULT, INTERNAL, EXTERNAL. INTERNAL2V56, INTERNAL11
Ce face procesorul 8086 la primirea semnalului HOLD?
Procesorul intra in starea de eliberare a magistralei
Cum se compune adresa fizica la 8086?
Adresa efectiva de offset (16 biti) + adresa de segment (16 bitit)
Care e rolu registrului ADCH?
ADCH stocheaza partea superioara a conversiei A/D
Ce functie trebuie apelata si cu ce parametrii pentru un semnal cu factorul de umplere de 33%?
analogWrite(pin, 84)
0% = 0
100% = 255
Ce trebuie pus pe magistrala 8086 la generarea semnalului INTA?
Adresa vectorului de tartare a intreruperilor
Care este dimensiunea maxima adresabila a memoriei RAM la AVR?
64KB
Cum se semnaleaza inceperea unei transmisii I2C?
Se semnaleaza prin modificarea SDA din ‘1’ in ‘0’ si mentinerea SCL pe ‘1’
Cati biti are un pachet UART?
Poate avea 5/6/7/8/9 biti de date
Ce este faza in cazul comunicatiei SPI?
Faza semnalului SCLK este redata de CPHA care stabileste in ce ordine se face deplasarea si prelucrarea datelor
Cand poate un slave sa transmita date catre master in cazul SPI?
Slave : master -> MISO este active
Master:Slave ->MOSI active
De cate perioade de ceas este necesar pentru o conversie A/D?
Aproximativ 13 perioade de ceas
Care este rolul instuctiunii LPM?
LOAD FROM PROGRAM MEMORY – incarca date din memoria programului
Ce effect are atribuirea PORTA | = (1«5)?
Se face SAU intre PORTA si 1«5
Se seteaza al cincilea bit din PORTA
Care este efectul instructiunii st y+, r16?
y<-r16 ; y<-y+1 ; post incrementare
Cum se semnaleaza inceperea unei transmisii UART?
Inceperea transmisiei se semnaleaza utilizand bitii de start(1) si stop(1-2) care sunt transferati cu
fiecare pachet de date indicand inceputul si sfarsitul acestuia.
Cati biti de adresa sunt folositi in cazul magistralei I2C?
7 biti de adresa
Cate dispozitive I/O pot fi legate la magistrala 8086?
16 data bus lines => 2^16?
Care este diferenta dintre reti si ret?
Reti – produce revenirea din ISR; reti=sei+ret
Ret – face return din procedura – ia adresa de return din stiva si scrie la aceasta adresa
Cati biti are un registru AVR
8 biti
Cati biti de adresa poate sa genereze controllerul DMA 8237?
Poate sa genereze 16 biti de adresa
Cate canale de intrerupere poate sa serveasca controllerul 8259?
3 canale de intrerupere
Ce contine registrul SREG?
Contine date despre starea programului si rezultatul unor operatii.
Cate dispozitive pot fi legate pe o magistrala daca fiecare dispozitiv cere o adresa de 6 biti?
64 de dispozitive
Care este intervalul de valori returnat de functia analogRead?
0…1023
Ce rol are registrul ADMUX?
Este registru de selectie: cu REFS1:0 se selecteaza tensiunea de referinta, iar cu MUX4:0 se selecteaza intrarile.
Ce face 8086 la primirea semnalului INTR?
INTR(Interrupt Request) - procesorul verifica daca recunoaste intreruperea si seteaza INTA cu valoarea corespunzatoare.
Care este rolul registrului OCR0?
In OCR0 este o valoare data de utilizator. Cand TCNT ajunge cu numaratoarea la acea valoare se produce o intrerupere si TCNT are din nou valoarea 0.