Soundkarte
SOUND-Karte für K1520 http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=14846
Entwickler: Daniel Auerbach, 2017
Diese SOUND-Karte ist aus wenigen Bauteilen aufgebaut und kann prinzipiell in allen K1520-Systemen eingesetzt werden. Sie ermöglicht mittels „Programmierbarem Soundgenerator“ (PSG) AY-3-8910 bzw. AY-3-8912 das Abspiel von Geräuschen und Musiken.
- Basisadresse 38h - Stereo. 2x2W mit PAM-Verstärker - die kleinen Lausprecherhalter sind 3D-gedruckt - CTC für interruptgesteuerte Soundwiedergabe (50Hz-Interrupt) - STC-Sounds Sound Tracker vom ZX Spectrum (Player Win z.B. Ay_Emul29b24-32.7z, Tausende Songs in Tr_Songs.7z)
Leerlauf ca. 260 mA. die Ports haben interne Pullup Widerstände (ca. 60.. 100 kOhm) und werden ohne externe Beschaltung immer als HIGH gelesen. Bei den Demoprogrammen gibt es für den KC87 bzw. BC in einem Programm eine ganz kleine Testroutine, wo die Ports gelesen und auch geschrieben werden können. Die Quellen liegen bei.
Software + Unterlagen: http://www.k1520.8i8.de/
Der KC87-USB Player macht Spass! Vielen Dank für diese Software.
Anmerkungen: Für den USB-Player ist eine Unterverzeichnis \STC anzulegen. Das Unterverzeichnis \STC also immer im auf der obersten Ebene anlegen.
Die entsprechenden Songs sind beim Download auf http://www.k1520.8i8.de/ nicht enthalten. Man findet sie aber im KC-Labor unter Downloads/CAOS Software/Musik und Demos im Download für den M066 Soundmodul USB-Player.
Software-Problem:
http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=15184
m Zusammenhang mit einigen Tests mit dem K1520-SOUND-Modul…
habe ich ein Problem beim Interrupt, den die CTC auf der SOUND-Modul (alle 20ms) auslöst. Folgender Stand: 1. Die CTC auf dem SOUND-Modul löst einen Interrupt aus…. macht sie auch. 2. Der Interruptvector wird auch korrekt von der CPU gelesen, die zugehörige Interrupt-Routine angesprungen und abgearbeitet.
Doch nun kommt vermutlich der RETI Befehl nicht wieder bei der CTC auf dem SOUND-Modul an, so dass diese keine weiteren Interrupts auslösen kann. Ich habe mir mal den Stromlaufplan vom KC87 näher angesehen. Dort gibt es einen Datenbustreiber D2, der zum Modulträger geht. Mir ist nicht klar, wie der Bustreiber nach außen über seinen /OE-Eingang aktiviert wird, wenn der RETI-Befehl (EDh 4Dh) auf den Datenbus gelegt wird. Sollte das nicht der Fall sein, dann kommt RETI natürlich nie an der CTC auf der SOUND-Karte an und sie kann somit auch keinen weiteren Interrupts auslösen.
Lösung: der Bustreiber D2 im KC87 arbeitet nur ab bestimmten Adressen richtig nach außen:
Die Soundausgabe unter Nutzung der CTC auf der SOUND-Karte läuft tatsächlich nur auf RAM-Adressen ab 4000h. Ich habe mal mit 0400h und 3000h getetstet… geht nicht. Mit 4000h oder z.b. 7000h funktioniert es einwandfrei.
Das bestätigt also, dass mit für die Aktivierung des Datenbustreiber D2 im KC87 die Adresse eine Rolle spielt und es nur ab 4000h funktioniert (zumindest bei Verwendung externer Bausteine die Interrupt verwenden nicht gerade gut gelöst). Hier hilft wohl nur, mal die Hardware des KC87 genauer unter die Lupe nehmen, doch da fehlt mir die Geduld und die Zeit. Oder man müsste die Entwickler fragen.
Sofern der im KC87 verwendete freie CTC-Kanal genutzt wird, läuft die Soundausgabe auch auf Adressen kleiner 4000h (z.B. 0400h).
Viele Module, die einen Interrupt verwenden scheint es ja für den KC87 nicht zu geben und wie Volker und KaiOr ja schon geschrieben haben, läuft die Software dafür auch jenseits der 4000h.