ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA Leitor de áudio MP3 e Opus. Enciclopédia de rádio eletrônica e engenharia elétrica Enciclopédia de eletrônica de rádio e engenharia elétrica / Áudio Este artigo descreve um reprodutor portátil caseiro para arquivos de música em formatos comuns de um cartão de memória microSD. É montado no microcontrolador STM32F407VGT6 em um case de um celular NOKIA 1100. O esquema do jogador é mostrado na fig. 1. Aproveita ao máximo os componentes eletrônicos disponíveis na placa de desenvolvimento STM32F4DISCOVERY. Estes incluem o microcontrolador STM32F407VGT6 (DD1), reguladores de tensão integrados LD3985M25R (DA1) e LD3985M33R (DA3), codec CS43L22 (DD2), bem como os necessários componentes passivos. Do celular NOKIA 1100, além do case e da bateria, um conector para conectar fones de ouvido XS3, um painel frontal com LCD HG1, membranas para botões SB1-SB17 formadas por pads de contato concêntricos em uma placa de circuito impresso e um conector para conectar uma bateria G1 foram usados. Além disso, a placa do jogador contém um suporte para um cartão de memória microSD TFC-WPCE-08 (XS1), um grupo de almofadas de contato para conectar o programador Xp1, um conector miniUSB-B 5075BMR-05-SM (XS2).
Os conjuntos de diodos VD1, VD4, VD5, VD6 são usados para proteger contra circuitos de descarga eletrostática conectados aos conectores XS2 e XS3. Os conectores restantes estão localizados dentro do compartimento da bateria e não precisam de proteção. Chip (DA2) é um controlador de carga de bateria de íon-lítio G1 com tensão máxima de 4,2 V. O resistor R9 reduz a queda de tensão neste chip durante o carregamento, fazendo com que ele aqueça. O resistor R10 define a corrente de carga máxima Isal.max de acordo com a fórmula Ipor ap.max = 1000/R10. Com a resistência R10 definida em kiloohms, o valor da corrente de carga é obtido em miliamperes. Recomenda-se carregar uma bateria de íons de lítio com uma corrente não superior a 1C, onde C é a capacidade da bateria. A capacidade da bateria BL-5C usada é de cerca de 1000 mAh, a corrente de carga máxima permitida para o chip LTC4054ES5-4.2 é de 800 mA. Uma vez que o carregamento é realizado a partir do barramento USB, sua capacidade de carga (500 mA) também deve ser levada em consideração. Assim, o valor recomendado de R10 é 2 kOhm. Além disso, medindo a tensão em R10, você pode determinar o valor atual da corrente de carga da bateria usando a fórmula Icobrar= 1000UR10/ R10 (corrente - em miliamperes, tensão - em volts, resistência - em quiloohms). Quando o conector XS2 está conectado ao barramento USB, o transistor de efeito de campo VT1 desconecta a bateria G1 do circuito de alimentação do reprodutor. Uma tensão de 5 V do pino 1 do conector XS2 abre o transistor VT5, a tensão da porta do transistor VT3 torna-se negativa em relação à sua fonte. Transistor VT3 abre, incluindo o jogador. Quando não há tensão no pino 1 do conector XS2, o potencial de porta do transistor VT3 está próximo de seu potencial de fonte e o transistor é fechado. Pressionando o botão SB1 também abre o transistor VT3, o microcontrolador começa a funcionar e verifica o estado deste botão a cada 10 ms. Se for pressionado por mais de 2 segundos, o microcontrolador irá setar um nível de tensão alto na base do transistor VT2, abrindo-o e mantendo o transistor VT3 aberto. Depois disso, o player entra em condição de funcionamento e o botão pode ser liberado. Desligue o player pressionando e segurando o botão SB1 novamente. Após ligar, o microcontrolador inicializa o HG1 LCD e o cartão microSD inserido no suporte XS1, verifica a presença do arquivo de configuração player.ini no diretório raiz do cartão (sistemas de arquivos FAT12, FAT16, FAT32 são suportados). Este é um arquivo ini regular, que é um conjunto de linhas "chave - valor". Ele armazena informações sobre o arquivo de áudio selecionado para reprodução no momento em que o reprodutor foi desligado pela última vez, a posição nele e o volume definido. O programa tenta restaurar esse estado. Em caso de falha (por exemplo, se o cartão foi substituído), o primeiro arquivo de áudio (com a extensão .mp3 ou .opus) do cartão é pesquisado. A pesquisa começa no diretório raiz, os arquivos são pesquisados na ordem em que estão listados na tabela de alocação de arquivos no mapa. Durante a reprodução, periodicamente é chamada a função MainThread do decodificador atual, que realiza a leitura do cartão conforme a necessidade (cada codec é responsável por se armazenar em buffer, pois os formatos dos contêineres de pacotes de áudio para .opus e .mp3 são diferentes) e decodificar . A necessidade de executar essas operações é determinada pela plenitude do buffer circular AudioBuffer, do qual o codec de áudio lê as informações de forma assíncrona. Após a conclusão da decodificação do arquivo de áudio atual, o próximo é pesquisado de acordo com o princípio descrito acima. Se a travessia do sistema de arquivos for concluída, a reprodução será interrompida. O player interage com o usuário por meio de um LCD gráfico monocromático HG1 com resolução de 96x65 px e botões SB 1 -SB 17. É utilizada uma simulação de software do modo de exibição de texto com a tela dividida em oito linhas de 8 px de altura. A barra horizontal restante de 1px na parte inferior da tela é usada para exibir visualmente a posição atual no arquivo durante a reprodução. A primeira linha de cima exibe (da esquerda para a direita) a tensão da bateria, o status do player e o volume. O status é caracterizado pelos caracteres "0" - reprodução, "-" - pausa, "<<" ou ">>" - retrocesso rápido ou avanço rápido, respectivamente, dentro do arquivo. O símbolo em forma de retângulo significa um erro na comunicação dos microcircuitos DD1 e DD2 via interface I2C. As linhas 2 a 6 mostram o caminho completo para o arquivo de áudio que está sendo reproduzido. A linha 8 exibe o tempo de reprodução atual à esquerda e a duração do arquivo de áudio à direita. O botão SB1 alterna entre os modos de reprodução e pausa, o botão SB3 aumenta o volume e o botão SB5 diminui o volume, o botão SB4 liga e o bloqueio do teclado é desativado com o botão SB15. Quando o teclado está bloqueado, "Locked" é exibido no centro da linha 7 do visor. Pressionar o botão SB6 leva à transição para a reprodução do arquivo anterior e o botão SB8 - o próximo. Pressionar e segurar esses botões por mais de um segundo coloca o player no modo de avanço rápido, rebobinando ou avançando, respectivamente. Pressionar o botão SB9 ou SB11 carrega o primeiro e o último arquivo do diretório atual para reprodução, respectivamente. Conector XS3 - disponível no alojamento usado para conectar um fone de ouvido. O próprio fone de ouvido possui um conector para um plugue de áudio padrão com diâmetro de 3,5 mm, ao qual os fones de ouvido são conectados. O fone de ouvido também fornece um botão que, quando pressionado, conecta os circuitos BTN e GND, e a resistência entre os contatos do botão liberado é de cerca de um kiloohm. No player, a linha BTN é conectada ao circuito de 3,3 V por meio de um resistor R21, portanto, medindo a tensão nesta linha, pode-se julgar tanto a presença de um fone de ouvido conectado quanto o estado de seu botão. A função do botão do fone de ouvido é semelhante à função do botão do player SB1 - você pode alternar da reprodução para o modo de pausa e vice-versa e também desligá-lo. No entanto, você não pode ligar o player usando-o. Quando o teclado está bloqueado, o botão do fone de ouvido permanece ativo. O conector XS2 substitui a lente da lanterna LED no telefone. Ao detectar um nível lógico alto na entrada PA1 do microcontrolador conectado ao pino 9 deste conector, o programa passa a exibir a corrente de carga da bateria em amperes no canto superior direito do display. Além disso, este evento liga automaticamente o player se ele estiver desligado. Por padrão, depois disso, o player funciona no modo de reprodução normal, o que permite ouvir música e carregar a bateria ao mesmo tempo. Ao pressionar o botão SB13, o programa salva o estado do player no arquivo player.ini e configura o módulo microcontrolador USB para funcionar no modo MSC (Mass Storage Class). Nesse modo, o computador reconhece o reprodutor conectado ao conector USB como um dispositivo de armazenamento removível, cujo conteúdo corresponde ao registrado no cartão microSD inserido no reprodutor. As informações são trocadas com o computador apenas no modo Full Speed com largura de banda não superior a 12 Mbps. O display ainda mostra o valor atual da corrente de carga, na linha 3 - a inscrição "USB Disk", nas linhas 4 e 5 - respectivamente, a velocidade de leitura e escrita. Ao pressionar o botão SB12, o dispositivo retorna ao modo reprodutor. O desenho da placa de circuito impresso do reprodutor é mostrado na fig. 2. Suas dimensões e formato são idênticos à placa do celular NOKIA 1100, caso em que é colocada (Fig. 3). A placa deve ser fabricada de acordo com a tecnologia com furos metalizados, caso contrário é necessário inserir e soldar pedaços de arame estanhado dos dois lados em todas as vias (com almofadas dos dois lados da placa) e soldá-los dos dois lados. A localização das peças na placa é mostrada na fig. 4 em escala 2:1. Mostra também máscaras feitas de verniz isolante termorresistente, que devem ser usadas para proteger os condutores impressos. Se as máscaras não forem aplicadas, é necessário isolar pelo menos as áreas onde os condutores se aproximam dos contatos impressos dos botões e a área sob a caixa metálica do porta-cartões microSD XS1.
Os códigos do arquivo walkgeek-v1.2-n1100-with-mp3.hex anexado ao artigo devem ser inseridos na memória do microcontrolador instalado na placa. O código-fonte do programa player e todos os seus componentes são distribuídos sob a Nova Licença BSD (e outras compatíveis), o que permite seu uso em projetos comerciais fechados. A exceção é a biblioteca Mp3dec, cuja adição ao produto final requer a divulgação de todos os códigos-fonte. O projeto é constantemente atualizado, e suas versões atualizadas são publicadas em [1]. Como já mencionado, o player oferece a capacidade de reproduzir arquivos Opus. Esta é uma versão estável recentemente lançada de um codec de software [2] para compressão de áudio com perdas desenvolvido pelo projeto Xiph.org, conhecido por soluções como Vorbis, FLAC (Free Lossless Audio Codec - codec para compressão de áudio sem perdas) e Speex (fala codec). Você também pode chamá-lo de Ogg - um contêiner de mídia universal usado por padrão para compactar um fluxo compactado em arquivos Opus. Como o codec Opus é bastante novo, não há muitas implementações dele em sistemas com pouca memória RAM. Uma delas é a Rockbox. No processo de trabalho com o codec, descobriu-se que a biblioteca Ogg aloca memória dinamicamente para armazenar em cache toda a página (o tamanho máximo teórico é de 65 KB, o real é de cerca de 26 KB), bem como para o cache granulepos de todos pacotes de páginas (cerca de 16 KB), o que para um dispositivo com 192 KB de RAM é muito. Além disso, a biblioteca aloca por padrão uma pequena área de memória para o buffer de página, expandindo-a durante a operação e cada vez alocando memória "com uma margem". O mesmo acontece com o buffer para valores de lacing - informações sobre a distribuição dos pacotes na página. Assim, se o pool de memória dinâmica for pequeno, logo levará à sua fragmentação significativa e à impossibilidade de alocação adicional de memória na quantidade necessária. Como resultado das alterações feitas nas bibliotecas, o cache é realizado no nível do pacote (o tamanho máximo de um pacote de informação estéreo transmitido a uma taxa de 512 Kbps é, na prática, 1276 bytes). O tamanho máximo do buffer para valores de laço é de 256 células de byte duplo, e eles também podem ser feitos de byte único. Assim, todas as estruturas associadas ao contêiner Ogg, após a modificação, ocupam menos de 2 KB de RAM. Algumas suposições foram feitas na modificação: os pacotes não podem cruzar os limites da página, as somas de verificação da página não são verificadas (nenhuma delas foi encontrada em nenhum dos arquivos Opus). Trabalhar com arquivos contendo mais de um stream, e com número de canais diferente de dois não foi testado. A quantidade total de memória consumida pelo codec Opus é de 65088 bytes, dos quais 3856 bytes são ocupados pelo buffer de saída. Os resultados do perfil do codec em diferentes taxas de fluxo de informações são mostrados na Tabela. 1. Tabela 1
O conceito de "complexidade" refere-se ao desempenho do processador necessário para uma decodificação bem-sucedida. Foi estimado por cálculo simples usando um temporizador de hardware a diferença entre os momentos de entrada no procedimento de decodificação de cada quadro e saída dele (com multitarefa preemptiva desabilitada e interrupções desabilitadas). O teste mostrou que o codec MP3 requer menos esforço computacional. Mas o Opus é isento de royalties e a qualidade do som é melhor ao usá-lo do que ao usar MP3 e a mesma taxa de bits. Existe uma versão do programa player para a placa de depuração STM32F4DISCOVERY.Os códigos que precisam ser inseridos na memória do microcontrolador instalado nele estão no arquivo walkgeek-v1. 1 -stm32f4discovery-with-mp3.hex (também anexado ao artigo). Neste caso, os arquivos de áudio são reproduzidos a partir de um pendrive conectado ao conector CN5 da placa por meio de um adaptador. O jogador atua como o barramento mestre USB. Seu status é exibido por LEDs laranja, vermelho, azul e verde na placa. Vermelho indica não, verde indica a presença de uma unidade FLASH conectada, laranja indica que um arquivo de áudio está sendo carregado, reprodução interrompida ou erro de programa, azul piscando indica modo de reprodução. A maioria dos botões disponíveis no diagrama da Fig. 1, conectado à placa de depuração de acordo com a tabela. 2 (o segundo contato de cada botão é conectado a um fio comum). A função do botão SB8 é executada pelo botão "Usuário" da placa. O visor do telefone NOKIA 1100 é conectado à placa de depuração de acordo com a tabela. 3. Tabela 2
Tabela 3
Literatura
Autor: O. Tsaregorodtsev Veja outros artigos seção Áudio. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: Máquina para desbastar flores em jardins
02.05.2024 Microscópio infravermelho avançado
02.05.2024 Armadilha de ar para insetos
01.05.2024
Outras notícias interessantes: ▪ Transistores baseados em nanotubos de carbono ▪ Série de smartphones Gigabyte GSmart ▪ Controlador de energia Ethernet MAX5945 Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site Baterias, carregadores. Seleção de artigos ▪ artigo Somos poucos, mas estamos de colete. expressão popular ▪ artigo Como as plantas e os animais conseguem viver no deserto? Resposta detalhada ▪ artigo Geodesista. Descrição do trabalho ▪ Artigo Transformação da bola. Segredo do foco
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |