Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как инициализировать звук на ep93xx?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Andrei....
Какова последовательность действий при инициализации AC'97 контроллера на ep93xx?
Andrei....
помогите пожайлуста!
aaarrr
Как помочь-то? Где возникают проблемы?

Последовательность действий можно подсмотреть в исходниках линуксового драйвера, например.
Andrei....
Интерисует последовательность инициализации AC97 контроллера. Нигде её не нашёл...
sff
Цитата(Andrei.... @ Nov 16 2006, 13:32) *
Интерисует последовательность инициализации AC97 контроллера. Нигде её не нашёл...

Ну если Linux не устраивает по релегиозным или иным соображениям можно посмотреть исходники BSP для WinCE
в файле WINCE500\PLATFORM\Ep93xx\Src\Drivers\Wavdev\ac97codec.cpp.
Сама инициализация идёт в методе AC97Codec::Initialize(void )
также потребуется посмотреть метод PokeAC97 (запись в регистр AC97 кодека) он используется для установки громкости и тд.
И если используется DMA то настроить соответствующие каналы DMA (WINCE500\PLATFORM\Ep93xx\Src\Drivers\Wavdev\pingpongdma.cpp) но там много специфики CE.
А обработчик PIO находится в FIQ с таким вот интересным комментарием (файл WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\interrupt.c)
Код
//****************************************************************************
// OEMInterruptHandlerFIQ
//****************************************************************************
// Used for PIO Audio instead of using a DMA channel.
//
// On the EP93XX Rev D1 and E0 the following may cause audio glitches.
//
// 1.  Boot in 16 Bit mode
// 2.  Use USB
// 3.  Use DMA
//
// To work around this problem we use the FIQ handler to perform PIO audio.
Andrei....
Спасибо за файлы, посмотрел. На данный момент, и при настройке FIQ и при настройке IRQ прерывания для VIC1_AACINTR ситуация одинаковая, при включении платы оно вызывается не всегда, однако если первый раз вызывается, то и далее вызывается (весь код отрабатывает) и всё нормально. Если не вызвалось сразу, то стабильно его нет. Хотя в регистре VIC1RawIntr=0x48
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.