Нет не ошибаетесь, если коротко:
1 нужен цап который не требует инициализации или режим которого задается логическими уровнями на соответствующих лапах и который умеет работать в режиме i2s. (я делал на wm8725 - подобных цап очень много, например их ставят в cdrom)
2 Нужно сконфигурировать частоту plla так чтобы она была кратна частоте цап для нужного сэмплрэйта, делается это в bootstrap.
3 подключить цап как на оригинальной атмеловской плате
4 воспользоваться драйвером для атмеловского кодека at73c213 в ядре
Чтобы узнать как я делал - можно воспользоваться поиском по форуму по "wm8725". Будут вопросы - спрашивайте.
Если знаком принцип получения звука при помощи шим реализовать его на любой архитектуре не преблема. У sam9260 очень гибкие настройки таймера-счетчика, можно практически все что угодно получить. я буквально на днях только начал им вплотную заниматься так что рабочих примеров не обещаю - только то как делаю сам и как я это вижу. в даташите все хорошо описано,если кратко:
два основных режима - захват и генерация. захват мне совсем не нужен как и вам в данном случае так что все применительно к генерации: основа - регистр счетчик, сравнивается с тремя регистрами a,b,c и в зависимости от настроек выполняются действия при равенстве значений.
Это работа на уровне ядра - юзерспейс не сильно будет отличаться, посмотрите пример repairman как работать с регистрами процессора - тут все тоже самое. Вас наверно будут интересовать два момента
at91_tc_write(AT91_TC_RA, 5);
at91_tc_write(AT91_TC_RC, 10);
изменяя значние RC (только для данного режима) будет меняться частота а при измение RA - соотношение провалов и горбов в меандре.
Только не частота... классический ШИМ подразумевает переменную скважность при постоянной частоте.
8 битный звук, IMHO, сделать реально... 16 бит, только с очень низкой частотой дискретизации, даже для телефонии не хватит...
Для 8 бит и выходного диапазона 0.. 20 кГц получаем TC с частотой ~10 Mhz (2 * 20000 * 256 = 10,24 Mhz). Сколько там у таймера предел тактовой ? Наверное, до 10-11 бит можно поднять...
Режим 8 бит PWM с автоперезапуском, остается класть по прерыванию переполнения нужное число в соотв. compare регистр... события равенства и обнуления связать с toggle внешнего пина...
Там, вроде, есть по 2 compare регистра на таймер ? Значит для стерео достаточно 1-ого таймера, одной опоры для нескольких каналов достаточно... а compare регистры загружаются каждый своим каналом...
3 таймера, каждый с 2 регистрами сравнения - 6 канальный звук... ;-) Сигнал-шум, правда, "8 битный" = 48 db (а не 96, как у 16 бит...), соизмеримо с очень хорошей магнитофонной лентой...
ВСЯ внешняя обвеска - RC цепочка...
Классический 8 bit SoundBlaster (кто помнит времена MS DOS..)
1 целостность кабеля (я уже два раза родной который с платой перепаивал - таскаю плату с собой везде :)
2 на месте ли перемычки 7,8 (между двумя разъемами рядом с usb-host портом - 6 контактов, начиная от усб должно быть : перемечка х2, пусто, перемычка х2, пусто)
3 в эмуляторе терминала аппаратное управление потоком должно быть отключено, парметры порта 115200, 8n1
4 БП живой ? :)