digitale voice recorder

81
Digitale Voice Recorder

Upload: koren

Post on 10-Jan-2016

56 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Digitale Voice Recorder

Digitale Voice Recorder

Page 2: Digitale Voice Recorder

Digitale Voice Recorder

Team 1:

De Hardware

Page 3: Digitale Voice Recorder

Team 1Ellen Vandermeeren

Gerry Branders

Timmy Knevels

Xavier Croissiaux

Page 4: Digitale Voice Recorder

Opdracht:

• Analoge Interface• Transducers

• Power Supply

Page 5: Digitale Voice Recorder

Specifieke opdrachten:

• Mikrofoon• Mikrofoonversterker• ADC Convertor• DAC Convertor• Luidsprekerversterker• Luidspreker• Voeding• Overige Onderdelen• Behuizing• Koppeling Schema’s• Print-layout• …

Page 6: Digitale Voice Recorder

Mikrofoonversterker

Page 7: Digitale Voice Recorder

Ontwerp

• Elektuur 1993: Juli/Augustus-nummer

Page 8: Digitale Voice Recorder

• 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

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

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

Luidsprekerversterker

Page 12: Digitale Voice Recorder

Ontwerp

• Elektuur 1985: Juli/Augustus-nummer

Page 13: Digitale Voice Recorder

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

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

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

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

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

D/A conversie

• 8 datalijnen

• 256 uitgangen

• Uitgansspanning geregeld met weerstand

• Referentiespanning

Page 19: Digitale Voice Recorder

Spanningskarakteristiek

Page 20: Digitale Voice Recorder

A/D conversie

• successive approximation conversie • on-chip D/A converter + high-gain comparator • getriggerd op de dalende flank

Page 21: Digitale Voice Recorder

Spanningskarakteristiek

Page 22: Digitale Voice Recorder

Limietwaarden

Page 23: Digitale Voice Recorder

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

De schakelaars en ledjes

Groene led

Rode led

s

r

s

r

Q

Q

Q

Q

Opname/Weergaveschakelaar

Stopschakelaar

Page 25: Digitale Voice Recorder

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

• 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

De microfoon

• Goedkoop• Schokbestendig• Licht• Grote gevoeligheid• Zeer betrouwbaar

Page 28: Digitale Voice Recorder

De voeding

Page 29: Digitale Voice Recorder

Eigenschappen

• Compactheid

• Bedrijfszekerheid

• Kostprijs

• Flexibiliteit

• Reset-signaal

• Beperkte uitgangsstroom (max. 0,8A)

Page 30: Digitale Voice Recorder

I²C Systeem

• In rust staan beide lijnen hoog.

• De uitgangstransistorenzijn gespert.

• Zodra geleiding gaat de lijn laag.

Page 31: Digitale Voice Recorder

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

I²C

• Bij D/A conversie wordt er een databyte meegestuurd.

Page 33: Digitale Voice Recorder

I²C

• Bij A/D conversie alleen adres + databyte

Page 34: Digitale Voice Recorder

I²C

• Start conditie• Stop conditie• 9de puls Acknowledge

Page 35: Digitale Voice Recorder

Digitale Voice Recorder

Team 2:

Het geheugen en de display

Page 36: Digitale Voice Recorder

Team 2Koen Vanhees

Kristof Marneff

Pieter Ketelslegers

Page 37: Digitale Voice Recorder

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

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

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

Functietabel 74LS48

LT, RBI en BI/RBO moeten hoog gehouden worden opdat het IC correct decodeert.

Page 41: Digitale Voice Recorder
Page 42: Digitale Voice Recorder

De ingangen verbinden we met poort E van de µP

Page 43: Digitale Voice Recorder

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

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

De µP moet de toestand van de knoppen ook kennen → uitgang FF verbinden met PB6 en PB7 van µP

Page 46: Digitale Voice Recorder

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

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

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

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
Page 51: Digitale Voice Recorder

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

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

Van poort A → 8 adresingangen, maar ook naar 8 pennen van I/O van het geheugen (datastroom)

Page 54: Digitale Voice Recorder

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

Dit is dus een beter schema:

Page 56: Digitale Voice Recorder

Volgende 8 adreslijnen ( A8 – A15) → Poort C

Page 57: Digitale Voice Recorder

Laatste 3 adreslijnen ( A16 – A19) → Poort B

Page 58: Digitale Voice Recorder

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

Dit is het schema met de uitbreidingen:

Page 60: Digitale Voice Recorder

Tenslotte ons deel van het uiteindelijke schema

Page 61: Digitale Voice Recorder

Digitale Voice Recorder

Team 3:

De Microprocessor en de Software.

Page 62: Digitale Voice Recorder

Team 3Tom Jacobs

Davy Aerts

Davy Leenen

Page 63: Digitale Voice Recorder

De Microprocessor

Page 64: Digitale Voice Recorder

De microprocessor

Page 65: Digitale Voice Recorder

Geheugen Configuratie

Page 66: Digitale Voice Recorder

Aansluiting van het ram geheugen

Page 67: Digitale Voice Recorder

I²C

Page 68: Digitale Voice Recorder

Het schema om i²c te versturen

Page 69: Digitale Voice Recorder

Blokschema om i²c te versturen

Page 70: Digitale Voice Recorder

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

Het schema om i²c te ontvangen

Page 72: Digitale Voice Recorder

Blokschema om i²c te ontvangen

Page 73: Digitale Voice Recorder

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

De Flowchart

Page 75: Digitale Voice Recorder

De Flowchart

Start

Initialisatie Poorten

Scan Knoppen

Record PlayReturn Scan

Knoppen

Ja Janeenneen

Page 76: Digitale Voice Recorder

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

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

Het programma

Page 79: Digitale Voice Recorder

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

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

Dit was de Digitale Voice Recorder van

3 elte 2