Retrosounds mit Raspberry Pi Pico: Auf dem Weg zur Pico-Konsole

Ein Mikrocontroller kann Musik fast ohne zusätzliche Hardware erzeugen. Inspiration geben alte Konsolen wie der Gameboy.

Eine Anleitung von Johannes Hiltscher veröffentlicht am
Musiziert nach dem Vorbild alter Konsolen wie dem Gameboy: Der Raspberry Pi Pico.
Musiziert nach dem Vorbild alter Konsolen wie dem Gameboy: Der Raspberry Pi Pico. (Bild: Johannes Hiltscher/Golem.de)

Mal angenommen, jemand wollte eine Retro-Konsole mit dem Raspberry Pi Pico bauen. Was bräuchte er dafür? Als erstes natürlich eine Möglichkeit, ein Bild auszugeben (g+). An zweiter Stelle kämen direkt Musik und Geräusche, sie sind für die Atmosphäre eines Spiels unverzichtbar. Ein Mikrocontroller wie der RP2040 hat ähnliche Einschränkungen wie alte Konsolen, allen voran: wenig Speicher.

Aber werfen wir erst einmal einen Blick darauf, wie Töne erzeugt werden können. An den großen Bruder Raspberry Pi oder andere Single Board Computer würde man einfach einen sogenannten Audio-Codec (für enCOder/DECoder) anschließen - wenn er nicht bereits auf der Platine sitzt. Der Kommunikationsstandard I2S, mit dem die meisten Codecs angesprochen werden, kann mit den programmierbaren Ein-/Ausgabe-Blöcken (Programmable IO, PIO) des RP2040 realisiert werden. In auf den SBCs genutzten SoCs ist eine solche Schnittstelle fest integriert.

Ein Audio Codec erzeugt aus digitalen, gesampelten (abgetasteten) Daten ein analoges Tonsignal. Die meisten Codecs erwarten ein Stereosignal mit 16 Bit pro Abtastpunkt und Kanal bei einer Abtastrate von 44,1 kHz oder 48 kHz. Davon passen in den 264 kByte großen Speicher des RP2040 etwa eineinhalb Sekunden. Den kleinen Speicher könnte der Mikrocontroller aber kompensieren, denn in einem anderen Punkt ist er der Hardware alter 8- und 16-Bit-Konsolen deutlich überlegen: Seine Rechenleistung ist dank zweier ARM Cortex-M0+-Kerne, die jeweils mit 133 MHz takten, deutlich höher.

Sind MP3s eine gute Idee?

Die Rechenleistung des RP2040 macht es möglich, komprimierte Musikformate wie MP3 wiederzugeben. So lassen sich deutlich längere Musikschnipsel in den für heutige Verhältnisse sehr kleinen Arbeitsspeicher packen. Damit könnten beliebige Musikaufnahmen ausgegeben werden, allerdings sprengen auch die schnell den auf 16 MByte beschränkten (externen) Flash-Speicher - zumindest, wenn noch Grafiken hinzu kommen. Dann würde eine SD-Karte erforderlich.

Stellenmarkt
  1. SAP Consultant (m/w/d) FI/CO/PS
    Universitätsklinikum Regensburg, Regensburg
  2. Software Architect - Data Infrastructure (m/f/d)
    Advantest Europe GmbH, Böblingen
Detailsuche

Aber es gibt eine gute Nachricht: In der 8- und 16-Bit-Ära waren 16 MByte Speicher für ein Spielmodul viel. Um Sounds zu erzeugen, haben die Konsolen einen Hardware-Synthesizer eingebaut. Mit dem lassen sich epische Soundtracks erzeugen, die lediglich wenige Kilobyte Speicher benötigen. Das bedeutet, dass sie im Flash-Speicher eines Pico-Boards abgelegt werden können, eine SD-Karte ist also nicht nötig. Zur genauen Funktion der Synthesizer und darauf, wie sie sich effizient nutzen lassen, später mehr. Zuerst einmal brauchen wir eine Möglichkeit, die Töne aus dem Mikrocontroller herauszubekommen. Das funktioniert allein mit der Hardware des RP2040 und einigen Bauteilen für wenige Cent.

Pulsweitenmodulation als Analog-Wandler

Um die im Prozessor digital abgebildeten Töne in ein Spannungssignal zu wandeln und damit einem Lautsprecher Töne zu entlocken, brauchen wir einen Digital-Analog-Wandler (Digital-Analog-Converter, DAC). Er ist eine der zentralen Komponenten des Audio-Codecs. Mikrocontroller haben leider meist keinen eingebaut, so auch der RP2040. Aber eine andere Komponente kann als DAC zweckentfremdet werden: Ein Funktionsblock zur Pulsweitenmodulation (PWM) - und davon hat der RP2040 mit acht Stück mehr als genug. Bei allen Angaben zur Hardware beziehe ich mich auf das Datenblatt des RP2040 (PDF), der gesamte Code zum Artikel findet sich in einem Git-Repository.

Betrachten wir aber zuerst einmal, wie die PWM zum DAC umfunktioniert werden kann und wie wir das Ganze dann mit Daten versorgen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Analogwandlung mit PWM 
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7.  


Aktuell auf der Startseite von Golem.de
Start-ups
Der Osten erfindet sich neu

Start-ups spielen beim wirtschaftlichen Aufholprozess in Ostdeutschland eine zunehmende Rolle - Game Changer sind sie bisher aber nicht.
Ein Bericht von Carolin Wilms

Start-ups: Der Osten erfindet sich neu
Artikel
  1. Superbase V: Zendures Solarstation mit 6.400 Wh kommt mit hohem Rabatt
    Superbase V
    Zendures Solarstation mit 6.400 Wh kommt mit hohem Rabatt

    Vor dem Verkaufsstart über die eigene Webseite verkauft Zendure seine Superbase V über Kickstarter - mit teilweise fast 50 Prozent Rabatt.

  2. Microsofts E-Mail: Modern Auth in Exchange macht Admins Arbeit
    Microsofts E-Mail
    Modern Auth in Exchange macht Admins Arbeit

    Ab dem 1. Oktober 2022 müssen Exchange-Clients zwingend Microsofts moderne Authentifizierung nutzen. Das bedeutet Mehrarbeit.
    Eine Analyse von Oliver Nickel

  3. Tesla Optimus: Elon Musk zeigt Roboter-Prototyp
    Tesla Optimus
    Elon Musk zeigt Roboter-Prototyp

    Roboter könnten für Tesla aus Sicht von Elon Musk bedeutender werden als Elektroautos. Der Konzern zeigte seinen ersten Roboter-Prototypen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindStar (u. a. LC-Power LC-M27-QHD-240-C-K 389€) und Damn-Deals (u. a. Kingston A400 240/480 GB 17,50€/32€, NZXT Kraken X73 139€) • Alternate: Weekend Sale • Razer Strider XXL 33,90€ • JBL Live Pro+ 49€ • PCGH-Ratgeber-PC 3000 Radeon Edition 2.500€ • LG OLED65CS9LA 1.699€ [Werbung]
    •  /