|
Startseite | Impressum |
Das ITP3-Modul - SNDMOD3 bildet eine CP/M Audio-Schnittstelle (SOUND) für einen ITP3-Server (z-meic, i-meic) ab.
Im Original CP/M war keine Audio-Schnittstelle vorgesehen. Es gab aber eine Schnittstelle für den Stanzer (gemeint ist Lochkartenstanzer oder Lochbandstanzer). Die genaue Bezeichnung ist PUNCH/AUXOUT (bios function 6).
Für PUNCH/AUXOUT wird bei allen z-meic und i-meic CP/M-Implementierungen stattdessen SOUND genutzt.
Die Hardware des SNDMOD3-Moduls besteht aus einem ATMEGA328P, einem 8-Bit D/A-Wandler mit R/2R-Netzwerk, einem Verstärker mit dem IC LM386 sowie einem Lautsprecher zur Ausgabe der Töne.
Mit dieser Konfiguration ist die Ausgabe einfacher Töne und Tonsequenzen möglich.
Für die Entwicklung einer umfangreichen Software hatte ich bisher noch nicht die Zeit. Insbesondere sollte ein einheitliches Protokoll für die Ausgabe von Tönen und Tonsequenzen entwickelt werden. Dabei könnte man sich an bestehende Audio-Protokolle anlehnen wie z.B.:
In der hier vorgestellten Softwarevariante wird lediglich seitens des CP/M-BIOS der Startcode PLAY_START_SOUND=01H an die Soundschnittstelle gesendet. Diese spielt darauf hin die Sequenz:
"CP/M wurde gestartet"
ab. Mit diesen WAV-Daten (abgelegt im CONST-Array "CPM_START_TAB" in der Datei CPM_Start.INC) ist der Flash-Speicher des ATMEGA328P bereits gefüllt.
Weitere Audiosequenzen müssen anders generiert werden.
SNDMOD3 HEX-Datei: SNDMOD3.zip |
Zur schnellen Installation genügt es, die Intel-Hex-Datei der Firmware des SNDMOD3 (siehe Download) in den ATMEGA328P zu brennen.
Dazu ist ein AVR ISP-Programmer und die Installation der dafür notwendigen Treiber erforderllich.
Als Brennprogramm kann BitBurner von Nick Metcalfe genutzt werden. Unter:
sind der Download-Link und einige Hinweise zum Programm angegeben.
Nach dem Start des Programms BitBurner wird unter dem Reiter AVRdude und dem Auswahlmenü AVR Device der zu programmierende Mikrocontroller ausgewählt. Für das SNDMOD3-Board ist es der ATMEGA328P.
Unter dem Auswahlmenü Programmer wird das Protokoll des aktuell angeschlossenen AVR ISP-Programmer ausgewählt. In diesem Beispiel wurde ein USBasp AVR ISP Programmer genutzt. Der USBasp AVR ISP Programmer nutzt das Protokoll (usbasp).
Anschliessend können unter dem Reiter AVR Fuses die Fuses des Mikrocontroller auf dem Zielboard gelesen und neu beschrieben werden.
Für das SNDMOD3-Board müssen die Fuses auf:
Low Fuses: FF
High Fuses: D9
gesetzt werden.
Zum Brennen des Flash-Speichers des Mikrocontrollers wird unter dem Reiter AVR Memories und dem Auswahlmenü Flash der Pfad der Intel-Hex-Datei mit den zu brennenden Daten ausgewählt.
Mit dem Button Write wird der Inhalt der ausgewählten Intel-Hex-Datei in den Flash des Microcontrollers (hier ATMEGA328P) gebrannt.
Alle Meldungen des Programms avrdude werden im Meldefenster unten angezeigt.
Quelltext SNDMOD3 Version 1.0 vom 15.04.2020 (für RONPAS-Compiler): RONPAS_SNDMOD3.ZIP |
Für die Übersetzung des Quelltextes wird der RONPAS-Compiler benötigt.
Die Fuses des ATMEGA328P müssen wie folgt gesetzt werden:
Low Fuses: FF
High Fuses: D9
Schaltplan SNDMOD3 als PDF: SNDMOD3.pdf |
Schaltplan SNDMOD3 als SVG: SNDMOD3.svg |
Hier sind alle notwendigen KiCAD-Dateien inklusive der projektspezifischen (meist eigene) Symbole und Footprints.
SNDMOD3 KiCad-Dateien: KiCAD5_SNDMOD3.zip |
Für die Entwicklung wurde KiCAD Version 5.1.12 genutzt.
Die hier angegebenen Gerberdateien sind die Originaldateien, mit denen der Prototyp angefertigt wurde.
SNDMOD3 Gerber-Dateien, Stand 09.06.2020: gerber_SNDMOD3.zip |
Die Gerberdateien können direkt an einen Leiterplattenfertiger weitergeleitet werden.
Für die Anfertigung des Prototypen wurde jlcpcb.com genutzt (sehr günstig, sehr gute Qualität und schnelle Lieferung (meist um die 10 Tagen nach Bestellung)).
Hardware: D/A-Wandler, Audioverstärker und Lautsprecher bilden eine gute Hardwarebasis für weitere Entwicklungen.
Die Software ist nur eine sehr einfache Version einer Testvariante, die noch weiter entwickelt werden muss.
Startseite | Impressum |