Stap 7: Audio
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.