1. Introducere
Aplicatia descrie cum se inregistreaza vocea umana, cum se stocheaza ea si cum se reda apoi tot ce s-a inregistrat. In realizarea reportofonului, folosesc un microcontroller cu convertor A/D, o memorie flash si cateva componente aditionale.
Proiectul prezinta in detaliu utilizarea unui convertor A/D pentru inregistrarea sunetului, precum si utilizarea SPI (Serial Peripheral Interface) pentru a accesa memoria flash, si utilizarea PWM (Pulse Width Modulation) pentru redare a vocii. O aplicatie tipica ce ar necesita mai mult decat acestea ar fi un reportofon digital.
2. Descriere generala
Inainte ca semnalul analogic sa fie stocat in memorie, trebuie ca acesta sa fie convertit in semnal digital. Acest lucru este realizat in mai multi pasi.
In primul rand, semnalul analog este convertit in semnal de timp discret, calculand perioade de esantionare. Intervalul de timp dintre doua esantione, este numit “perioada de esantionare”, iar corespunzator avem si “frecventa de esantionare” . Un semnal contine informatia la 3000Hz. Prin urmare, putem utiliza un FTJ (filtru trece jos). Semnalul analog este cuantificat prin atribuirea unei valori analogice celei mai apropiate valori digitale permise (vezi fig).
Valorile digitale sunt intotdeauna limitate, de exemplu 256 valori pentru un semnal digital pe 8 biti, sau pe 10 biti in exemplul acesta. Prin urmare, cuantizarea semalelor analogice rezulta intotdeauna in pierdere de informatie. Aceasta eroare de cuantificare este invers proportionala cu rezolutia semnalului digital. Este, de asemenea, invers proportionala cu 'rangul dinamic' al semnalului - gama de valori dintre valorile minime si maxime (3 - 8 in acest exemplu). In aceasta aplicatie, valorile minima si maxima a semnalului nu sunt niciodata atinse. Partea semnalului mai jos de minim si mai sus de maxim nu contine informatie si poate fi inlaturata pentru a economisi memorie.
3. Hardware Design
Utilizatorul poate controla sistemul prin intermediul a trei butoane: “Inregistrare”, “Redare”, “Stergere”. Prin apasarea oricarui buton, se pune input-ul la GND. Ca si feedback pentru utilizator, reportofonul are un led care indica starea sa.
Memoria reportofonului este direct conectata la microcontroller, folosind magistrale SPI.
4. Software Design
Cand programul porneste porturile sunt setate. Acest lucru este realizat intr-o subrutina “setup”. Protocolul SPI defineste un dispozitiv ca fiind master si alte dispozitive ca fiind slave. AT90S8535 este singurul master, iar pinul SS poate fi folosit ca pin de I/O.
SPI este definit ca o functie alternativa a Portului B (PB5 - PB7). Semnalele de control sunt de asemenea setate pe portul B (PB0 - PB2 si PB4). Pinul ramas liber - PB3 - este folosit pentru a controla starea ledului. Pentru master, semnalele: Serial Clock(SCK), Master Out/Slave In (MOSI), Chip Select (CS), Write Protect (WP) si Reset (RST) sunt output-uri, in timp ce semnalele: Master In/Slave Out (MISO) si Ready/Busy (RDY/BSY) sunt input-uri. Cu PB3 definit, de asemenea ca output, registrul Data Direction Register este setat la 0xBD. Convertorul A/D este conectat la Port A. Prin urmare, Port A este definit ca input de inalta impedanta. Port D serveste ca input pentru butoane si ca output pentru semnalul PWM.
Intreruperile sunt activate. In aceasta aplicatie sunt folosite doua intreruperi: ASC si Timer1, care sunt activate si dezactivate direct in subrutina, cand este necesar. Cand unul din butoane este apasat, ledul se aprinde pentru a arata ca sistemul este ocupat, si ca este apelata subrutina corespunzatoare. In timpul buclei Main Loop, ledul este stins pentru a arata ca sistemul ruleaza in gol.
5. Rezultate Obtinute
6. Concluzii
Semnalul microfonului poate varia in functie de tipul de microfon folosit. Pentru a obtine rezultatele cele mai bune, este important sa alegem un microfon cu semnalul maxim al amplificatorului aproape de AREF. Datele sunt scrise in memorie imediat ce sunt citite din convertorul A/D. Compresia acestor date poate fi utila daca se solicita o inregistrare de lunga durata.
7. Bibliografie/Resurse
http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf