digitale voice recorder
DESCRIPTION
Digitale Voice Recorder. Digitale Voice Recorder. Team 1: De Hardware. Team 1 Ellen Vandermeeren Gerry Branders Timmy Knevels Xavier Croissiaux. Opdracht :. Analoge Interface Transducers Power Supply. Specifieke opdrachten:. Mikrofoon Mikrofoonversterker ADC Convertor - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/1.jpg)
Digitale Voice Recorder
![Page 2: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/2.jpg)
Digitale Voice Recorder
Team 1:
De Hardware
![Page 3: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/3.jpg)
Team 1Ellen Vandermeeren
Gerry Branders
Timmy Knevels
Xavier Croissiaux
![Page 4: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/4.jpg)
Opdracht:
• Analoge Interface• Transducers
• Power Supply
![Page 5: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/5.jpg)
Specifieke opdrachten:
• Mikrofoon• Mikrofoonversterker• ADC Convertor• DAC Convertor• Luidsprekerversterker• Luidspreker• Voeding• Overige Onderdelen• Behuizing• Koppeling Schema’s• Print-layout• …
![Page 6: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/6.jpg)
Mikrofoonversterker
![Page 7: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/7.jpg)
Ontwerp
• Elektuur 1993: Juli/Augustus-nummer
![Page 8: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/8.jpg)
• Geschikt voor verschillende mikrofoon-impedanties
• Keuze tussen spanningsversterking van 10 of 15 keer (20 of 23,5 dB)
• Heel wat tegenkoppel door 2 direkt gekoppelde transistortrapjes
• Zeer weinig ruis
Eigenschappen
![Page 9: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/9.jpg)
Eigenschappen
• Uitgangsimpedantie = 70 Ohm bij versterkingsfactor van 15
• Ingangsimpedantie = 30 kOhm• Laag stroomverbruik: 2,5 mA bij 9V• THD +N (vervorming en ruis): 0,045 %
(Bandbreedte 22 kHz, uitgangssignaal 15 mV)– Ruis: -65 dB– Harmonische vervorming: -92 dB
![Page 10: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/10.jpg)
OverigeComponentenlijst Prijs (Euro)
Weerstanden
R1 56,2 ohm metaalf im 1% 0,38
R2 22,1 k metaalf im 1% 0,38
R3 220 k metaalf im 1% 0,38
R4 562 ohm metaalf im 1% 0,38
R5 866 ohm metaalf im 1% 0,38
R6, R7 280 ohm metaalf im 1% 0,38
R8 2,21 k metaalf im 1% 0,38
Kondensatoren
C1 6,8 n 0,29
C2, C3, C4 47 u 16V 0,38
C5 100 n 0,24
C6 220 u 16V 0,47
Halfgeleiders
D1 1N4001 0,11
T1 MAT02 1,2
Diversen
Printschakelaar 0,69
TOTAAL (exlusief printplaat): 7,18
![Page 11: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/11.jpg)
Luidsprekerversterker
![Page 12: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/12.jpg)
Ontwerp
• Elektuur 1985: Juli/Augustus-nummer
![Page 13: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/13.jpg)
Eigenschappen
• Voor luidspreker van 4 Ohm:
Voeding: 3V 9V
Ruststroom: 2,5 mA 7,5 mA
Volle uitsturing:
80 mA 270 ma
Afgegeven vermogen:
100 mW 1000 mW
![Page 14: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/14.jpg)
Werking• C2 en C6
ontkoppelen voeding• C7 houdt
gelijkspanning weg van de luidspreker
• C3 en C5 vormen voor audiosignalen laagohmig pad naar massa
• Signaal op ingang van de versterker via P1 en C4
![Page 15: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/15.jpg)
Werking• R4 en C8
onderdrukken oscillatieneigingen
• R1 en R3 bepalen de versterkingsfactor
• C1, parallel over R1, zorgt dat boven 20 kHz minder wordt versterkt
![Page 16: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/16.jpg)
OverigeComponentenlijst Prijs (Euro)
Weerstanden
R1 10 k 5% 0,21
R2 47 Ohm 5% 0,21
R3 220 Ohm 5% 0,21
R4 1 Ohm 5% 0,21
P1 50 k Lineaire instelpot 1,31
Kondensatoren
C1 470 p 0,24
C2 220 u 10 V 0,34
C3 100 u 10 V 0,27
C4, C8 100 n 0,29
C5 10 u 10 V 0,2
C6, C7 470 u 10 V 0,5
Diversen
IC1 LM 1895N 1,38
TOTAAL (exlusief printplaat): 6,16
![Page 17: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/17.jpg)
De PCF8591
• Analoge ingangen• Hardware adressen• Negatieve voeding• Positieve voeding• Analoge uitgang• Referentiespanning• Analoge massa• Externe switch• Oscilator in/uitgang• I²C-bussen
![Page 18: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/18.jpg)
D/A conversie
• 8 datalijnen
• 256 uitgangen
• Uitgansspanning geregeld met weerstand
• Referentiespanning
![Page 19: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/19.jpg)
Spanningskarakteristiek
![Page 20: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/20.jpg)
A/D conversie
• successive approximation conversie • on-chip D/A converter + high-gain comparator • getriggerd op de dalende flank
![Page 21: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/21.jpg)
Spanningskarakteristiek
![Page 22: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/22.jpg)
Limietwaarden
![Page 23: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/23.jpg)
Aansluitingsinformatie
De analoge ingangen
De adresbusDe i²c bus
De oscillator
De oscillator switch
Analoge massa
De referentiespanning
De analoge uitgang
![Page 24: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/24.jpg)
De schakelaars en ledjes
Groene led
Rode led
s
r
s
r
Q
Q
Q
Q
Opname/Weergaveschakelaar
Stopschakelaar
![Page 25: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/25.jpg)
Luidspreker
• Platte inbouwluidspreker die zowel geschikt is voor spraakoverdracht als voor melders van oproep- en alarmtonen.
• Technische spec.: Aluminium membraan Afm. korf-Æ 30 mm, hoogte 5 mm Imped. 8 W Nom. belasting max. 800 mAEigenfrequ. 1,3 kHz Overdrachtsber. 8 kHz Geluidsniv. 70 dB
![Page 26: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/26.jpg)
• De impedantie van de versterker is 4 Ώ en de impedantie van de luidspreker is 8 Ώ.
• Normaal : geen probleem
• Anders : 8 Ώ parallel over de weerstand van de luidspreker
![Page 27: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/27.jpg)
De microfoon
• Goedkoop• Schokbestendig• Licht• Grote gevoeligheid• Zeer betrouwbaar
![Page 28: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/28.jpg)
De voeding
![Page 29: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/29.jpg)
Eigenschappen
• Compactheid
• Bedrijfszekerheid
• Kostprijs
• Flexibiliteit
• Reset-signaal
• Beperkte uitgangsstroom (max. 0,8A)
![Page 30: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/30.jpg)
I²C Systeem
• In rust staan beide lijnen hoog.
• De uitgangstransistorenzijn gespert.
• Zodra geleiding gaat de lijn laag.
![Page 31: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/31.jpg)
I²C
• 2 lijnen SDA seriële data lijn
• SCL seriële klok lijn
• meerdere IC’s op 2 lijnen
• Seriële transmissie
![Page 32: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/32.jpg)
I²C
• Bij D/A conversie wordt er een databyte meegestuurd.
![Page 33: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/33.jpg)
I²C
• Bij A/D conversie alleen adres + databyte
![Page 34: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/34.jpg)
I²C
• Start conditie• Stop conditie• 9de puls Acknowledge
![Page 35: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/35.jpg)
Digitale Voice Recorder
Team 2:
Het geheugen en de display
![Page 36: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/36.jpg)
Team 2Koen Vanhees
Kristof Marneff
Pieter Ketelslegers
![Page 37: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/37.jpg)
Ons team kreeg de opdracht het geheugen en de display te ontwerpen. Concreet houdt dit in:
• Bepalen van de geheugencapaciteit
• Bepalen van het soort geheugen
• Ontwerpen van de interface
• Koppeling met andere schema’s
![Page 38: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/38.jpg)
Keuze van de Microprocessor
Na overleg met andere groepen hebben we uiteindelijk gekozen voor de ATMEGA 128.
Deze component vonden we echter niet terug in Eagle daarom hebben we geopteerd voor de ATMEGA 103.
![Page 39: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/39.jpg)
Aansluiten van de BCD-naar-7segment-decoders
We kozen voor 1 minuut speeltijd → twee 7 segment displays zijn voldoende om tijd weer te geven → elk 7 poorten van de µP nodig!
Oplossingen:• 14 (7 * 2) herleiden naar 9 (7 + 2) door tweemaal een transistor bij
te plaatsen → Deze worden actief gemaakt vanuit de µP en kiezen dus de 7-segment displays. Gebeurt dit snel dan is het door de traagheid van het menselijk oog onzichtbaar.
• BCD-code i.p.v. 7-segment-code → 8 (2 * 4) pennen nodig. Dit wordt onze uiteindelijke keuze en we maken gebruik van een BCD-naar-7segment-decoder, de 74LS48.
![Page 40: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/40.jpg)
Functietabel 74LS48
LT, RBI en BI/RBO moeten hoog gehouden worden opdat het IC correct decodeert.
![Page 41: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/41.jpg)
![Page 42: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/42.jpg)
De ingangen verbinden we met poort E van de µP
![Page 43: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/43.jpg)
Aansluiting van de 7segment displays Uitgangen van de BCD-naar-7segment-decoder niet zomaar aansluiten op de displays → voorschakelweerstanden van 330Ω.
![Page 44: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/44.jpg)
Aansluiten LED’s voor RECORD/PLAY
We kiezen voor monostabiele schakelaars. Leds moeten branden totdat toestand verandert → systeem met 2 flipflopsPlay: waarde wordt vastgehouden → Led blijft branden. Uitgang verbonden met K-ingang → Led voor Record dooft.Record: play Led dooft en Record Led gaat branden.
![Page 45: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/45.jpg)
De µP moet de toestand van de knoppen ook kennen → uitgang FF verbinden met PB6 en PB7 van µP
![Page 46: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/46.jpg)
Aansluiten van de Stop-knop
De stop-knop is dominant→aansluiten op Clear ingang van de FF. Deze is Laag actief→inverteren.De µP vraagt de toestand van de Stop-knop op via PD2.
![Page 47: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/47.jpg)
Eerste keuze van het geheugen.
Formule voor geheugencapaciteit: samplefrequentie * aantal bits/sample * opnametijd in seconden
Dit geeft: 8000 Hz * 8 * 60 = 384000 bit of 4Mbit geheugen.
Eerst kozen we SRAM → geheugens meestal te klein → DRAM: 41C8512. Dit IC werkt met rijen en kolommen → constante refresh.
Oplossing: Timer IC (NE 555). Schakeling werkt als astabiele multivibrator.
![Page 48: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/48.jpg)
Afhankelijk van het feit of er geschreven werd of niet, konden we de timing regelen. Hoe dit moet is duidelijk in deze tabel:
Eerst RAS aanbieden daarna CAS → lezen of schrijven afhankelijk van het WE of OE signaal.
Refresh = Hidden Refresh. Gebeurt via RAS terwijl CAS laag blijft.
RAS → zelfde signaal als normale operatie. CAS → massa. Er wordt dus niet geschreven → er moet geen signaal binnen bij CAS.
![Page 49: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/49.jpg)
We stellen hiervan een waarheidstabel op met A het CAS-signaal en B de toestand van WE. X is de juiste toestand van het CAS-signaal.
B A X
0 0 0
0 1 1
1 0 0
1 1 0
Als WE laag is, dus als er geschreven wordt moet het CAS-signaal dat overkomt van de timer gewoon overnemen.
Is WE hoog, dus er wordt niets gedaan, dan moet het uiteindelijke CAS-signaal laag worden. Dit maken we met een invertor gecombineerd met een AND-poort.
![Page 50: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/50.jpg)
![Page 51: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/51.jpg)
Overschakelen naar EEPROM
Uiteindelijk zijn we overgestapt naar een ander geheugen. Dit om de volgende redenen:
- Oplossing van de Refresh leek ons niet ideaal.
- Het was moeilijk voor Team 3, dat instond voor de
programmering van de µP, om de aangeboden rij-en kolomadressen te programmeren
Een alternatieve en simpelere oplossing was een EEPROM, de 28C040 van Atmel
![Page 52: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/52.jpg)
19 adresingangen, breedte bitstroom: 8 bit → 2 ^ 19 * 8 = 4MBitVerder ook Chip Enable, Output Enable en Write Enable
Eerst voeding en massa aansluiten. Daarna eerste 8 adreslijnen aansluiten met poort A.
![Page 53: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/53.jpg)
Van poort A → 8 adresingangen, maar ook naar 8 pennen van I/O van het geheugen (datastroom)
![Page 54: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/54.jpg)
Dit is uiteraard fout → lees/schrijf-signaal en adresselectie mag men niet door mekaar gebruiken.
Oplossing: 74373 Latch
Enable is laag actief → massa
Klok → ALE (Adress Latch Enable) aparte functie bij ATMEGA 103 → ons schemabij ATMEGA 128 → geïntegreerd in PG2 → uiteindelijk ontwerp
Voor de Latch: adresstroom (Latch uitgeschakeld) en erna Datastroom (Latch ingeschakeld).
![Page 55: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/55.jpg)
Dit is dus een beter schema:
![Page 56: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/56.jpg)
Volgende 8 adreslijnen ( A8 – A15) → Poort C
![Page 57: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/57.jpg)
Laatste 3 adreslijnen ( A16 – A19) → Poort B
![Page 58: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/58.jpg)
Aansluiten Enable ingangen:
CE (Chip Enable) → aan massa leggen → IC constant geselecteerd
OE (Output Enable) moet actief zijn als we willen lezen uit het geheugen → aansluiten op RW van µPBij de ATMEGA 128 is deze pen geïntegreerd in PF7 → uiteindelijke ontwerp
WE (Write Enable) → schrijfsignaal uit PB3 van µP
![Page 59: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/59.jpg)
Dit is het schema met de uitbreidingen:
![Page 60: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/60.jpg)
Tenslotte ons deel van het uiteindelijke schema
![Page 61: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/61.jpg)
Digitale Voice Recorder
Team 3:
De Microprocessor en de Software.
![Page 62: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/62.jpg)
Team 3Tom Jacobs
Davy Aerts
Davy Leenen
![Page 63: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/63.jpg)
De Microprocessor
![Page 64: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/64.jpg)
De microprocessor
![Page 65: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/65.jpg)
Geheugen Configuratie
![Page 66: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/66.jpg)
Aansluiting van het ram geheugen
![Page 67: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/67.jpg)
I²C
![Page 68: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/68.jpg)
Het schema om i²c te versturen
![Page 69: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/69.jpg)
Blokschema om i²c te versturen
![Page 70: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/70.jpg)
Programma om i²c te versturen• void iclees_int(void) //zet codec als adc
{ TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); //stuur start conditie while(!TWCR &(1<<TWINT))); //wacht tot TWINT is geset,adc
• //heeft start conditie ontvangen if((TWSR & SCL) != start); //check waarde van TWI
register, • //maskeer prescaler, klok is
8Khz • //= fs
error(); //als status niet gelijk aan start //conditie, ga
• //naar error TWDR = SLA_R //laad adres in TWDR TWCR = (1<<TWINT)|(1<<TWEN); //clear TWINT bit in TWCR om
• //adres te zenden while(!(TWCR &(1<<TWINT))); //wacht tot TWNT fag is geset
• //(SLA_W is verzonden en ACK is • //ontvangen)
if((TWSR & SCL) != MT_SLA_ACK); //check waarde van TWI • //register, maskeer prescaler
error(); //als satus niet gelijk is aan //MT_SLA_ACK ga
• //naar error}
![Page 71: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/71.jpg)
Het schema om i²c te ontvangen
![Page 72: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/72.jpg)
Blokschema om i²c te ontvangen
![Page 73: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/73.jpg)
Programma om i²c te ontvangen• void lees_dac(void) //lees data van adc
{ int puls; int tijd; TWCR = (1<<TWINT)|(1<<TWEN); //clear TWINT flag om data te
• //ontvangen while(sec!=0) //doe dit 1 minuit lang { puls = tik; do //wacht tot TWDR vol is {
if(STOP==1) //kijk of er nog niet op stop
• //gedrukt is { sec = 0; //als stop gedrukt is beindig
• //opnemen scan_knoppen(); //keer terug,om opnieuw
• //af te spelen of op te • //nemen
} else { tijd = tik - puls;
data[tijd] = TWDR; //zet de in houd van • //TWDR in data
} } while(tijd!=8) //lees 8 bits scrijf_ram(); // is een eeprom maar is toegankelijk
// als sram • }
}
![Page 74: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/74.jpg)
De Flowchart
![Page 75: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/75.jpg)
De Flowchart
Start
Initialisatie Poorten
Scan Knoppen
Record PlayReturn Scan
Knoppen
Ja Janeenneen
![Page 76: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/76.jpg)
De record
Ja
Initialisatie SPI
Initialisatie ADC
Stop
Start ADC
Lees ADC
Convert data
Schrijf RAM
Klok = 0
Return Scan Knoppen
Ja
Nee
Record
Ja
Return scan knoppen
Nee
![Page 77: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/77.jpg)
De Play
Ja
Initialisatie SPI
Initialisatie DAC
Stop
Lees RAM
Convert Data
Start DAC
Schrijf DAC
Klok = 0
Return Scan Knoppen
Ja
Nee
Play
Ja
Return scan knoppen
Nee
![Page 78: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/78.jpg)
Het programma
![Page 79: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/79.jpg)
Na 60 Seconden tijd stil en de rest tijd op de display zetten
• interupt[TIMER_OVF]void TIFR(void) //als timmer =0 wordt stop• {• sec = 0;• }
• void IRQ_TIME(void) //seconden tellen• { • tik--;• if(tik==0)• {• tik = preset• sec--;• zeven_segment();• }• }•• • interupt[INT3]void teller(void) //interupt van de klok bij elke puls• { • IRQ_TIME();• }
• void zeven_segment(void)• {• display_een--;• if(display_een == 0x00)• display_tien--;• }
![Page 80: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/80.jpg)
Schrijven naar het ramgeheugen• void schrijf_ram(void);• { • int plaats;• OE = 0; //output enabled• WE = 1; //rw hoog maken, we gaan schrijven• ALE = 1; //lacht adres in adreslatch• PORTA = pagina_teller; //selecteer geheugen plaats:eerste 8
//adreslijnen• if(pagina_teller==0xFF)• {• PORTC++; //adreslijnen 9 tot 16• pagina_teller = 0;• if(PORTC==0xFF)• {• PORTB++; //adreslijnen 17 tot 19• }• }• if(PORTA = 0xFF && PORTC = 0xFF && PORTB = 0x03) //contoleer of ram niet • //overloopt• error();• ALE = 0; //zet 0 om data te sturen• for(plaats = 0;plaat <= 7;plaats++) //laad data in DDRA• { • DDA[plaats] = data[plaats];• }• PORTA = DDRA; //zet data op data bus• pagina_teller++; //ga naar volgnde rij in EEPROM• lees_adc();• }
![Page 81: Digitale Voice Recorder](https://reader035.vdocument.in/reader035/viewer/2022062321/568142bd550346895daf0384/html5/thumbnails/81.jpg)
Dit was de Digitale Voice Recorder van
3 elte 2