PicChess (7 / 8 steg)
Steg 7: ljud
För att spela DAC måste laddas med data på en tidsinställd sätt. Detta görs med hjälp av en liten buffert och en DMA-kanal. Kanalen är aktiverad när DAC behöver mer data, bufferten överförs sedan till word. Avbrott i DMA (när det pekar till slutet av ljud bufferten) används för att åter fylla ljud bufferten, med data från externa minne, hur många gånger att spela ett ljud.
Således är det lätt att spela upp ett ljud, det är endast nödvändigt att läsa in adressen till det ljud som ska läsas, och antalet gånger audio bufferten fylls. Från denna punkt mekanism gör av avbrotten av DAC och DMA överför alla data till slutet av ljudet.
Den signal som genereras av DAC förstärks av en enkel krets med en LM380, som har låg distorsion, är en enda strömförsörjning och genererar rimliga kraft (ca 2W).
waveBurner
WaveBurner är namnet på ett litet program som jag gjorde för att ladda upp låtar i Flash-minnet. Det accepterar endast rätt typ av WAVE-fil, rippar av data bit av filen, och stapla upp alla filer i en HEX-fil (med stoppning för audio bufferten). Den har en liten firmware som går in i DSPIC att kommunicera med programmet PC via den seriella porten.
Programvaran var programmerad i Delphi 2010 och ingår i projektfilerna. Med några klick kan det fylla på data i flashminnet och som utgång det också ge ett "C" header-fil med längd och adress för varje sång. Den andra bilden är av den brinnande flash chip.