микшеры, кста, у меня работают. madplay громкость в канале наушников регулирует =) шаг ножек у тлвхи прекрасный. а так ты прав, инициализацию переделать и все. вот плата в формате Sprint-Layout 5.0
2rw9uao для wm8725 даже инициализацию не надо менять :) Достаточно в ф-ии snd_at73c213_write_reg в самом начале return 0 написать и все :) Она неуправляемая - битрейт налету определяется автоматом, а чтобы драйвер сума не сходил от spi я туда заглушку поставил.
Что-то не получается у меня никак с wm8725 - звук есть но с сильно искажен и идет постоянный шум - звук похож на то как приемник СВ днем ловит очень слабый сигнал :) Вопрос такой - в каком формате идут данные на кодек по i2s - со знаком или без знака ? Усилитель не стал подключать - нарямую наушники посадил на выход цап...
Запустил сегодня звук на wm8725 (для справки - стоит 30 руб, без проблем нашел в магазине, наушники раскачивает без дополнительного усилителя, корпус soic14, неуправляемый - похоже будет работать любой неуправляемый аналогичный DAC - например те которые в CD-ROM стоят, есть например и в soic8 корпусе). Подробности:
1 В настройках bootstrap нужно поменять частоту PLLA
Bootstrap-v1.6/board/at91sam9260ek/dataflash/at91sam9260ek.h найти строчки где задается режим PLLA и MASTER_CLOCK заменить на такое
#define MASTER_CLOCK 98304000
#define PLLA_SETTINGS 0x27FFBF7D
2 Для u-boot тоже нужно указать новую частоту (PLLA является источником тактирующих для ядра) заменить в u-boot-1.1.5/include/configs/at91sam9260ek.h то что было на
#define AT91C_MASTER_CLOCK 98304000
3 Подключить DAC в соответствии с рекомнендуемой схемой из своего даташита (режим i2s), к плате DAC подключить как на плате siberia (с electronix.ru) или на atmel-овской - попозже выложу кусок схемы - там все просто.
4 В драйвере linux-2.6.27.8/sound/spi/at73c213.c в ф-ции
static int __devinit snd_at73c213_ssc_init(struct snd_at73c213 *chip)
закоментировать флаг
// | SSC_BF(TCMR_STTDLY, 1)
Все :) Можно в конфиге ядра выбирать звук spi atmel at73c213 и наслаждаться :) Не забывать что драйвер гоняет данные по spi в пустоту - так что spi1.0 все равно занят.
PS опробовано с samplerate 48 000 (это частота по умолчанию для at73c213 в ядре)
Непонятно. Некоторые сообщения банятся. В общем пункт 4 возможно не нужен - похоже мой цап не работает в режиме i2s (я ему завел лапу format на +3,3 В - по даташиту это i2s режим), потому что так как у меня ssc настроен - это его режим MSB-first, right justified - он как раз без сдвига 1 бита. Так что имейте ввиду - возможно пункт 4 не нужен а мне попался цап с багом или я его подпалил :)
Обнаружил тут такой цап TDA1543 (8-лапый)- ему нужны только 3 линии i2s и все - даже тактирующие не нужны (как раз его пин идет с другого разъема - не очень удобно :). У нас я их в продаже не нашел, возможно закажу. Так вот для него даже bootstrap и u-boot перешивать похоже не придется (драйвер сам вычислит подходящий делитель для ssc - там не степени 2, но четное число, поэтому даже с 12 МГц достаточно точно можно частоту подогнать) - просто подключаем по i2s 3 провода (самый нижний на моем рисунке PC1 не нужен) +питание+выход на наушники и в ядре указываем драйвер at73c213. Это в теории - если опробую, напишу :)
а громкость чем регулировать? а входные сигналы цифровать? я ко входу подключил тюнер, дык очень удобно переключать источник сигнала, крутить громкость и ФФТ показывать с приемника =) один хрен процессор ничем не занят =)