PicChess (7 / 8 stap)

Stap 7: Audio


Voor een beter menselijk interface-audio werd toegevoegd, het is sterk vereenvoudigd aangezien de processor een interne DAC is opgenomen. Maar als het interne geheugen van de microprocessor was beperkt (1 Mbit Flash) een extern geheugen 16Mbits is toegevoegd aan het project. De geluiden kunnen worden afgespeeld sequentieel worden opgeslagen in het geheugen in de vorm 8.000 Hz 16-bits PCM, die genoeg kwaliteit moet spelen fragmenten voor stem en doet niet bezetten veel ruimte (128s van geluiden kunnen worden opgenomen in dit geheugen).

Voor het afspelen van de DAC moet worden geladen met gegevens in een getimede manier. Dit wordt gedaan met de hulp van een kleine buffer en een DMA-kanaal. Het kanaal wordt geactiveerd wanneer de DAC moet meer gegevens, de buffer wordt dan overgebracht naar word. De onderbreking van de DMA (wanneer hij naar het einde van de audio buffer wijst) wordt gebruikt om de audio buffer, opnieuw te vullen met gegevens uit het externe geheugen, het aantal keren dat een geluid moet worden afgespeeld.

Het is dus gemakkelijk te spelen van een geluid, het alleen nodig om te laden op het adres van het geluid dat moet worden gelezen, en het aantal keer de audio buffer te vullen. Vanaf dit punt het mechanisme maken door de interrupts van de DAC en DMA-overdracht alle gegevens tot het einde van het geluid.

Het signaal gegenereerd door de DAC is versterkt met een eenvoudige schakeling met behulp van een LM380, die heeft weinig vervorming, is een enkelvoudige voeding en redelijke macht (over 2W) genereert.

waveBurner

WaveBurner is de naam van een klein programma dat ik maakte omhoog de nummers in het Flash-geheugen te laden. Zij aanvaardt alleen het juiste type van WAVE-bestand, scheurt van het stuk van de gegevens van het bestand, en de stapel van alle bestanden in een HEX bestand (met de opvulling nodig voor de audio buffer). Het heeft een kleine firmware die gaat in de DSPIC om te communiceren met het PC-programma via de seriële poort.

De software is geprogrammeerd in Delphi 2010, en is opgenomen in de projectbestanden. Met een enkele klik kan het vullen van de gegevens in het Flash-geheugen, en het geeft als output ook een 'C'-headerbestand met de lengte en het adres van elke song. De tweede foto is van het branden van de flash-chip.

Gerelateerde Artikelen