Перейти к содержанию
    

stm32f4discovery проблема настройки cs43l22

Добрый день всем.

Имеется у меня плата 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?

 

Заранее благодарю за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В инете натыкался на процедуры инициализации для режима воспроизведения цифрового потока, подаваемого по I2S. Но мне этот режим не нужен.

Насколько я понял для работы кодек использует частоту, подаваемую на MCLK.

Поэтому без I2S удет сложно. Как вариант, попробуйте подать на MCLK (PC7) меандр, частотой 12.8МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получилось запустить работу этой микросхемы, была проблема с выдачей частоты на РС7.

Но частота эта довольно маленькая получается - 350кГц. Выше поднять не получается, проект не апускается.

Делаю так: таймер использую третий, настроил на частоту 42МГц, настроил выход на Toggle, АRR делаю 60, вывод настроил как высокоскоростной. В таком исполнении работает.

Как только делаю ARR 50 и меньше, проект вываливается на первом же прерывании от таймера.

 

Не знаю пока, как победить. В доке о таком ограничении, да и вообще об ограничении на таймеры, ничего не нашел.

 

Но если бы поднять частоту, то звук получше бы стал.

 

Подскажите кто-нибудь как выдать на ногу бОльшую частоту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да.нет. я прерывание не использую. Я настроил таймер чтобы он сразу на ногу выводил свой сигнал. Задействовал режим Toggle в регистре управления таймером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда не очень понятно что имеется ввиду

Как только делаю ARR 50 и меньше, проект вываливается на первом же прерывании от таймера.

 

по идее с таймером 42 МГц вы можете иметь частоту под 21 МГц.

сброс по достижению 1 регистра

значение регистра в 1

и вперед, как это может не работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да в том-то и дело, что из документации ясно, что это должно работать, как Вы и говорите - счет до 1 и сброс, т.е. делитель частоты на два.

Но почему-то не работает.

Может проблема связана с Осью. ChibiOS имеет в себе драйвера для периферии (hal), и проект я делал используя их. Я ChibiOS недавно использую, может и я где-то что-то не увидел. А может лучше все на регистрах сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В-общем, используя настройку таймера через регистры, добился генерации тактовой на MCLK высокой частоты.

Звуковой драйвер работает, транслирует сигнал с ЦАПа на выход наушников.

 

Теперь проблема другого плана.

Я в проекте еще не дошел до работы с SD-картой. Поэтому для вывода звука нашел в инете некий массив (около 360 слов), в котором расположены отсчеты звука, некая мелодия. Настроив таймер управления ДМА, выдающего эти отсчеты в ЦАП, на определенную частоту, слышу эти самые отсчеты. И складывается ощущение, что чего-то не хватает, звук какой-то недоделанный. Меняя частоту работы ДМА изменяется только тональность всей мелодии в целом.

Нашел еще несколько массивов звуков. Эффект или такой же, или еще хуже.

 

По задаче мне нужно сделать вывод какой-нибудь музыки или речи (в конце-концов это будет определенная фраза), но чтобы звучание было более-менее правдоподобным. При этом мне не нужно воспроизведение mp3-файлов, это должен быть некий зашитый/статичный массив отсчетов.

Может проблема в том, что при моей реализации нужен массив в определенном формате.

 

Можете посоветовать, в каком направлении покопать.

 

З.Ы.: с обработкой звуковых файлов пока дело не имел и с кодеками не знаком, поэтому решил пойти таким вот путем вывода звука через встроенный ЦАП без всякой обработки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можете посоветовать, в каком направлении покопать.

В каком формате массив данных? Битность? Знаковость?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В-общем, используя настройку таймера через регистры, добился генерации тактовой на MCLK высокой частоты.

Звуковой драйвер работает, транслирует сигнал с ЦАПа на выход наушников.

 

Расскажите как Вам удалось настроить кодек с управлением MCLK по таймеру?

Вы режимы I2S изменяли? Режим мастера остается? С разрешенным MCLK_Output?

 

Какая у вас частота проца, какая на шине с таймерами? Какой прескаллер и период на таймере? Какое значение в pulse для шим?

 

У меня нет осциллографа - все делаю вслепую. Вот и спрашиваю всех подряд.

 

Настроил шим на таймере3 на ноге pc7 (channel2) , все что получаю - это писк на выходе кодека через минуту-две после включения таймера.

Изменено пользователем Dmitry2017

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...