PSG (AY-3-8910/YM2149) Controller mit AVR (Prototyp).

Wie es funktioniert
Einführung
Es gibt viele andere ähnliche Projekte, aber ich habe versucht, den AY-3-8910 mit einem AVR zu steuern. Es gibt nichts Neues an diesem Projekt.
Programme
Dieses Projekt besteht aus den folgenden Programmen.
-
psg-test.asm -
Ein einfaches Kontrollprogramm für Tests. Dies kann allein verwendet werden.
-
psgplay.asm -
Hauptprogramm.
-
psgplay-commands.asm -
Definitionen von Konstanten
-
tonedata.asm -
Von
bin/tone.plerzeugte Frequenzdaten -
musicdata.asm -
Von
bin/mmlc.plerzeugte Musikdaten
-
-
bin/tone.pl -
Erzeugt Skalendaten, die einer gegebenen PSG-Betriebsfrequenz entsprechen
-
bin/mmlc.pl -
Erzeugt Binärdaten (als
.db) aus MML. Dieses Programm wurde in etwas ungewöhnliche Art geschrieben, da es davon ausgegangen wird, dass das Programm später in Assembly umgeschrieben wird.
Die Daten werden im Voraus in Binärdaten umgewandelt und im AVR geschrieben. Der AVR sendet nur die Daten an den PSG.
Build
Einstellung der Fuse
Wenn Sie, wie in dem obigen Schaltplan gezeigt, den Takt vom AVR an PSG liefern wollen, müssen Sie die Fuse des AVRs setzen. Bei der ATmega48-Serie muss zur Aktivierung von CKOUT das 6te Bit des Low Byte auf 0 gesetzt werden. Einige AVRs (z. B. ATmega8) verfügen kein CKOUT. Wird die PSG mit separaten Takt versorgt, ist die Einstellung der Fuse nicht erforderlich.
Wenn Sie avrdude verwenden, gehen Sie wie folgt vor.
$(...) sollte an Ihre Umgebung angepasst werden.
avrdude -c $(AVRWRITER) -p $(DEVICE) -b $(AVRDUDEBAUDRATE) -U lfuse:w:0x22:mBauverfahren
-
editieren Sie
Makefile(insbesondere den Gerätenamen und die Einstellungen des Brenners) -
make(odermake psg-testfür ein Testprogramm) -
make flash
Repository
Künftige Arbeiten
-
MML über serielle Kommunikation an den AVR zu senden, damit der AVR die Daten in PSG-Daten konvertiert und sie an PSG sendet?
-
Unterstützung von VGM format?
License
-
MIT License
