Maken van een MP3 player



Vergelijkbare documenten
RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

PCI Ontwikkelplatformen

Klasse B output buffer voor een Flat Panel Display Kolom aansturing

C-Tech TSFP 2010T PROFESSIONELE TERRESTRISCHE SIGNAALMETER

IEEE 1394 firewire. Jan Genoe KHLim. I-link DV (digital video)

HET MODELNUMMER FIESTA2. Mp3 speler met luidspreker. Instructiehandleiding

Inductiemeter via de parallelle poort

Jan Genoe KHLim. PCI Signalen en timing

GIP. De computer gestuurde trein

Mp3 speler met luidspreker Instructiehandleiding. Lees deze instructies svp goed door alvorens dit apparaat in gebruik te nemen.

Arduino CURSUS. door Willy - 09-juni-2017

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke

12.1 Input/output-kaart IOK. Informatieblad 12 input/output-kaart versie 1.0. Beperking aansprakelijkheid

INHOUD SPI : SERIAL PERIPHERAL INTERFACE ALGEMEEN. Videolessen Deel 3 DATACOMMUNICATIE SPI

XEMIO-243/253 HANDLEIDING

LocoServo Handleiding

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Departement industriële wetenschappen en technologie

Uw gebruiksaanwijzing. MPMAN MPUB 330

Geïntegreerde proef. Computer gestuurd domotica systeem

FORTH op de 80C535 processor met het ATS535 board.

Digitale interface protocols Jan Genoe KHLim

Sequentiële schakelingen

PIC Callgever Door PA1RUM

MP300011/MP Sweex MP3 Player 128 MB/256 MB

Locobuffer Handleiding

Besturingspaneel v Raam E-systeem functie omschrijving v109

Gebruikershandleiding Cassette Converter

De seriële poort Jan Genoe KHLIM

Foundation Fieldbus. Er zijn 2 soorten Foundation Fieldbus: FF HSE FF-H1

Arduino en APRS EZHE Workshop April 2017, PD1DDK

LocoIO Handleiding HDM08

Goedkope RS232. MSX Computer Magazine nummer 53- april Scanned, ocr ed and converted to PDF by HansO, 2001

Digitale converter voor audiocassettes. Gebruiksaanwijzing

5.1 Channel USB headset. USB 5.1 surround headset

Computer architecturen: Muis en toetsenbord

Voeler ingang van de ilog recorder. Stop de temperatuurvoeler

De TRUST 2 PORT USB 2.0 PCI CARD werkt niet op MAC.

1. Beschrijving van de hoofdfuncties 2. MP3 modus 3. USB modus 4. Upgrade van speler 5. Installatie besturingsprogramma WINDOWS Voor MAC OS 9.

DIGITALE MODE MET POWER SDR

Een intelligent DMX netwerk

LocoIO Handleiding HDM08

In- en uitgangssignalen van microprocessoren

1 graduaat Elektriciteit/elektronica KHLim - dep. IWT HALFGELEIDER-GEHEUGENS HALFGELEIDER GEHEUGENS STATISCH DYNAMISCH ROM PROM EPROM EEROM

XEMIO-654/664 Gebruikershandleiding. Voor informatie en ondersteuning,

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

Benchmarken van Programmable Logic Devices met Enhanced Parallel Port Implementaties

EnVivo EZ Converter. Gebruikershandleiding

Advies, Productie, Reproductie, Faciliteiten, Presentatie, Verhuur, Verkoop

Hardware-software Co-design

Inhoudstafel: OVERZICHT VAN DE AANSLUITINGEN... 3 LUIDSPREKER AANSLUITINGSMOGELIJKHEDEN... 4 OMSCHRIJVING VAN DE LEDS... 4

Gebruikershandleiding Axitour AT-900 audio communicatiesysteem

: Minimaal 650Mb vrije ruimte : Beschikbare IDE interface connector

versie: 1.0 status: vrijgegeven door: J.Eberson datum: 15 augustus 2005 aangepast: 19 februari 2006 concept beschrijving

