Programare prin usb Attiny2313. Controlul motorului pas cu pas prin LPT, ATtiny2313 și driver de casă. Gata! Acum puteți folosi convertorul

Un driver de motor cu tranzistor de casă poate fi folosit nu numai pentru a controla motoarele cu comutator de curent continuu, ci și pentru a controla motoarele pas cu pas. Motoarele pas cu pas pot fi folosite pentru a face mașini de casă, roboți și alte lucruri interesante. Motoarele cu perii pot fi, de asemenea, folosite în aceste scopuri, precum și motoarele asincrone, dar motoarele pas cu pas pentru astfel de aplicații au avantajele: 1) precizie, 2) nu este nevoie de feedback, 3) cuplu mare și 4) viteză mică. Puteți începe să stăpâniți motoarele pas cu pas cu unele mici ieftine, cum ar fi acestea:

Figura 1 - Motor pas cu pas

Acest motor are 4 ieșiri, 2 dintre ele merg la o înfășurare și celelalte 2 merg la cealaltă. Rotorul motorului se va roti dacă anumite tensiuni sunt aplicate anumitor terminale într-o anumită secvență. Există mai multe moduri de a controla un motor pas cu pas, unul dintre ele este ilustrat în figură:

Figura 2 - Exemplu de control al motorului pas cu pas

Microcontrolerul poate controla driverul astfel încât rotorul motorului pas cu pas conectat la acest driver să se rotească; pentru aceasta, puteți, de exemplu, să stocați secvențe de stări ale pinului într-o matrice și să le iterați unul câte unul cu frecvența necesară și în direcția dorită. Sau puteți rula programul de control pe un computer și utilizați microcontrolerul pentru a converti codul serial într-un set de stări ale pinului microcontrolerului. Portul LPT este paralel și nu este necesar pentru a controla motorul pas cu pas, dar puteți face acest lucru, de exemplu, pentru a nu reface circuitul (efectuat anterior) pentru reprogramarea microcontrolerului:

Figura 3 - ATtiny2313 și portul LPT


De asemenea, driverul nu trebuie refăcut:

Figura 4 - Driver motor


Firmware-ul pentru ATtiny2313 împreună cu un proiect pentru WinAVR poate fi descărcat. Programul (împreună cu inpout32.dll) pentru controlul motorului poate fi descărcat; pentru acest program, ca și pentru cel precedent, este necesar fișierul inpout32.dll, care ar trebui să fie localizat în același folder cu programul. Acest program poate fi folosit nu numai pentru a controla un motor pas cu pas. În general, este potrivit pentru controlul oricărui driver la o frecvență joasă. Puteți vedea totul în acțiune în videoclip:

Actualizat 19.09.2015. Salutare tuturor. În ultimul articol, ne-am uitat la un dispozitiv pentru restaurarea microcontrolerelor Atmega fusebit doctor (pasul nr. 7). Astăzi ne vom uita la un alt dispozitiv la fel de important și chiar mai util UART-USB convertor bazat pe microcontrolerul ATtiny2313. Dacă sunteți interesat de electronică și programare aplicată, atunci acest dispozitiv va deveni instrumentul potrivit pentru configurarea dispozitivului pe care îl proiectați și pentru a transfera date pe un computer. Puteți afla care este interfața UART în articolul nr. 40. Dar avem nevoie de convertorul în sine pentru a putea conecta computerul și dispozitivul nostru pentru configurare și transfer de date. O astfel de nevoie apare întotdeauna pentru un dezvoltator, așa că fiți pregătit să achiziționați unul. Desigur, este foarte ușor să transferați pe un port COM (RS232) sau LPT, dar nu toată lumea are acest port, de exemplu laptopuri.

Există multe convertoare, de exemplu pe circuitul MAX232 (RS232-UART) și altele. Dar ne vom uita la un convertor bazat pe microcontroler. Dacă ești interesat de electronică și programare aplicată, atunci acest dispozitiv va deveni instrumentul tău fidel. Mai jos este o diagramă a convertorului. Acest circuit și driverele au fost preluate din următoarea resursă http://www.recursion.jp/prose/avrcdc/, care descrie diverse opțiuni pentru transferul de date pe un PC, precum și drivere și surse deschise furnizate de un anume autor Osamu Tamura.

