PicChess (7 / 8 steg)

Steg 7: ljud



För en bättre mänskliga gränssnittet audio lades till, det har kraftigt förenklats sedan processorn innehöll en intern DAC. Men som det interna minnet på mikroprocessorn var limited (1 Mbit Flash) ett externt minne 16Mbits lades till projektet. Ljuden kan spelas lagras sekventiellt i minne i form 8.000 Hz 16-bitars PCM, som har kvalitet nog att spela snuttar av röst och upptar inte mycket utrymme (128s av ljud kan föras in i detta minne).

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.

Se Steg
Relaterade Ämnen