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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> vs1011 щелчки при переключении треков, не могу победить при переключении файлов
Григорий2000
сообщение May 15 2009, 10:42
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



VS1011E При прерывании трека в произвольном месте и начале воспроизведения другого файла даже при осуществлении программного сброса появляется щелчек(иногда) думаю что это остаток от предыдущего файла в выходном буфере. Как рекомендует ANotes после останова загружаю 2048 нулей, затем softreset. Результат такой-же. Кто нибудь сталкивался или это я что-то не так делаю?
Go to the top of the page
 
+Quote Post
muravei
сообщение May 16 2009, 11:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Григорий2000 @ May 15 2009, 14:42) *
и начале воспроизведения другого файла даже при осуществлении программного сброса появляется щелчек(иногда) думаю

я думаю, что прблема чисто аналоговая, что-нибудь с перезарядом разделительных емкостей в усилителе. Я бы попробовал сделать плавный переход от последней "цифры" к первой нового трека.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 16 2009, 20:39
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Дело происходит так: после остановки воспроизведения в произвольном месте фрагмента и остановки все нормально, затем перегружаю vs1011 как написано в рекомендациякх по применению изаливаю туда нули. После паузы любой длительности стартую другой файл или этот-же файл и слышу вначале "щелчек" как-будто этот отрезок остался от прошлого фрагмента в буфере но не вышел из него( FIFO не выплюнул его)/
Пока обошел проблему плавным снижением громкости в ноль перед остановом одного фрагмента, и начинаю поднимать после старта следующего, при этом щелчек происходит в районе громкости 0 и его неслышно.
Go to the top of the page
 
+Quote Post
muravei
сообщение May 17 2009, 10:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Григорий2000 @ May 17 2009, 00:39) *
слышу вначале "щелчек" как-будто этот отрезок остался от прошлого фрагмента в буфере но не вышел из него( FIFO не выплюнул его)/
Пока обошел проблему плавным снижением громкости в ноль перед остановом одного фрагмента, и начинаю поднимать после старта следующего, при этом щелчек происходит в районе громкости 0 и его неслышно.

Думаю, вы слышите переходной процесс , при переходе от нуля к первой "цифре" нового файла.
И если, просто снизите громкость в начале , щелчек тоже заглушите.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 17 2009, 13:11
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Щелчек - это и есть переходной процесс)), которого не должно быть. Четко прослеживается зависимость от того в каком месте прерываемого файла произошел останов. Если это происходит в "тихой" части файла, тогда щелчка или нет, или он очень малозаметен(нет цифрового осцилла не могу посмотреть). В Случае останова на "громком" участке в большинстве случаев(не всегда) слышны как раз переходные процессы. Но нигде не видел упоминания о таком эффекте... либо о том как можно очистить выходной буфер этого декодера. Есть фраза о загрузке нулями в размере 2048 байт после остановки пакетами по 32байта по запросу от декодера и перед воспроизведением следующего файла для устранения переходных процессов, но если я все правильно делаю - это не помогает...
Кстат первая "цифра" следующего файла должна быть равна нулю( всегда пытаюсь так делать при подготовке файлов) как собственно и последняя. для нормального воспроизведения "по кругу".

Сообщение отредактировал Григорий2000 - May 17 2009, 13:14
Go to the top of the page
 
+Quote Post
muravei
сообщение May 18 2009, 09:03
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Григорий2000 @ May 17 2009, 17:11) *
Есть фраза о загрузке нулями в размере 2048 байт после остановки пакетами по 32байта по запросу от декодера и перед воспроизведением следующего файла для устранения переходных процессов, но если я все правильно делаю - это не помогает...
Кстат первая "цифра" следующего файла должна быть равна нулю

Так может попробовать "плавный переход" в размере 2048 байт от последнего значения к первому?
А какому нулю , цифровому или аналоговому? Я думаю , что "ноль" должен быть равен половине питания.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 18 2009, 15:13
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



самое интересное что после прерывания трека и загрузке 2048 нулей во входной буфер, я так понял что выходной буфер при этом не очищается, а очищается только входной(это mp3),
так как я вижу в ходе эксперимента может пройти сколь угодно много времени после окончания воспроизведения старого трека до начала новго трека.
И в начале этого воспроизведения выплюнется именно этот щелчек( ряд отсчетов в выходном буфере оставшийся от предыдущего трека). используя также softreset ничего изменить неудалось...
Конечно ведя речь о нуле имется ввиду не абсолютное значение выходного ЦАП.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Nov 20 2009, 21:32
Сообщение #8


Любитель
*****

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



Кстати, не подскажете, уважаемые.
Вот только думаю заняться воспроизведением музыки с помощью VS1011e.

Файл .mp3 можно с какого места "кидать" в декодер - прямо с самого начала (вместе с заголовком, тэгами и т.д.), или заголовок необходимо откинуть и передавать только сжатый аудио поток?

Ещё вот интересно, кто-нить на АРМе типа STM32 напрямую, безо всяких декодеров, воспроизводил mp3?
Стоит ли заморачиваться с софтом, по силам ли ему такое, если учесть, что кроме самого воспроизведения он будет выполнять роль системного контроллера с доп. задачами?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 12 2009, 11:27
Сообщение #9


Любитель
*****

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



Цитата(Григорий2000 @ May 15 2009, 14:42) *
VS1011E При прерывании трека в произвольном месте и начале воспроизведения другого файла даже при осуществлении программного сброса появляется щелчек(иногда) думаю что это остаток от предыдущего файла в выходном буфере. Как рекомендует ANotes после останова загружаю 2048 нулей, затем softreset. Результат такой-же. Кто нибудь сталкивался или это я что-то не так делаю?

Такая же фигня получается.

После прерывания воспроизведения трека в произвольном месте начинаю воспроизводить следующий - и сразу отчётливо слышно не то что щелчок - а кусок предыдущего трека, длиной в несколько сотен миллисекунд.

Аналогично, выдача 2048 или любого другого кол-ва нулей перед загрузкой нового трека не помогает.
Однако нашёл случайно выход, не затрагивая управление громкостью - вместо нулей передаю декодеру 2 килобайта памяти программ (флеша) biggrin.gif
Пытаясь декодировать код контроллера, декодер благополучно очищает буфера ЦАПов laughing.gif

Ну а вообще, конечно, финнам за такой ляп по голове надавать нужно.
Попробую с ними связаться, может, подскажут что-то более "прямое"...
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 12 2009, 13:41
Сообщение #10


Любитель
*****

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



Хе, сделал проще - не стал вообще закачивать нули перед окончанием трека.
Просто прекращаю передавать данные, и жду сотню-другую миллисекунд.
Вуаля - буфер ЦАПов очищается и они автоматически глушатся.

Получается, что при передаче 2048 нулей DSP останавливает ЦАПы до того, как они успевают вывести весь выходной буфер.
И очищает входной.

А что получается, когда мы просто перестаём передавать данные?
Имхо, декодер дочитает байты из входного буфера и остановится, ЦАПы, в свою очередь, тоже выгребут все готовые семплы и отключатся.

Вуаля - всё чистенько, при воспроизведении след. файла никаких хрипов и старых остатков yeah.gif
И не надо никаких нулевых байтов smile.gif
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 12 2009, 14:11
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(sonycman @ Dec 12 2009, 16:41) *
Вуаля - всё чистенько, при воспроизведении след. файла никаких хрипов и старых остатков yeah.gif
И не надо никаких нулевых байтов smile.gif

Т.е сегодня воевать финнов не будем smile3009.gif maniac.gif ?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 12 2009, 14:15
Сообщение #12


Любитель
*****

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



Цитата(ILYAUL @ Dec 12 2009, 18:11) *
Т.е сегодня воевать финнов не будем smile3009.gif maniac.gif ?

Письмо им я всё равно написал.
Интересно, что подскажут.

Жаль, нет на их сайте форума, только имэйл для помощи...

Имхо, косяк всё же за ними.
Столько лет производят свои декодеры, а до сих пор нет очистки буфера ЦАПов при софтовом сбросе!
Стыд sad.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 14 2009, 11:37
Сообщение #13


Любитель
*****

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



Вот что мне ответили на мой вопрос тех. саппорт VLSI:
>I think this is samples of the last track, which remains in audio DAC
>buffer untouched even after 2048 zeros and software reset.
>

Software reset clears the audio buffer, and if there is no data to be
decoded, zero samples are inserted. Software reset clears the whole
memory, so the windowing history buffer should also be cleared.


Говорят, что вся память очищается при софтовом сбросе.

Однако фактически это не так.

Интересно, такая трабла только с 1011 чипом, а другие (1033, 1053) работают ОК?
Go to the top of the page
 
+Quote Post
011119xx
сообщение Dec 15 2009, 16:02
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



У 1033с такой проблемы пока не заметил
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 15 2009, 16:38
Сообщение #15


Любитель
*****

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



Цитата(011119xx @ Dec 15 2009, 20:02) *
У 1033с такой проблемы пока не заметил

То есть, следуя рекомендациям, пересылаешь 2048 байт нулей, затем софт сброс и передача след. трека?

У меня тоже есть 1033 - лежит в коробке в корпусе LQFP 48.
А на макетку впаял 1011 в SOIC28 - легче паять.
На плату, возможно, тоже поставлю 1033.

Но выход нашёл простой - вообще не шлю нули, просто пауза 50-100 миллисекунд и софт сброс.
Никаких шумов smile.gif

Сейчас спросил у финнов, что за дела такие и как это понимать.
Упорствуют, что память всенепременно очищается при сбросе... smile.gif

Кстати, что такое "history window buffer"?
Go to the top of the page
 
+Quote Post
МП41
сообщение Dec 29 2009, 11:24
Сообщение #16


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Цитата(sonycman @ Dec 14 2009, 13:37) *
so the windowing history buffer should also be cleared

Может не зря они слово "should" применили, означающее "должно быть" в смысле "скорее всего".

Сообщение отредактировал МП41 - Dec 29 2009, 11:25


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
011119xx
сообщение Jan 8 2010, 07:38
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



В данный момент использую VS1033C. Хотел спросить у тех кто имеет больше опыта работы с данной микрой. Какое значение нужно записывать в регистр SCI_CLOCKF при использовании кварца на 24,576МГц? Сейчас я пишу в него 0х8000. В принципе работает, но есть определенные недостатки: при регулировке громкости иногда прослушиваются щелчки, при воспроизведении мп3-файлов присутствует едва заметный шум как-будто усилитель фонит, но не всегда.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 8 2010, 10:17
Сообщение #18


Любитель
*****

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



Цитата(МП41 @ Dec 29 2009, 15:24) *
Может не зря они слово "should" применили, означающее "должно быть" в смысле "скорее всего".

Вот вот, что-то они темнят.
Вот последний ответ, когда они протестировали свою плату моим треком:

Цитата
I tested the vs1011e setup with our parallel-port adapter.
./mp3io ck2.cmd newmode.cmd koe1.mp3 z koe1.mp3 z newmodesoftreset.cmd
newmode.cmd z ~/Delerium\ -\ Angelicus\ \(Andy\ Moor\ Remix\).mp3

What it does:
CLOCKF = 0x9800 (clock-double 12.288MHz)
MODE = 0x0c00
send 120000 bytes from your file
send 2050 zeros -> this fills the partial mp3 frame and causes the
windowing history to have improper data
send 120000 bytes from your file -> causes a short snap to the sound at
start when the incorrect history data goes to output
send 2050 zeros
MODE = 0x0c04 (software reset)
MODE = 0x0c00 (new+shared mode)
send your file -> no snap


Не понятно, признают они, что проблема существует, или нет?

Цитата(011119xx @ Jan 8 2010, 11:38) *
В данный момент использую VS1033C. Хотел спросить у тех кто имеет больше опыта работы с данной микрой. Какое значение нужно записывать в регистр SCI_CLOCKF при использовании кварца на 24,576МГц? Сейчас я пишу в него 0х8000. В принципе работает, но есть определенные недостатки: при регулировке громкости иногда прослушиваются щелчки, при воспроизведении мп3-файлов присутствует едва заметный шум как-будто усилитель фонит, но не всегда.

Ну, я бы не сказал, что у меня много опыта, но попробую ответить, руководствуясь даташитом.
У вас кварц в 24.576 МГц, то есть вы устанавливаете SM CLK RANGE, входная частота делится на 2, и получается 12.288.

Записываемое вами значение 0х8000 означает XTALIЧ3.0 -> внутренняя частота будет равна 12.288 * 3 = 36.864 МГц.
Всё правильно.

Имхо, правильное значение для регистра SCI CLOCKF будет:
1. SC_MULT = 3 (12.288 * 3 = 36.864 - номинальная рабочая частота).
2. SC_ADD = 1 (3 + 1 = 4 * 12.288 = 49.152 - макс. частота при декодировании WMA).
3. SC_FREQ = 0.

В итоге получаем SCI CLOCKF = 0х9000.

Что касается шума, то шумят многие mp3 треки, плюс, естественно, внутренние шумы декодера.
Его ЦАП весьма далёк от совершенства smile.gif

Щелчки при регулировке громкости тоже норма - в 1033 отсутствует схема zero-cross detection for smooth volume change.
Есть только в 1053 smile.gif

ЗЫ: сейчас развожу плату для 1033 + STM32 + SI4700, может, кто нибудь что то посоветует?
Всё таки цифра + аналог, да ещё и радиоприёмник cranky.gif
Go to the top of the page
 
+Quote Post
semonoff
сообщение Jan 9 2010, 11:38
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 29-12-09
Из: Санкт-Петербург
Пользователь №: 54 553



Была такая проблема - щелчки в звутовом тракте воспроизведения при окончании воспроизведения, начале воспроизведения, переключении (окончание одного и начале другого). Если взять "сложный 3 вариант" то избавиться от щелчков удалось следующим образом: окончить звуковой файл на нулевой амплитуде начать новый файл на нулевой амплитуде. Такие же рекомендации применяю при цифровом изменении коэффициента усиления - менять коэффициент усиления можно только при прохождении сигнала через ноль.


--------------------
Париться надо в бане.
Go to the top of the page
 
+Quote Post
011119xx
сообщение Jan 17 2010, 12:15
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



На частоте 8МГц на атмеге у кого-нибудь хватает быстродействия воспроизводить треки с 320кбит/с? У меня нет.
Go to the top of the page
 
+Quote Post
dx40
сообщение Jan 20 2010, 23:22
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 4-05-06
Пользователь №: 16 779



Цитата(011119xx @ Jan 17 2010, 15:15) *
На частоте 8МГц на атмеге у кого-нибудь хватает быстродействия воспроизводить треки с 320кбит/с? У меня нет.

А в чем проблема??? Т.е. откуда эти треки берутся?
Go to the top of the page
 
+Quote Post
ranthunt
сообщение Jun 24 2012, 18:15
Сообщение #22





Группа: Новичок
Сообщений: 5
Регистрация: 24-06-12
Пользователь №: 72 480



Вопрос немного не по теме, но все же спрошу. Тоже использую vs1011. Задумка есть после нее сделать не 2 канала а побольше, наподобие выходов как у магнитолы. 2 передних, 2 задних и саб. Сейчас использую TDA7402 которая по функционалу устраивает на 100% но есть проблемы с ней. Вся система питается от 3.3 вольта а TDA от 9!!!! вольт что крайне не вписывается в схему, при этом греется почему то (микруха точно рабочая) и больно уж она шумная (после vs1011 звук чистый а после TDA с шумами).
Вопрос в том что поставить на замену TDA7402 на 3.3 вольта с выходом на 4 канала и выходом саба.
Go to the top of the page
 
+Quote Post
МП41
сообщение Jun 26 2012, 12:59
Сообщение #23


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Цитата(ranthunt @ Jun 24 2012, 21:15) *
...при этом греется почему то

У неё по документации типовое потребление составляет 50мА, при напряжении 9В мощность получается большая. Так что должна греться.


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01578 секунд с 7
ELECTRONIX ©2004-2016