În stânga este un convertor UART - USB. După cum putem vedea din diagrama de pe ea, există linii de transmisie/recepție a datelor TXD/RXD, rezistențele R4 sunt un limitator de curent, R5 este protecție TXD de la un scurtcircuit la masă, diodele Zener din diagramă sunt pentru protejarea liniilor de semnal, rezistență R1 este sursa de alimentare pe linie, C3 netezește interferența, R2 R3 - limitatoare de curent. Microcontrolerul în sine ATtiny2313 ca convertor. Viteza de transmisie este configurată automat și variază între 600 - 38400 bps, standard de protocol 8N1. Asamblarea nu este dificilă; toate sursele, șabloanele de tablă, totul este disponibil gratuit pe această resursă. Mai jos sunt fotografii cu asamblarea mea a acestui dispozitiv:

Diagrama conține o interfață pentru programarea în circuit (5 pini în partea de jos și 1 lângă microcontroler).

Voi adăuga câteva informații pe cont propriu pentru a verifica funcționalitatea unor părți:
- o diodă zener, pentru a-i verifica integritatea, anodul este la minus, - plus prin 10 kOhm la catod, aplicăm 5 V - ar trebui să obținem căderea de tensiune specificată;
- verificați generatorul de frecvență de ceas - aici trebuie să setați siguranța CKOUT în microcontroler, adică. permiteți undei pătrate a oscilatorului principal să fie transmisă la cuțitul 6 (micro ATtiny2313 – PD2). Măsurăm frecvența. De asemenea, puteți măsura tensiunea, care ar trebui să fie = jumătate de putere = 2,86 V. (am avut asta). Amintiți-vă că MK funcționează de la un generator extern, așa că mai întâi încărcați programul și apoi schimbați siguranțele la un generator extern.

Următorul pas în configurarea acestui dispozitiv este să instalați driverul pe computer - „Virtual Communications Port” pentru Win - descărcați arhiva avrcdc_inf.zip. Această arhivă conține 4 foldere: raw - pentru (Windows 2000/XP), w2k - pentru Windows 2000 (numai în modul în bloc), xpvista7 - pentru Windows XP/Vista/7 x32, vista64 - pentru Windows Vista x64. Driverul este selectat după conectarea dispozitivului nostru. În general, schema standard. Apoi, pentru a descărca firmware-ul pe controlerul nostru, descărcați cdc232.2011-06-24.zip, unde selectăm firmware-ul pentru controlerul nostru. Setăm siguranțele la H = 0xCD, L = 0xFF. Totul este gata. Mai jos este o diagramă a interacțiunii dintre convertor și PC.

Dispozitivul funcționează în felul următor: atunci când este conectat la un PC, apare un port COM virtual. Apoi, transmisia are loc prin interfață RS232C , fara linii de control DTR, DTS, RTS, CTS.
După aceasta, trebuie să verificați funcționalitatea utilizând programul Terminal - descărcați-l acolo. Rezultatul funcționării convertorului poate fi vizualizat folosind exemplul DoctorAVR și un controler de colectare a datelor (logger).

În următorul articol nr. 9, vom lua în considerare baza barierei pe un microcontroler, software-ul și hardware-ul. Asta e tot. Pa tuturor; la revedere tuturor.

Programator USBASP - dispozitiv, pinout, conexiune, firmware

Astăzi ne vom uita la modul în care, ieftin și rapid, să programăm orice microcontroler AVR care acceptă modul de programare în serie (interfață ISP) prin portul USB al computerului. Ca programator vom folosi un programator foarte simplu și popular USBASPși ca program - AVRdude_Prog V3.3, care este destinat programării AVR MK.

Programator USBASP

Pentru a programa un microcontroler trebuie să aveți două lucruri:
- programator
— software adecvat pentru înregistrarea datelor în MK
Unul dintre cei mai simpli, mai populari și în miniatură programatori pentru AVR este Programator USBASP, creat de germanul Thomas Fischl.
Există multe soluții de circuite diferite pentru acest programator; puteți asambla singur programatorul sau îl puteți cumpăra (cost 2-3 dolari). Când îl asamblați singur, rețineți că programatorul asamblat va trebui să fie flash cu un programator terță parte.

Ne vom uita la cea mai sofisticată versiune a programatorului:


