|
vs1011 щелчки при переключении треков, не могу победить при переключении файлов |
|
|
|
Nov 20 2009, 21:32
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Кстати, не подскажете, уважаемые. Вот только думаю заняться воспроизведением музыки с помощью VS1011e.
Файл .mp3 можно с какого места "кидать" в декодер - прямо с самого начала (вместе с заголовком, тэгами и т.д.), или заголовок необходимо откинуть и передавать только сжатый аудио поток?
Ещё вот интересно, кто-нить на АРМе типа STM32 напрямую, безо всяких декодеров, воспроизводил mp3? Стоит ли заморачиваться с софтом, по силам ли ему такое, если учесть, что кроме самого воспроизведения он будет выполнять роль системного контроллера с доп. задачами?
|
|
|
|
|
Dec 12 2009, 11:27
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Григорий2000 @ May 15 2009, 14:42)  VS1011E При прерывании трека в произвольном месте и начале воспроизведения другого файла даже при осуществлении программного сброса появляется щелчек(иногда) думаю что это остаток от предыдущего файла в выходном буфере. Как рекомендует ANotes после останова загружаю 2048 нулей, затем softreset. Результат такой-же. Кто нибудь сталкивался или это я что-то не так делаю? Такая же фигня получается. После прерывания воспроизведения трека в произвольном месте начинаю воспроизводить следующий - и сразу отчётливо слышно не то что щелчок - а кусок предыдущего трека, длиной в несколько сотен миллисекунд. Аналогично, выдача 2048 или любого другого кол-ва нулей перед загрузкой нового трека не помогает. Однако нашёл случайно выход, не затрагивая управление громкостью - вместо нулей передаю декодеру 2 килобайта памяти программ (флеша) Пытаясь декодировать код контроллера, декодер благополучно очищает буфера ЦАПов Ну а вообще, конечно, финнам за такой ляп по голове надавать нужно. Попробую с ними связаться, может, подскажут что-то более "прямое"...
|
|
|
|
|
Dec 12 2009, 13:41
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Хе, сделал проще - не стал вообще закачивать нули перед окончанием трека. Просто прекращаю передавать данные, и жду сотню-другую миллисекунд. Вуаля - буфер ЦАПов очищается и они автоматически глушатся. Получается, что при передаче 2048 нулей DSP останавливает ЦАПы до того, как они успевают вывести весь выходной буфер. И очищает входной. А что получается, когда мы просто перестаём передавать данные? Имхо, декодер дочитает байты из входного буфера и остановится, ЦАПы, в свою очередь, тоже выгребут все готовые семплы и отключатся. Вуаля - всё чистенько, при воспроизведении след. файла никаких хрипов и старых остатков И не надо никаких нулевых байтов
|
|
|
|
|
Dec 12 2009, 14:15
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(ILYAUL @ Dec 12 2009, 18:11)  Т.е сегодня воевать финнов не будем  ? Письмо им я всё равно написал. Интересно, что подскажут. Жаль, нет на их сайте форума, только имэйл для помощи... Имхо, косяк всё же за ними. Столько лет производят свои декодеры, а до сих пор нет очистки буфера ЦАПов при софтовом сбросе! Стыд
|
|
|
|
|
Dec 15 2009, 16:38
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(011119xx @ Dec 15 2009, 20:02)  У 1033с такой проблемы пока не заметил То есть, следуя рекомендациям, пересылаешь 2048 байт нулей, затем софт сброс и передача след. трека? У меня тоже есть 1033 - лежит в коробке в корпусе LQFP 48. А на макетку впаял 1011 в SOIC28 - легче паять. На плату, возможно, тоже поставлю 1033. Но выход нашёл простой - вообще не шлю нули, просто пауза 50-100 миллисекунд и софт сброс. Никаких шумов  Сейчас спросил у финнов, что за дела такие и как это понимать. Упорствуют, что память всенепременно очищается при сбросе...  Кстати, что такое "history window buffer"?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|