DEV-TRONIC.de

Z80Ardu – Soundkarte mit SN76489 (WIP)

Der Baustein SN76489 wurde von Texas Instruments gebaut und in vielen frühen Homecomputern und Konsolen eingebaut. Bei dem Baustein handelt es sich um einen „Digital Complex Sound Generator“ oder auch PSG (programmable sound generator) genannt.

Die hier gezeigte „Soundkarte“ ist aus der Sicht der Elektronik wirklich einfach aufgebaut. Aus der Sicht der Programmierung ist es ein wenig komplizierter.

Prototyp der „Soundkarte“. Auf dem gezeigten Bild ist noch ein Quarzoszillator verbaut, der eigentlich nicht ganz passend ist. Üblicherweise würde man 3,57 MHz einsetzen.

Hier ist auch noch ein kleines Musikpröbchen. Abgespielt über den oben gezeigten Prototyp. Der Verstärker ist allerdings ein LM386 mit 200-facher Verstärkung, was zu starkem Rauschen und Knacken führt. In dem unten gezeigten Schaltplan für die Soundkarte ist die Verstärkung auf 20-fach begrenzt.

Am Anfang der Hörprobe ist leider noch ein Hup-Ton zu hören. Das liegt an meinem schlecht programmierten Player 😀

Bubble Bobble Theme

Um den Prototyp testen zu können, habe ich ein Programm für den Z80Ardu geschrieben. Basis dafür ist ein VGM-Player, der mal für MSX Computer erstellt wurde. Ich selbst bin mit der genauen Programmierung des SN76489 nicht ganz so vertraut (Aber das wird sicher noch).

Da das Programm für den Z80Ardu geschrieben wurde, passt es zunächst auch nur für diesen kleinen Computer. Die Wiedergabe wird per Interrupt gesteuert. Beim Z80Ardu wird am Prozessoreingang /INT über die Grafikkarte (mit dem MC6847-Chip) bei jedem Vertical Sync Pulse ein Interrupt ausgelöst. Der Grafikchip wird aktuell mit 3,57 Mhz betrieben, was der Color Burst Frequenz von NTSC entspricht (60 Hz).

Unter Berücksichtigung dieser Bedingungen, kann das Kernmodul im Programm auch in anderen Computern genutzt werden. Bitte berücksichtigt, dass das Programm ein Testprogramm ist. Die einzelnen Programmteile enthalten so einiges an Overhead, da ich es immer wieder für unterschiedliche Testszenarien verwende.

Der eigentliche Player ist ein eigener Programmteil, der für das Abspielen an sich genügt.

Soundkarte für den Z80Ardu mit zwei SN76489 und zwei kleinen Vorverstärkern. Bislang ist das so noch ungetestet (Stand 30.03.2022). Der gezeigte Quarzoszillator ist im Plan nicht spezifiziert. Darauf muss man also achten. Und das verwendete Symbol ist eine Eigenkreation. Auf einer Platine kann das dann ein Oszillator im Format DIP14 oder DIP8 sein. Da wollte ich für mich ein wenig Freiheit und Flexibilität haben.

Die oben gezeigte Version FUNKTIONIERT LEIDER NICHT! Die Verstärkerstufen rauschen viel zu stark!!

Im Juni 2022 habe ich eine neue Version ohne Verstärker entworfen. Der SN76489 funktioniert ganz hervorragend, wenn man am Audioausgang einen Kondensator anschließt. Das Audiosignal hat dann einen ordentlichen Pegel und es rauscht auch nicht.

Meine neuen Platinen haben dennoch nicht funktioniert, da sich im Gerberfile zwei Fehler eingeschlichen hatten. Naja, dann auf ein Neues!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.