Caracteristicile programatorului:
- funcționează cu diverse sisteme de operare - Linux, Mac OS, Windows (pentru sistemul de operare Windows, pentru ca programatorul să funcționeze, trebuie să instalați drivere - arhiva la sfârșitul articolului)
— viteza de programare până la (puteți seta singur viteza de programare, de exemplu în AVRDUDE_PROG) 375 (5) kb/sec
- are o interfață ISP cu 10 pini (conform standardului ICSP cu pinout cu 10 pini)
- acceptă două tensiuni de alimentare a programatorului - 5V și 3,3V (nu toate porturile USB ale PC-ului funcționează la 5 volți)
— alimentat de la portul USB al computerului, are protecție de curent încorporată (siguranță cu resetare automată de 500 mA)

Scopul jumperilor:
conector JP1- destinat pentru intermiterea microcontrolerului programatorului (pentru intermitent, trebuie să închideți contactele)
conector JP2- tensiunea de alimentare a programatorului - 5 volți sau 3,3 volți (implicit - 5 volți, ca în fotografie). Un microcontroler programabil, sau structura în care este instalat, cu un consum de curent de 300-400 mA, poate fi alimentat de la programator; în acest scop, conectorul are o ieșire de +5V (VCC).
conector JP3- determină frecvența ceasului de date SCK: deschis - frecvență înaltă (375 kHz), închis - frecvență joasă (8 kHz)
Mai multe despre conectorul JP3
Jumper JP3 este proiectat pentru a reduce viteza de scriere a datelor pe microcontroler. Dacă microcontrolerul are o frecvență de ceas setată la mai mult de 1,5 MHz, jumperul poate fi deschis, iar viteza de programare este mare. Dacă frecvența ceasului este mai mică de 1,5 MHz, este necesar să scurtcircuitați pinii jumperului - reduceți viteza de programare, altfel nu va fi posibilă programarea microcontrolerului. De exemplu, dacă programăm microcontrolerul ATmega8 (în principiu, aproape toate microcontrolerele AVR sunt configurate pentru o frecvență implicită de ceas de 1 MHz), care are o frecvență implicită de ceas de 1 MHz, va fi necesar să închidem pinii jumper (ca in fotografie). Probabil că este mai bine să ții acest jumper permanent închis, astfel încât să uiți de existența lui și să nu fii chinuit de întrebarea de ce microcontrolerul nu clipește.

Dacă îl folosești pe cel postat pe site, atunci poți uita de jumper

Programatorul este suportat de următorul software:
— AVRdude
— AVRdude_Prog
- Bascom-AVR
— Khazama AVR Prog
- eXtreme Burner AVR

Lucrul cu un astfel de programator este foarte simplu - conectați pinii corespunzători ai programatorului la microcontroler, conectați-vă la portul USB al computerului - programatorul este gata de utilizare.
Pinout cablu programator USBASP cu 10 pini :


1 - MOSI - ieșire de date pentru programare în serie
2 - VCC - ieșire +5 (+3,3) Volți pentru alimentarea unui microcontroler programabil sau a unei plăci programabile de la portul USB al computerului (curent maxim 200 mA - pentru a nu arde portul USB)
3 - NC - nu este folosit
4 - GND - fir comun (minus putere)
5 - RST - se conectează la pinul RESET al microcontrolerului
6 - GND
7 - SCK - ieșire ceas de date
8 - GND
9 - MISO - intrare de date pentru programare serială
10 - GND

Instalarea driverelor pentru programatorul USBASP

Instalarea driverului pentru programatorul USBASB este foarte simplă:
- conectați programatorul la portul USB al computerului și un nou dispozitiv „USBasp” cu un triunghi galben și un semn de exclamare în interior va apărea în managerul de dispozitive, ceea ce înseamnă că nu sunt instalate drivere
- descărcați și dezarhivați fișierul „USBasp-win-driver-x86-x64-ia64-v3.0.7”
- rulați fișierul „InstallDriver” - driverele pentru programator vor fi instalate automat
- verificați managerul de dispozitive - triunghiul galben ar trebui să dispară (dacă nu, faceți clic dreapta pe dispozitivul "USBasp" și selectați "Actualizare"
— programatorul este gata de utilizare

Biți FUSE la programarea USBASP AVR:

Arhiva „usbasp.2011-05-28” conține următoarele foldere:
= BIN:
- win-driver - drivere pentru programator
— firmware — firmware pentru microcontrolere Mega8, Mega88, Mega48
= circuit - schema de circuit a unui programator simplu în PDF și Cadsoft Eagle

Când afișați un programator chinezesc, vă recomand să instalați bitul FUSE CKOPT. CKOPT este legat de viteza maximă a ceasului. În mod implicit, CKOPT este resetat și funcționarea stabilă a microcontrolerului programator atunci când se utilizează un rezonator cu cuarț este posibilă numai până la o frecvență de 8 MHz (iar microcontrolerul programator funcționează la o frecvență de 12 MHz). Setarea bitului CKOPT FUSE crește frecvența maximă la 16 MHz. Chinezii nu ating acest bit FUSE, ceea ce duce destul de des la defectarea programatorului (de obicei sistemul nu detectează programatorul).

Arhivă „USBasp-win-driver-x86-x64-ia64-v3.0.7” este destinat instalării driverelor, așa cum este indicat în articol

(518,9 KiB, 13.188 accesări)

(10,9 MiB, 24.942 accesări)

Programatorul USBASP descris în articol, flashed cu cea mai recentă versiune a programului, testat în funcțiune, cu jumperi și jumperi instalați, îl puteți achiziționa în magazinul online MirMK-SHOP

AVR-CDC este conceput pentru a converti date RS232 și USB folosind microcontrolere AVR, fără a utiliza niciun cip USB specializat. Această tehnologie se bazează pe protocoalele V-USB (Software-USB pe AVR) și CDC (Communication Device Class) ale Object Development. AVR-CDC permite unui computer să interacționeze cu dispozitivele USB printr-un port COM virtual. În acest proiect vreau să aduce mai multe opțiuni pentru implementarea unui port COM virtual pe microcontrolere AVR.

CDC-232 creează un port COM virtual pe un PC care nu are un port RS-232C fizic. Oferă o conexiune RS-232C (fără linii de control) după conectarea dispozitivului și instalarea driverului.

Utilizare

Scrieți programul în AVR, asamblați circuitul și conectați dispozitivul la portul USB al computerului. Instalați driverul pentru sistemul de operare Windows. Conectați-vă la dispozitiv prin portul COM virtual care apare utilizând software-ul terminalului sau aplicația dvs. Liniile de control (DTR, DTS, RTS, CTS) nu sunt utilizate de aplicația gazdă. Programați aplicația terminală ca „fără control al fluxului”.

Sistemul de operare Windows vă va solicita să instalați din nou driverul când vă conectați la un alt port USB. Apoi driverul instalat anterior va fi detectat automat. După aceasta, va fi atribuit un alt număr de port COM. Dacă introduceți numărul portului serial în AVR (actualizare cu fișierul usbconfig.h modificat), atunci veți obține același port COM pe orice port USB. Cu toate acestea, nu puteți conecta mai multe dispozitive CDC la același port serial.

Înainte de a deconecta dispozitivul, închideți manual portul COM folosind software-ul terminalului sau aplicația dvs. În caz contrar, nu vă veți putea conecta din nou la dispozitiv din cauza coruperii indexului fișierelor. Apoi, reporniți software-ul terminalului sau aplicația dvs. Treceți la modul de transfer rapid folosind fișierul „lowcdc.vbs”. Acest lucru vă va permite să obțineți o rată de transfer de date mai mare de 9600 bps.

Test ciclic pentru versiunea ATtiny45

Soluții de circuit

Aceste circuite sunt proiectate pentru ATtiny45/85, ATtiny2313/AT90S2313 și ATmega8/48/88/168. Firmware-ul lor poate fi descărcat prin conectorul ISP. LED-ul roșu scade tensiunea USB de la 5V la 3,3V, apoi este alimentat la AVR. Curentul este de aproximativ 10mA și nu este suficient pentru a conduce un alt circuit. Când vă conectați la un alt microcontroler, conectați pinul Gnd și, de asemenea, încrucișați TxD și RxD. R4 limitează scurgerea curentului atunci când tensiunea de alimentare a microcontrolerului Vcc este de 5V. Rezistorul nu poate fi folosit dacă Vcc este același. R5 protejează pinul TxD dacă este scurtcircuitat la Gnd. Prin urmare, este posibil să nu fie nevoie să utilizați ambele rezistențe R4 și R5 dacă vă conectați la driverul RS-232C prin MAX232. Utilizați un oscilator cu cristal. Deși un rezonator ceramic funcționează excelent în cele mai multe cazuri, devine instabil atunci când deviația de frecvență crește.

ATtiny45/85 folosește un oscilator RC intern și PLL. Este calibrat printr-un semnal USB atunci când dispozitivul este conectat. Interfața universală asincronă UART este implementată în software. Acest lucru nu este suficient pentru transferul de date de mare viteză. Dacă TxD și RxD sunt inversate (actualizare cu opțiunea DUART_INVERT), vă veți putea conecta direct la linia RS-232C. Viteza 1200 – 4800bps, protocol 8N1.


Exemplu ATtiny45 folosind conectorul mini-B

ATtiny2313/AT90S2313 are memorie de program de 2 kB. Deși rata de transmisie este configurată automat, unele caracteristici nu sunt utilizate. Viteza 600 – 38400bps, protocol 8N1.


CDC-232 pentru ATtiny2313-20

Interfață asincronă universală internă UART ATmega8/48/88 configurabilă prin PC. Controlul fluxului (RTS/CTS) este acceptat.

Viteză 600 – 38400 bps, date 7/8, paritate N/E/O, stop 1/2.


Conectarea la un canal RS-232C necesită inversarea polarității și selectarea nivelurilor TxD și RxD. Utilizați un IC dedicat, cum ar fi MAX232. Îl puteți înlocui cu acest circuit simplu.

Când microcontrolerul țintă are o tensiune de alimentare Vcc diferită, curentul se scurge prin liniile de semnal. Acest lucru va avea ca rezultat distorsiunea semnalului sau controlul microcontrolerului fără alimentare. Această schemă este imperfectă, dar potrivită pentru majoritatea cazurilor.

Lista radioelementelor

Desemnare Tip Denumire Cantitate NotăMagazinBlocnotesul meu
CDC-232 pentru ATtiny45
U1 MK AVR pe 8 biți

ATtiny45

1 La blocnotes
LED1 Dioda electro luminiscentaroșu1 La blocnotes
R1 Rezistor

1,5 kOhm

1 La blocnotes
R2, R3 Rezistor

68 ohmi

2 La blocnotes
R4 Rezistor

10 kOhm

1 La blocnotes
R5 Rezistor

470 ohmi

1 La blocnotes
C1 Condensator0,1 uF1 La blocnotes
CN1 conector USBXM7B-04421 La blocnotes
CDC-232 pentru ATtiny2313
U1 MK AVR pe 8 biți

ATtiny2313

1 La blocnotes
LED1 Dioda electro luminiscentaroșu1 La blocnotes
R1 Rezistor

1,5 kOhm

1 La blocnotes
R2, R3 Rezistor

68 ohmi

2 La blocnotes
R4 Rezistor

10 kOhm

1 La blocnotes
R5 Rezistor

470 ohmi

1 La blocnotes
C1, C2 Condensator18 pF2 La blocnotes
C3 Condensator0,1 uF1 La blocnotes
X1 Rezonator cu cuarț12 MHz1 La blocnotes
CN1 conector USBXM7B-04421 La blocnotes
CDC-232 pentru ATmega8/48/88
U1 MK AVR pe 8 biți

ATmega8

1 La blocnotes
LED1 Dioda electro luminiscentaroșu1 La blocnotes
R1 Rezistor

1,5 kOhm

1 La blocnotes
R2, R3 Rezistor

68 ohmi

2 La blocnotes
R4 Rezistor

10 kOhm

1 La blocnotes
R5 Rezistor

470 ohmi

1 La blocnotes
C1, C2 Condensator18 pF2 La blocnotes
C3 Condensator0,1 uF1 La blocnotes
X1 Rezonator cu cuarț12 MHz1 La blocnotes
CN1 conector USBXM7B-04421 La blocnotes
Conexiune la canalul RS-232C
Î1 Tranzistor bipolar

Astăzi vom încerca să folosim un microcontroler mai simplu ATtiny2313și conectați la acesta un afișaj LCD cu caractere care conține două linii de 16 caractere.

Vom conecta afișajul în modul standard de 4 biți.

În primul rând, să începem, desigur, cu microcontrolerul, deoarece suntem deja foarte familiarizați cu afișajul din lecțiile anterioare.

Să deschidem fișa de date a controlerului ATtiny2313și să-i vedem pinout

Vedem că acest controler există în două tipuri de cazuri, dar din moment ce l-am primit într-un pachet DIP, vom lua în considerare această versiune specială a carcasei și, în principiu, nu diferă mult, cu excepția aspectului, deci cum numărul de picioare este același - 20 fiecare.

Întrucât sunt 20 de picioare față de cele 28 de picioare ale controlerului ATMega8, la care am lucrat tot timpul și la care vom continua, atunci, în consecință, vor fi și mai puține posibilități.

În principiu, tot ce avea ATmega8 este aici, singurul lucru este că sunt mai puține gheare de port. Dar din moment ce sarcina pe care ne ocupăm este să încercăm să-l conectăm prin magistrala SPI cu un alt controler, acest lucru nu ne deprimă prea mult.

Există și alte diferențe, dar sunt minore și le vom cunoaște după cum este necesar.

Să punem cap la cap un circuit ca acesta (click pe imagine pentru a mări imaginea)

Display-ul este conectat la pinii portului D. PD1 și PD2 sunt la intrările de control, iar restul sunt conectați la pinii modulului de afișare D4-D7.

Să creăm un proiect cu numele TINY2313_LCD, să transferăm totul în el, cu excepția modulului principal din proiect pentru conectarea afișajului la Atmega8.

Desigur, unele lucruri vor trebui refăcute. Pentru a face acest lucru, trebuie să studiați cu atenție ce picior este conectat la ce. Magistrala E a afișajului este conectată la PD2, iar magistrala RS este conectată la PD1, așa că haideți să facem modificări fișierului lcd.h

#definie1PORTD|=0b0000 01 00 // setează linia E la 1

#definie0PORTD&=0b1111 10 11 // setează linia E la 0

#definirs1PORTD|=0b00000 01 0 // setați linia RS la 1 (date)

#definirs0PORTD&=0b11111 10 1 // setați linia RS la 0 (comandă)

După cum putem vedea din fontul aldine, nu am avut schimbări atât de drastice.

Acum intrări de informații. Aici folosim picioarele PD3-PD6, adică sunt deplasate cu 1 punct față de conexiunea la Atmega8, așa că vom corecta și ceva în fișier lcd.cîn funcțiune trimite jumătate de octet

PORTD&=0b 1 0000 111; // ștergeți informațiile de pe intrările DB4-DB7, lăsați restul în pace

Dar asta nu este tot. Anterior am deplasat datele transmise cu 4, dar acum, din cauza modificărilor de mai sus, va trebui să le deplasăm doar cu 3. Prin urmare, în aceeași funcție vom corecta și prima linie.

c<<=3 ;

Asta sunt toate schimbările. De acord, nu sunt atât de grozavi! Acest lucru se realizează prin faptul că încercăm întotdeauna să scriem cod universal și să folosim substituții macro. Dacă nu am fi petrecut timp cu asta la un moment dat, ar fi trebuit să corectăm codul în aproape toate funcțiile bibliotecii noastre.

În modulul principal, nu atingem inițializarea portului D; lăsați întregul modul să intre în starea de ieșire, ca în lecția 12.

Să încercăm să asamblam proiectul și să vedem mai întâi rezultatul în Proteus, deoarece am făcut și un proiect pentru el, care va fi și în arhiva atașată cu proiectul pentru Atmel Studio

Totul merge grozav pentru noi! Acesta este modul în care puteți reface rapid un proiect pentru un controler pentru altul.

Proteus este foarte bun, dar este întotdeauna mai plăcut să te uiți la detalii reale. Întregul circuit a fost asamblat pe o placă de breadboard, deoarece nu am făcut sau asamblat o placă de depanare pentru acest controler. Vom conecta programatorul printr-un conector standard ca acesta

Iată întreaga diagramă

Totul este standard aici. Rezistorul de tragere la RESET etc.

Acum, înainte de a flashiza controlerul în avrdude, trebuie să selectăm controlerul și să îi citim memoria flash

Apoi accesați fila SIGURANȚE și setați siguranțele corect. Deoarece nu avem un rezonator cu cuarț, instalăm siguranțele în acest fel

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva