Op zoek naar een compacte maar krachtige DIY-audioplayer met eindeloze mogelijkheden? Bekijk dan de Card Sound-audioplayer, voor het eerst geïntroduceerd door Falko Bilz in Elektor januari/februari 2018. Het systeem gebruikt een microSD-kaart voor audiogeheugen, wat ruime opslagcapaciteit biedt tegen lage kosten. Nieuwe audiobestanden laadt u eenvoudig vanaf elke laptop op de kaart.

Maar dit audio-spelerproject gaat veel verder dan alleen een simpele speler. Het kan net zo goed dienen als basis voor een hoogwaardige deurbel, een muzikale wekker of zelfs als veelzijdige geluidsmodule voor schaalmodellen, compleet met twee onafhankelijke luidsprekeruitgangen.
 
Sound Card project
De Sound Card audio-speler levert geluidskwaliteit (Class AB-uitgangstrap).

De schakeling

Bekijk het schema en volg de stroom van audiodata vanaf de microSD-kaart in de houder. De kaart communiceert met de microcontroller via een SDIO-interface, die snelle tweerichtingsdataoverdracht mogelijk maakt. Door meerdere datalijnen parallel te gebruiken haalt deze interface een hogere doorvoersnelheid dan de eenvoudigere 1-bit modus. Pull-up weerstanden zorgen voor een betrouwbare werking van de communicatielijnen.
 
Sound Card circuit
Schema van de Card Sound audio-speler. (Klik voor PDF)
Bilz legde uit:

“De audiodata op de SD-kaart wordt in de STM32F401 controller (ST Microelectronics met een Cortex M4-kern) volgens gebruikersinstructies omgezet in PCM-signalen (pulse code modulation) en uitgegeven aan de I²S-bus – een speciale interface voor seriële digitale signalen ontwikkeld door Philips. Deze bus bevat een bit-kloklijn (CK), een data-lijn (SD) en een omschakellijn tussen linker- en rechterkanaal (LRCK). Daarnaast hebben we een Master Clock-lijn (MCK) die niet bij de I²S-specificatie hoort. De vaste verhouding MCK = 256 × LRCK is gedefinieerd door IC2.”

Inschrijven
Schrijf u in voor tag alert e-mails over Audio!

Audio-speler software

De software is geschreven in C, met gebruik van de zogenaamde CMSIS- en FatFS-bibliotheken. Bezoek de projectpagina voor meer info. De meeste bestanden zijn gegenereerd met het configuratieprogramma STM32CubeF4, wat grotendeels voorkomt dat je de referentiehandleiding van de STM32F401 hoeft te bestuderen.

“In dit project heeft de applicatie het bestand main.c als startpunt,” legde de ontwikkelaar uit. “De audio-uitvoer is geïmplementeerd in het bestand waveplayer.c: een databuffer wordt via DMA over de I²S-bus naar de D/A-converter IC5 gestuurd. Wanneer de helft van de buffer is overgedragen, worden de PCM-gegevens voor het volgende WAV-bestand in de andere helft geschreven. Daarbij voegen we een dynamische volumematching in door eenvoudige vermenigvuldiging, met behulp van de zogenaamde Floating Point Unit (FPU). De ‘fade out’-functie gebruikt dit ook. Het eindresultaat is een naadloze I²S-datastroom, waardoor extra rekenkracht beschikbaar blijft voor je eigen toepassingen of toekomstige uitbreidingen (bijvoorbeeld een loudness-functie). De rest van de bestanden zijn grotendeels extra’s met speciale subfuncties.”

Natuurlijk bevat het originele Elektor-artikel nog veel meer details.
 
Sound Card PCBs
De dubbelzijdige printplaat voor de geluidsmodule, met onderdelen aan beide kanten.

Meer over de Card Sound audio speler

Het originele artikel “Card Sound” verscheen in Elektor januari/februari 2018. Je kunt het artikel lezen – gratis gedurende de twee weken na de publicatie van dit nieuwsbericht. Als je een schakeling maakt, denk er dan aan om je voortgang te delen op het Elektor Labs platform!
Redactionele noot: Dit artikel verscheen voor het eerst in 2018. Gezien de leeftijd van het project zijn sommige onderdelen of producten mogelijk niet meer verkrijgbaar, en de belangrijkste ontwerptechnieken kunnen verouderd lijken. Toch denken we dat dit project je zal inspireren om in de toekomst nieuwe ontwerpen te starten.

Inschrijven
Schrijf u in voor tag alert e-mails over Circuits & Circuit Design!