Voeler ingang van de ilog recorder. Stop de temperatuurvoeler

1 enerwaslicht Elation Professional - DMX OPERATOR User Manual

Xilinx JTAG Programmer

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family)

S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft

GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING

NEDERLANDSE INSTRUCTIES

Stappenmotor Interface. Controller

Handleiding Teknatool houtdraaibank Nova DVRxp Nederlands bij gebruik van de originele Engelse handleiding

Verkeersteller. Actime B.V. Heuveleindstraat NL Ravenstein

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1

Het koppelen van een FC51, via Modbus RTU, aan een AC500-eco.

A. Opgelet. B. Shuffle functie. C. Toetsfuncties en bediening

Vr.Model-nr MPFOL15. Gebruikershandleiding

I. Specificaties. II Toetsen en bediening

Computer Instructies voor de SM-5062

Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8

G. Schottert Handleiding Freekie 1. Nederlandse handleiding. Freekie DMX ADRES INSTELLINGEN 1

Handleiding: instelling en werking E-Drive LCD display

HANDLEIDING NEDERLANDS ( 1 7 )

MULTIMEDIABOX.nl Custom made solutions hardware & software. Advanced Menu

18 Embedded systemen 1

Wij willen u graag bedanken voor het aanschaffen van onze digitale. MP3 speler. Lees deze handleiding vóór ingebruikname a.u.b.

Nederlands. Inhoud verpakking. Uw Camera. G-Shot D610. Voorzijde. Achterzijde -1-

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (8)

Dit apparaat is een programmeerbare magnetische fiets. Het apparaat bestaat uit drie delen: de motor & controller en het magnetische remsysteem.

IO-Link: de industriële communicatiestandaard. De basis van IO-Link

DP E08.UART INHOUD INHOUD. Inhoud 1. Gebied Normale Indicatie 6. Knop Definitie 7. Inleiding 2. Normale Bediening 7. Overzicht Tekening 3

EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1

E-7700p Crosstrainer

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is een busverbinding?

Foutdetectie. Toenemend belang van foutdetectie

INTRODUCTIE. Voorzorgsmaatregelen. Systeem Vereisten NEDERLANDS

Programmering Tiny45 voor de DCC locdecoder

B. Random en op volgorde afspelen

Snel op weg met de PepperPlayer.

...een product van BEKA

Handleiding DIGITALE MEDIASPELER

Bouwbeschrijving UniSAI

De Arduino-microcontroller in de motorvoertuigentechniek (3)

Handleiding: instelling en werking E-Drive LCD display

Gebruikershandleiding. Cassette Converter

Getting Started. DA-300USB D/A Converter

Transcriptie:

Cursus VHDL deel 2: Maken van een MP3 player Jan Genoe In dit uitgewerkt voorbeeld schetsen we de werkwijze die moet gevolgd worden om uitgaande van een probleemstelling tot een concrete en werkende oplossing te komen. Alle details in verband met dit voorbeeld kunnen gevonden worden op: Xilinx.com/products/xaw/index.htm Versie: woensdag 10 mei 2000 1

Achtergrond van de MP3 player MPEG laag 3 (MP3) is een manier om audio te comprimeren tot ongeveer 1/11 de van de originele grote zonder kwaliteitsverlies. een audio CD (650 Mbyte) wordt dus ongeveer 55 Mbyte 32 Mbytes EEPROM FLASH geheugen is tegenwoordig aan een redelijke prijs in de handel te krijgen ICs die MP3 data "on the flow" omzetten naar de originele digitale data zijn ook goedkoop te verkrijgen. bv MAS3507D van Micronas intermetall Een draagbare MP3 player is dus goedkoop te produceren en bevat geen bewegende componenten. Hij is dus enorm schokbestendig. ideaal voor muziek te beluisteren gedurende eender welke activiteit Versie: woensdag 10 mei 2000 2

Werking van de MP3 player Op een PC worden de MP3 data aangemaakt (of gedownload) en via de parallelle poort weggeschreven in het flash geheugen er is soft genoeg om van muziek MP3 files te maken Bij het afspelen worden de liedjes vanuit het flash geheugen doorgegeven aan de MP3 decoder IC, die de gedecodeerde data doorgeeft aan de DA convertor De DA convertor IC stuurt onmiddellijk de 2 speakers in de hoofdtelefoon aan. Een CPLD moet dit alles controleren. Versie: woensdag 10 mei 2000 3

Blokdiagram Bouwblokken CPLD MP3 Decoder IC Flash geheugen LCD scherm drukknoppen DA convertor batterij 2 klokken connector Parallelle poort JTAG connector Versie: woensdag 10 mei 2000 4

User interface 8 druknoppen mute ontbreekt in de tekening 5 LCD symbolen track-nummer display seven-segment Versie: woensdag 10 mei 2000 5

Flash geheugen 32 MBytes voor de opslag van de favoriete songs (bijna 60 minuten) 2 Mbytes voor de start adressen van alle songs plus het eindadres. Versie: woensdag 10 mei 2000 6

Print voorbeeld Op het onderstaande demo-bordje wordt het besproken ontwerp getoond. Versie: woensdag 10 mei 2000 7

Verschillende bouwblokken in de CPLD Hoofd controle logica User interface controle I 2 C interface (naar de DA) Power management Parallelle poort interface Flash geheugen interface Versie: woensdag 10 mei 2000 8

Werking van de play druktoets Geeft power aan de DAC Toont het play symbool Leest continu data van het flash geheugen en geeft deze door aan de decoder Stopt als (stop, fwd, rev) geduwd wordt of als aan het einde van de data gekomen is Wanneer we verder zijn dan een nieuw startadres, wordt het tracknummer ge-update. Versie: woensdag 10 mei 2000 9

Werking van de stop druktoets Zet de DA convertor in een low power mode laad het startadres van de huidige song in het adresgeheugen ga over naar de idle toestand Versie: woensdag 10 mei 2000 10

Werking van de RWD druktoets Zet de DA convertor in een low power mode Verlaag het track nummer met 1 laad het startadres van deze song in het adresgeheugen ga terug naar de idle toestand indien we komen van de idle toestand en naar de play toestand indien we komen van de play toestand Versie: woensdag 10 mei 2000 11

Werking van de FWD druktoets Zet de DA convertor in een low power mode Verhoog het track nummer met 1 laad het startadres van deze song in het adresgeheugen ga terug naar de idle toestand indien we komen van de idle toestand en naar de play toestand indien we komen van de play toestand Versie: woensdag 10 mei 2000 12

Bouwblok 1:User interface controle Ook hier gaan we opsplitsen in bouwblokken. play modus LCD display sound control on/off De basistruc is het geheel opsplitsen in bouwblokken die voldoende eenvoudig zijn. Van elk van de bouwblokken stellen we nu een FSM op. Versie: woensdag 10 mei 2000 13

Play modus FSM Dit diagram is wel een beetje bedrieglijk, omdat voor vooruit en achteruitspoelen een enkele toestand is weergegeven terwijl het eigenlijk 2 verschillende toestanden zijn. We hebben hier dus 5 toestanden, waarvoor we dan 3 bits gaan nodig hebben als toestandsencodering. Versie: woensdag 10 mei 2000 14

Geluid controle logica De uitgang van het volume control blokje is het volume level (vol_lvl[5:0]). Dit Volume level signaal bestaat uit 6 bits. Er is ook een volume changed (vol_adj) signaal dat aangeeft dat het volume veranderd is en dat dat dan ook moet doorgegeven worden aan de DA omzetter. Mute control is een eenvoudige T-FF. Wanneer het mute signaal toekomt klapt die om. Mute changed (mute_chg) geeft aan dat Mute van toestand veranderd is. Versie: woensdag 10 mei 2000 15

sound controle FSM Versie: woensdag 10 mei 2000 16

LCD controle Versie: woensdag 10 mei 2000 17

Bouwblok 2: Power-up reset controle logica rst wsen 1 1 pup=1 pup=0 1 1 pup=1 pup=0 pup=1 1 1 0 1 1 0 Na het opstarten moet de gehele controller gereset worden. Hiervoor wachten we eerst op het power-up signaal van de MP3 decoder (pup) en dan na twee wachttoestanden (om zeker te zijn dat de power wel stabiel is) wordt het reset weggenomen van alle bouwblokken in de CPLD. Bij een power down door de gebruiker (on_off) (of een verlies van power door de decoder) wordt eerst naar alle blokken een reset gestuurd en dan naar de DC/DC omzetter een signaal (wsen) om de spanning weg te nemen van de MP3 decoder. Versie: woensdag 10 mei 2000 18

Bouwblok 3: Inlezen van MP3 data via de parallelle poort Het doel is een eenvoudige implementatie te bekomen Alle MP3 liedjes worden als een geheel weggeschreven in het Flash geheugen Het schrijven begint steeds vanaf het eerste liedje tot het laatste liedje (de vorige liedjes worden gewist) het wegschrijven onderbreekt alle andere bewerkingen geen dubbele toegang van het flash geheugen nodig Versie: woensdag 10 mei 2000 19

Originele Centronics printer kabel 18 signalen (36 contactpinnen): elke signaallijn heeft een terugvoer verbinding nodig deze terugvoerverbinding werd rond elke lijn gevlochten (coax) Hierdoor werden op de connector 36 contactpinnen uitgevoerd Zo kon ook op PCB deze terugvoer met een zo klein mogelijke lus uitgevoerd worden. IBM bespaarde destijds door aan de PC kant een connector te nemen van maar 25 pinnen. Hiervoor werden een aantal massaleidingen samen genomen Versie: woensdag 10 mei 2000 20

Parallelle poort interface (PC kant) 25 pins connector 8 data lijnen (2-9) [inout] 8 grond lijnen (18-25) Strobe signaal (1) [inout] Acknowledge (10) [in] Busy(11) [in] Paper end(12) [in] Select in(13) [in] Autofeed(14) [inout] Error(15) [in] Initialize(16) [inout] Select (17) [inout] Deze signalen kunnen door de PC flexibel aangesproken worden Versie: woensdag 10 mei 2000 21

Bestandsuitwisseling tussen 2 PCs 2 PCs kunnen bestanden uitwisselen via de parallelle poort Hiertoe is een gekruiste kabel nodig datalijnen onderling verbonden massalijnen verbonden stobe (1) en acknowledge (10) kruiselings verbonden Select (17) en Select in (13) kruiselings verbonden Initialize (16) en Busy (11) kruiselings verbonden Versie: woensdag 10 mei 2000 22

Parallelle poort signalen pin 1 PC definitie nstrobe MP3player definitie nstrobe richting PC-MP3 Player actief Low Beschrijving Strobe. Dit signaal geeft aan dat de data op de data pins valid is. 2-9 Data[0:7] Data[0:7] PC-MP3 Player N/A MP3 Data. 10 11 nack Busy nack Dnld_Rdy MP3 Player-PC MP3 Player-PC Low High Acknowledge. Dit signaal geeft aan dat de MP3 speler de gezonden data ontvangen heeft en klaar is voor nieuwe data. MP3 Player is klaar om een download te beginnen. 12 PError Last_Byte PC-MP3 Player High Deze bit wordt actief wanneer de doorgestuurde byte de laatste Byte van de MP3 Data is. 13 14 select nautofd niet gebruikt Song_st PC-MP3 Player High Deze bit is actief wanneer de MP3data een nieuwe song begint. De MP3 player gebruikt deze bit om het huidige adres van de song flash op te slagen in het starting adres flash geheugen. 15 16 nfault ninit niet gebruikt Downld PC-MP3 Player High PC is klaar om een download te beginnen. Deze start wanneer de MP3 Player het DLD_RDY signaal actief maakt. 17 18-25 nselectln GND niet gebruikt GND N/A N/A Signal Ground. Versie: woensdag 10 mei 2000 23

Parallelle poort interface (1) Als de PC klaar is om MP3-data te schrijven wordt het DownLd (16) signaal gegeven De MP3 player antwoordt met dnld_rdy (11) als hij klaar is voor een download Als nstrobe (1) laag wordt gezet door de PC, wordt een byte ingelezen De MP3 player wacht tot deze byte goed in het flash geheugen geschreven is (next) Hierna antwoordt de MP3player met een acknowledgement: nack (10) Als nstrobe (1) terug hoog wordt, wordt er gewacht op de volgende byte Als DownLd (16) laag wordt, wordt de download beëindigd Versie: woensdag 10 mei 2000 24

Parallelle poort interface diagram Versie: woensdag 10 mei 2000 25

Parallelle poort interface (2) Als het Song_st (14) signaal hoog wordt wordt de huidige waarde van de adres teller in het start adres flash geheugen opgeslagen. wordt de songteller met 1 verhoogt. Als het Last_Byte (12) signaal hoog wordt wordt de huidige waarde van de adres teller in het start adres flash geheugen opgeslagen. In deze gevallen moet er gewacht worden tot het start adres geheugen geschreven is Versie: woensdag 10 mei 2000 26

Download controle state machine Versie: woensdag 10 mei 2000 27

Bouwblok 4: I²C bus Doel: doorgeven van settings (geen data) aan de MP3 decoder IC en aan de DA-convertor IC Deze settings moeten doorgegeven worden bij startup en moeten gedurende de werking kunnen aangepast worden Bv volume Versie: woensdag 10 mei 2000 28

I²C bus situering IC bevatten een steeds toenemende complexiteit en steeds toenemende mogelijkheden Om die mogelijkheden ten volle te benutten moeten de ICs de juiste parameters krijgen en moeten ICs onderling gegevens kunnen uitwisselen De Inter IC bus (I²C bus) biedt hiervoor een eenvoudige oplossing: slechts 2 verbindingslijnen op PCB Deze bus werd door Philips in het begin van de jaren 80 geïntroduceerd en wordt nog steeds hiervoor gebruikt Zeer veel IC beschikken over deze bus als communicatiekanaal met andere ICs Versie: woensdag 10 mei 2000 29

I 2 C bus: voorbeeld n+1 ICs wisselen met elkaar gegevens uit aan de hand van 2 baantjes op de PCB Versie: woensdag 10 mei 2000 30

I²C bus specificaties Snelheid: standaard: 100 kbit/s Fast mode: 400 kbit/s High speed: 3.4 Mbit/s Maximale bus capaciteit 400 pf» Dit bepaalt het maximaal aantal devices en de maximale lengte van de lijn op PCB Versie: woensdag 10 mei 2000 31

Basis I²C hardware Versie: woensdag 10 mei 2000 32

Basis I²C hardware Slechts 2 lijnen worden gebruikt: Klok en data De lijnen zijn op PCB aan de voeding verbonden via een Pull-up weerstand Elke driver kan deze lijn naar 0 trekken (nmos transistor) Elke ontvanger leest de lijn. Versie: woensdag 10 mei 2000 33

I²C bus timing diagram Alle overgangen op de data lijn gebeuren wanneer de klok laag is. Als de klok hoog is mag de datalijn uitgelezen worden Versie: woensdag 10 mei 2000 34

Start en stop conditie Als niemand de klok en data aanstuurt, zijn beide lijnen hoog. Een hoog naar laag transitie op de data lijn als de klok hoog is, is een unieke start conditie Een laag naar hoog transitie op de data lijn als de klok hoog is, is een unieke stop conditie Versie: woensdag 10 mei 2000 35

Acknowledgement van de ontvanger Versie: woensdag 10 mei 2000 36

Volledige data transfer Eerst het adres van de bestemmeling, met read/write Vervolgens de door te sturen data Versie: woensdag 10 mei 2000 37

Vanuit het timing diagram kunnen we onmiddellijk het FSM diagram tekenen. FSM van de I²C controller Versie: woensdag 10 mei 2000 38

I²C blok controller diagram Dit is een algemeen stuk vhdl code (i2c_master.vhd ). Dit kan je gebruiken om eender welke opeenvolging van bytes op de I²C bus te plaatsen. Het blok op een hoger niveau gaat dan bepalen wat er juist op de bus zal geplaatst worden. Daarom bespreken we eerst wat er moet gezonden worden. Elke keer dat er een byte verzonden is bekomen we het EOT signaal. Versie: woensdag 10 mei 2000 39

Door te zenden bytes via de I²C bus We adresseren alleen de DAC via de I²C bus Hiervoor moeten we een 8-bit woord of een 16 bit woord kunnen doorsturen Het device adres is altijd hetzelfde, $9A Het subadres varieert met de gevraagde functie Versie: woensdag 10 mei 2000 40

Mogelijke functies voor de DAC Sample rate controle (SR_REG) volume controle (AVOL) Globale configuratie (GCFG) Versie: woensdag 10 mei 2000 41

Sample rate controle In deze implementatie kiezen we steeds 00011111 Versie: woensdag 10 mei 2000 42

Volume controle We sturen een gelijk volume naar beide uitgangen Bij mute zetten we tijdelijk het volume op 000000 Versie: woensdag 10 mei 2000 43

Globale configuratie Ofwel normal 00000100 Ofwel low power 00100100 Versie: woensdag 10 mei 2000 44

Algemene structuur MPEG controle (mpeg_chip_ctrl.vhd ) Versie: woensdag 10 mei 2000 45

Commando's voor de MPEG controle (mpeg_chip_ctrl.vhd ) Versie: woensdag 10 mei 2000 46

Interface met het flash geheugen (flash_cntr.vhd ) Versie: woensdag 10 mei 2000 47

Start adres flash geheugen Dit geheugen is maar 16 bits breed, en de nodige start adressen zijn 25 bits breed. Het start adres moet dus in 2 stappen uitgelezen en weggeschreven worden track[0]='1': minst beduidend deel track[0]='0': meest beduidend deel Versie: woensdag 10 mei 2000 48

Song adres counter (cnt_25.vhd) 25 bit breed op 32 MB te kunnen uitlezen telt op de stijgende klok als cnt_up hoog is load gebeurt in 2 stappen (2 laad controle signalen) meest significante bits (cnt_ld_u) minst significante bits (cnt_ld_l) 16 bits data om te laden (data) Een terminal count geeft aan dat alle 7 meest beduidende bits '1', om op tijd te weten dat het geheugen bijna vol is. De laagste 18 bits kunnen op '1' gezet worden (preset_lower). Het flash (EEPROM) geheugen wordt gewist in blokken van 128K als er dan 1 bij opgeteld wordt zitten we in het volgende blok van 128K Versie: woensdag 10 mei 2000 49

Het wegschrijven van de songs (download interface) Eerst wordt de gehele inhoud van het flash geheugen gewist (parallelle poort moet wachten) Dan worden alle binnenkomende bytes weggeschreven Versie: woensdag 10 mei 2000 50

Detectie van een match Eerst de meest beduidende bits vergelijken de trackteller al met 1 verhogen daarna de minst beduidende bits vergelijken als de hoogst beduidende een 1 is: alles gedaan Versie: woensdag 10 mei 2000 51

Controle van de decoder IC (play_logic_state_machine.vhd ) controleert de MP3 decoder in van decoder eod: end of data rtr: data ontvangen out naar decoder pr : er is nieuwe data Versie: woensdag 10 mei 2000 52

Globaal overzicht controle Versie: woensdag 10 mei 2000 53

Globale controle Versie: woensdag 10 mei 2000 54