|
|
  |
stm32f4discovery проблема настройки cs43l22, нужен режим Analog Passthrough |
|
|
|
Feb 20 2015, 04:39
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
Добрый день всем. Имеется у меня плата stm32f4-Discovery. Делаю всякие мелкие проекты по реализации имеющихся в проце возможностей (SPI, USART, USB-CDC, USB-HID, LCD, EXT). Использую ОС ChibiOS и среду ChibiStudio. Сейчас пытаюсь реализовать вывод звука на разъем для наушников. Проект веду следующим путем: данные для воспроизведения гоню с помощью ДМА на встроенный в проце ЦАП, далее с ноги РА4 аналоговый сигнал должен проходить через звуковой драйвер-микросхему CS43L22, и уже с выхода этой микросхемы на наушники. В-общем, на данный момент я на ноге РА4 имею звуковой поток. По схеме вывод РА4 с проца подключен к входам AIN1A,AIN1B микросхемы CS43L22. Но на выходе этой микросхемы ничего нет. Для реализации моей задумки микросхему CS43L22 по интерфейсу I2C нужно перевести в режим Analog Passthrough, при котором аналоговые данные со входа идут на выход, т.е. транслируется. Но при этом можно управлять громкостью (уровнем) выводимого звука. Сколько ни пытался инициализировать эту микросхему на нужный мне режим работы, никак не получается, на выходе вообще ничего нет. В инете натыкался на процедуры инициализации для режима воспроизведения цифрового потока, подаваемого по I2S. Но мне этот режим не нужен.
Кто-нибудь может что-нибудь подсказать по данному вопросу, даже без привязки к ОС, просто алгоритм (рабочий) инициализации этой микросхемы CS43L22?
Заранее благодарю за ответы.
|
|
|
|
|
Feb 20 2015, 10:33
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
Получилось запустить работу этой микросхемы, была проблема с выдачей частоты на РС7. Но частота эта довольно маленькая получается - 350кГц. Выше поднять не получается, проект не апускается. Делаю так: таймер использую третий, настроил на частоту 42МГц, настроил выход на Toggle, АRR делаю 60, вывод настроил как высокоскоростной. В таком исполнении работает. Как только делаю ARR 50 и меньше, проект вываливается на первом же прерывании от таймера.
Не знаю пока, как победить. В доке о таком ограничении, да и вообще об ограничении на таймеры, ничего не нашел.
Но если бы поднять частоту, то звук получше бы стал.
Подскажите кто-нибудь как выдать на ногу бОльшую частоту.
|
|
|
|
|
Feb 20 2015, 17:10
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
тогда не очень понятно что имеется ввиду Цитата Как только делаю ARR 50 и меньше, проект вываливается на первом же прерывании от таймера. по идее с таймером 42 МГц вы можете иметь частоту под 21 МГц. сброс по достижению 1 регистра значение регистра в 1 и вперед, как это может не работать?
|
|
|
|
|
Feb 27 2015, 05:27
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
В-общем, используя настройку таймера через регистры, добился генерации тактовой на MCLK высокой частоты. Звуковой драйвер работает, транслирует сигнал с ЦАПа на выход наушников.
Теперь проблема другого плана. Я в проекте еще не дошел до работы с SD-картой. Поэтому для вывода звука нашел в инете некий массив (около 360 слов), в котором расположены отсчеты звука, некая мелодия. Настроив таймер управления ДМА, выдающего эти отсчеты в ЦАП, на определенную частоту, слышу эти самые отсчеты. И складывается ощущение, что чего-то не хватает, звук какой-то недоделанный. Меняя частоту работы ДМА изменяется только тональность всей мелодии в целом. Нашел еще несколько массивов звуков. Эффект или такой же, или еще хуже.
По задаче мне нужно сделать вывод какой-нибудь музыки или речи (в конце-концов это будет определенная фраза), но чтобы звучание было более-менее правдоподобным. При этом мне не нужно воспроизведение mp3-файлов, это должен быть некий зашитый/статичный массив отсчетов. Может проблема в том, что при моей реализации нужен массив в определенном формате.
Можете посоветовать, в каком направлении покопать.
З.Ы.: с обработкой звуковых файлов пока дело не имел и с кодеками не знаком, поэтому решил пойти таким вот путем вывода звука через встроенный ЦАП без всякой обработки.
|
|
|
|
|
Sep 25 2017, 06:05
|
Группа: Новичок
Сообщений: 2
Регистрация: 24-09-17
Пользователь №: 99 452

|
Цитата(billidean @ Feb 27 2015, 08:27)  В-общем, используя настройку таймера через регистры, добился генерации тактовой на MCLK высокой частоты. Звуковой драйвер работает, транслирует сигнал с ЦАПа на выход наушников. Расскажите как Вам удалось настроить кодек с управлением MCLK по таймеру? Вы режимы I2S изменяли? Режим мастера остается? С разрешенным MCLK_Output? Какая у вас частота проца, какая на шине с таймерами? Какой прескаллер и период на таймере? Какое значение в pulse для шим? У меня нет осциллографа - все делаю вслепую. Вот и спрашиваю всех подряд. Настроил шим на таймере3 на ноге pc7 (channel2) , все что получаю - это писк на выходе кодека через минуту-две после включения таймера.
Сообщение отредактировал Dmitry2017 - Sep 25 2017, 06:05
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|