IoT e Makers

9 mar, 2016

Novo driver experimental melhora a qualidade de áudio do Raspberry Pi

Publicidade

Usuários e desenvolvedores apontam a saída de áudio analógico do Raspberry Pi via jack 3.5mm longe de ser ideal. Suas limitações vem desde a criação do primeiro Raspberry Pi e teve algumas melhoras na parte de hardware com a vinda do Raspberry Pi B+.

Mas a uma esperança de que essa situação mude. Um driver experimental reimplementado por um dos engenheiros do Raspberry Pi promete melhorar relativamente a qualidade de áudio analógico (o áudio via cabo HDMI é transmitido por vias digitais e nada tem a ver com esse driver).

De acordo com o site EverPi, o driver original baseado em PWM de 11 bits e 48Khz foi alterado para 7 bits com modulação Sigma-Delta de segunda ordem à 781.25kHz. Segundo informações o “noise floor” se aproxima da qualidade de DACs utilizados em CD players. A diferença pode facilmente notável em um osciloscópio.

Na imagem abaixo é possível ver uma frequência de 6Khz gerada pelo Raspberry Pi com driver antigo (onda vermelha) comparada em paralelo com o driver novo (onda azul):

comparacao

A diferença é claramente notável, com o driver novo é possível gerar senoides com maior perfeição.

Abaixo a mesma comparação em um sinal de 10Khz:

comparacao10khz

Em 10Khz há uma dificuldade ainda maior para se manter a onda senoidal (vermelha), com o driver experimental a diferença é novamente enorme.

Ao gerar FFTs também é possível notar diferenças:

10Khz driver antigo
10Khz driver experimental
10Khz driver experimental

O driver como dito é experimental e instável. Sendo necessário, inclusive, desativar um certo ajuste de atualização da RAM.

Para ativar o driver é necessário atualizar o firmware para o último disponível, que pode ser feito com o seguinte comando: sudo rpi-update.

No arquivo /boot/config.txt adicione as seguintes linhas:

disable_pvt=1
force_turbo=1
audio_pwm_mode=2
audio_sdm_mod_order=2

E reinicie o sistema.

Segundo informado, seria necessário selecionar manualmente o driver para aqueles sem o cabo HDMI conectado utilizando amixer cset numid=3 1. Mas já foram registrados casos em que não foi necessário esse comando (talvez algum update recente no firmware tenha corrigido).

Saiba mais: