Jump to content

    
Sign in to follow this  
Almaz1988

Повысить качество звука на аудио устройстве

Recommended Posts

Добрый день.
Разработали плату под управление linux. 
На борту платы аудио-кодек WM8960 и усилитель звука TPA3136D2PWPR.
Со звуком наблюдаются проблемы (см видео):
1. Какие-то потрескивающие шумы во время проигрывания - видимо, аппаратная проблема.
2. После завершения проигрывания файла в течении некоторого времени (2-3 секунды) наблюдается какой-то свист. В это время на шине SAI наблюдается тактирование. Пропадает тактирование - пропадает и шум. Видимо, проблема в софте.

Принципиальная схема - тривиальная, из даташита, на стр 17
Нет идей, сколько это может стоить.

Присылайте отклики на almaz.khamidullin@m2m-tele.com

Share this post


Link to post
Share on other sites

Собирал усилители на TPA3116D2 и TPA3123.  Конкретно на TPA3136D2PWPR не собирал , но она из этого ряда усилителей.

С оконечниками никогда проблем не было. На TPA3116D2 пошел в серию усилитель. Отлично работает.

У вас проблема с кодеком. Его и смотреть надо. Отбросьте сначала усилитель и слушайте звучание кодека на активной колонке. Или сначала отрепетируйте выходной усилитель, подключите к нему нормальную акустику , а потом возитесь с кодеком.

 

Непонятно как подключен усилитель TPA3136D2PWPR к кодеку, сначала нужно видеть схему.

Как у вас согласован выход кодека с усилителем.

"Принципиальная схема - тривиальная, из даташита, на стр 17 " = расчитана на несимметричный выход , а как вы подключили кодек к усилителю ХЗ. выход кодека симметричный и расчитан на низкоомный динамик.

Edited by smart_pic

Share this post


Link to post
Share on other sites

По поводу второго пункта - у нас были "щелчки" перед и после аудиодорожки.
Глянули скопом на сигнал - у кодека средняя точка по DC возвращается в 0 при выключении дорожки.
Поковырялись в альсе в линуксе, вроде там был параметр, который не давал кодеку выключаться - сейчас все ок.

А на видео, как выше уже отметили, действительно пердеж в уши, и объективно оценить качество нельзя.

Share this post


Link to post
Share on other sites

Задача решается уменьшением громкости в разы — видео явно не полное, динамик перегружен на порядки, аж подпрыгивает, в конце его должно было таки порвать в клочья.

Share this post


Link to post
Share on other sites

