Например я за базу брал такой вариант:
http://www.sfcompiler.co.uk/wiki....vPlayer работало на ура...
на этой-же схеме реализовывал вариант воспроизведения без буфера и таймера...
типа так:
Code
// =========== SwordFish Basic =============
Public Sub PlayMMCFile (pFile As String, delay As Integer)
SD.OpenFile(pFile)
Repeat
DelayUS(Delay)
PORTB = SD.ReadByte
Until SD.EOF
SD.CloseFile
End Sub
I2C советую забыть!!! очень медленная, да и звука много не запишешь а если ещё и ЦАП туда-же I2C - то получится ЖОПА.
А 16 - 32мб карточку SD или MMC найти думаю не проблематично...
Если есть свободный порт на контроллере то делай ЦАП на R2R матрице (есть готовые если хорошо поискать) .. можно так-же и на ШИМе сваять...
но на ШИМе у меня искажения поболее были (фильтровать не стал, вернулся к ЦАПу)...
Удачи в воспроизведении звука!!!