Новое видео.
Громкость убавил, динамик не скачет. Он просто свистит.
На видео на заднем плане экран логического анализатора, который висит на I2C-шине кодека (WM8960). Можно разглядеть три метки времени, на которых по шине проходят пакеты.

  1. Первая пачка пакетов проходит в момент включения воспроизведения аудио командой aplay:
    write to 0x1A ack data: 0x0E 0x4E 
    write to 0x1A ack data: 0x6A 0x30 
    write to 0x1A ack data: 0x6C 0x00 
    write to 0x1A ack data: 0x6E 0x03 
    write to 0x1A ack data: 0x68 0x36 
    write to 0x1A ack data: 0x34 0x01 
    write to 0x1A ack data: 0x08 0x49 
    write to 0x1A ack data: 0x32 0xC0 
    write to 0x1A ack data: 0x35 0x81 
    write to 0x1A ack data: 0x5E 0x0C 
    write to 0x1A ack data: 0x35 0xF9 
    write to 0x1A ack data: 0x62 0xF7 
    write to 0x1A ack data: 0x0A 0x00 
    Парсинг этих пакетов согласно даташиту:
    INFO:ICs.wm8960.parser:  R7 0x4e
    INFO:ICs.wm8960.parser:  R7: Left/right ADC channel swap - no swap
    INFO:ICs.wm8960.parser:  R7: BCLK invert bit - not inverted
    INFO:ICs.wm8960.parser:  R7: Master/slave mode control - enable slave mode
    INFO:ICs.wm8960.parser:  R7: Left/right DAC channel swap - no swap
    INFO:ICs.wm8960.parser:  R7: Left/right DAC channel swap - normal LRCLK polarity/MSB available on 2nd BCLK rising edge (DSP mode)
    INFO:ICs.wm8960.parser:  R7: Audio data Word length - 32 bits
    INFO:ICs.wm8960.parser:  R7: Audio Data Format Select - I2S format
    
    INFO:ICs.wm8960.parser:  R53 0x30
    INFO:ICs.wm8960.parser:  R53: Fractional (K) part of PLL1 input/output freq ratio. - 48
    
    INFO:ICs.wm8960.parser:  R54 0x0
    INFO:ICs.wm8960.parser:  R54: Fractional (K) part of PLL1 input/output freq ratio. - 0
    
    INFO:ICs.wm8960.parser:  R55 0x3
    INFO:ICs.wm8960.parser:  R55: Fractional (K) part of PLL1 input/output freq ratio. - 3
    
    INFO:ICs.wm8960.parser:  R52 0x36
    INFO:ICs.wm8960.parser:  R52: SYSCLK Output to GPIO Clock Division Ratio - SYSCLK
    INFO:ICs.wm8960.parser:  R52: Enable Integer Mode - Fractional Mode
    INFO:ICs.wm8960.parser:  R52: Divide MCLK by 2 before input to PLL - Divide by 2
    INFO:ICs.wm8960.parser:  R52: Integer (N) part of PLL input/output freq ratio. User 5 < x < 13. - None
    
    INFO:ICs.wm8960.parser:  R26 0x1
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power down
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power down
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power up
    
    INFO:ICs.wm8960.parser:  R4 0x49
    INFO:ICs.wm8960.parser:  R4: ADC sample rate divider - SYSCLK / (1.5 * 256)
    INFO:ICs.wm8960.parser:  R4: DAC Sample rate divider - SYSCLK / (1.5 * 256)
    INFO:ICs.wm8960.parser:  R4: SYSCLK Pre-divider. MCLK/PLL output will be predivided by this value to generate SYSCLK - divide SYSCLK by 1
    INFO:ICs.wm8960.parser:  R4: SYSCLK Selection - SYSCLK derived from PLL output
    
    INFO:ICs.wm8960.parser:  R25 0xc0
    INFO:ICs.wm8960.parser:  R25: Vmid Divider Enable and Select - 2 x 50kOhm divider enabled (for playback / record)
    INFO:ICs.wm8960.parser:  R25: VREF - Power up
    INFO:ICs.wm8960.parser:  R25: Analogue in PGA Left - Power down
    INFO:ICs.wm8960.parser:  R25: Analogue in PGA Right - Power down
    INFO:ICs.wm8960.parser:  R25: ADC Left - Power down
    INFO:ICs.wm8960.parser:  R25: ADC Right - Power down
    INFO:ICs.wm8960.parser:  R25: MICBIAS - Power down
    INFO:ICs.wm8960.parser:  R25: Master clock disable - Master clock enabled
    
    INFO:ICs.wm8960.parser:  R26 0x181
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power up
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power up
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power up
    
    INFO:ICs.wm8960.parser:  R47 0xc
    INFO:ICs.wm8960.parser:  R47: Left channel input PGA enable - PGA disabled
    INFO:ICs.wm8960.parser:  R47: Right channel input PGA enable - PGA disabled
    INFO:ICs.wm8960.parser:  R47: Left output mixer enable control - enabled
    INFO:ICs.wm8960.parser:  R47: Right output mixer enable control - enabled
    
    INFO:ICs.wm8960.parser:  R26 0x1f9
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power up
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power up
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power up
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power up
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power up
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power up
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power up
    
    INFO:ICs.wm8960.parser:  R49 0xf7
    INFO:ICs.wm8960.parser:  R49: Enable class D Speaker Outputs - Left and Right speaker only
    
    INFO:ICs.wm8960.parser:  R5 0x0
    INFO:ICs.wm8960.parser:  R5: DAC 6db Attenuate Enable - DAC attenuate disabled
    INFO:ICs.wm8960.parser:  R5: ADC polarity - polarity not inverted
    INFO:ICs.wm8960.parser:  R5: DAC Digital Soft - No mute
    INFO:ICs.wm8960.parser:  R5: De-emphasis Control - No de-emphasis
    INFO:ICs.wm8960.parser:  R5: ADC High Pass Filter - Enable


    2. Вторая пачка, состоящая из одного единственного пакета проходит в момент завершения работы программы aplay:
    write to 0x1A ack data: 0x0A 0x08 
    Парсинг этого пакета:
    INFO:ICs.wm8960.parser:  R5 0x8
    INFO:ICs.wm8960.parser:  R5: DAC 6db Attenuate Enable - DAC attenuate disabled
    INFO:ICs.wm8960.parser:  R5: ADC polarity - polarity not inverted
    INFO:ICs.wm8960.parser:  R5: DAC Digital Soft - Mute
    INFO:ICs.wm8960.parser:  R5: De-emphasis Control - No de-emphasis
    INFO:ICs.wm8960.parser:  R5: ADC High Pass Filter - Enable

    3. Третья пачка проходит спустя несколько секунд после завершения работы программы aplay. Свист прекращается только после этого события:
    write to 0x1A ack data: 0x08 0x48 
    write to 0x1A ack data: 0x35 0xF8 
    write to 0x1A ack data: 0x35 0x80 
    write to 0x1A ack data: 0x62 0x37 
    write to 0x1A ack data: 0x5E 0x00 
    write to 0x1A ack data: 0x34 0x00 
    write to 0x1A ack data: 0x33 0x40 
    Парсинг этих пакетов:
    INFO:ICs.wm8960.parser:  R4 0x48
    INFO:ICs.wm8960.parser:  R4: ADC sample rate divider - SYSCLK / (1.5 * 256)
    INFO:ICs.wm8960.parser:  R4: DAC Sample rate divider - SYSCLK / (1.5 * 256)
    INFO:ICs.wm8960.parser:  R4: SYSCLK Pre-divider. MCLK/PLL output will be predivided by this value to generate SYSCLK - divide SYSCLK by 1
    INFO:ICs.wm8960.parser:  R4: SYSCLK Selection - SYSCLK derived from MCLK
    
    INFO:ICs.wm8960.parser:  R26 0x1f8
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power up
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power up
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power up
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power up
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power up
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power up
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power down
    
    INFO:ICs.wm8960.parser:  R26 0x180
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power up
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power up
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power down
    
    INFO:ICs.wm8960.parser:  R49 0x37
    INFO:ICs.wm8960.parser:  R49: Enable class D Speaker Outputs - Off
    
    INFO:ICs.wm8960.parser:  R47 0x0
    INFO:ICs.wm8960.parser:  R47: Left channel input PGA enable - PGA disabled
    INFO:ICs.wm8960.parser:  R47: Right channel input PGA enable - PGA disabled
    INFO:ICs.wm8960.parser:  R47: Left output mixer enable control - disabled
    INFO:ICs.wm8960.parser:  R47: Right output mixer enable control - disabled
    
    INFO:ICs.wm8960.parser:  R26 0x0
    INFO:ICs.wm8960.parser:  R26: DAC Left - Power down
    INFO:ICs.wm8960.parser:  R26: DAC Right - Power down
    INFO:ICs.wm8960.parser:  R26: LOUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: ROUT1 output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_LP/SPK_LN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: SPK_RP/SPK_RN output buffers - Power down
    INFO:ICs.wm8960.parser:  R26: OUT3 Output buffer - Power down
    INFO:ICs.wm8960.parser:  R26: PLL Enable - Power down
    
    INFO:ICs.wm8960.parser:  R25 0x140
    INFO:ICs.wm8960.parser:  R25: Vmid Divider Enable and Select - 2 x 250kOhm divider enabled (for low-power standby)
    INFO:ICs.wm8960.parser:  R25: VREF - Power up
    INFO:ICs.wm8960.parser:  R25: Analogue in PGA Left - Power down
    INFO:ICs.wm8960.parser:  R25: Analogue in PGA Right - Power down
    INFO:ICs.wm8960.parser:  R25: ADC Left - Power down
    INFO:ICs.wm8960.parser:  R25: ADC Right - Power down
    INFO:ICs.wm8960.parser:  R25: MICBIAS - Power down
    INFO:ICs.wm8960.parser:  R25: Master clock disable - Master clock enabled

    И да, едва различимый свист слышен сразу после подачи питания на плату.

    Задача по-прежнему актуальна. По-прежнему непонятно, в чем проблема - в железе и/или софте и как это лечить.

Share this post


Link to post
Share on other sites

Однозначно не скажешь -

7 hours ago, Almaz1988 said:

в чем проблема - в железе и/или софте

Сначала можно посмотреть схему, потом провести некоторые измерения, и потом уже принимать решения относительно проблемы.

Писал в личку. Повторюсь: дайте свои контакты , что бы можно было помочь.

Share this post


Link to post
Share on other sites
On 10/8/2021 at 10:06 PM, Almaz1988 said:

Добрый день.
Разработали плату под управление linux. 
На борту платы аудио-кодек WM8960 и усилитель звука TPA3136D2PWPR.
Со звуком наблюдаются проблемы (см видео):
1. Какие-то потрескивающие шумы во время проигрывания - видимо, аппаратная проблема.
2. После завершения проигрывания файла в течении некоторого времени (2-3 секунды) наблюдается какой-то свист. В это время на шине SAI наблюдается тактирование. Пропадает тактирование - пропадает и шум. Видимо, проблема в софте.

Принципиальная схема - тривиальная, из даташита, на стр 17
Нет идей, сколько это может стоить.

Присылайте отклики на almaz.khamidullin@m2m-tele.com

Ты бы для начала схему показал...

Share this post


Link to post
Share on other sites
08.10.2021 в 23:43, aaarrr сказал:

На видео наблюдаются проблемы с акустическим оформлением. Как можно судить о качестве звука от перегруженного динамика в КЗ?

Да уж. Через такой динамих хотеть качественный звук бессмысленно.  Видимо, не хватило средств на покупку самых недорогих АС  :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this