Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:module_sonstige:usbmodul [2021/07/13 11:20] – volkerp | z9001:module_sonstige:usbmodul [2025/08/29 12:59] (aktuell) – [CH375/CH376-Module] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== USB-Modul mit CH376 ====== | ====== USB-Modul mit CH376 ====== | ||
- | Als Alternative zum VDIP, und mit wesentlicher weniger zusätzlicher Hardware (nur Port-Selektion nötig, die restl. Anschlussleitungen D7..D0, RD, WR, A0 gehen direkt zum Z80-BUS) | + | {{: |
- | Das Modul ist aktuell in Entwicklung. Geplant sind noch 32K RAM (4000-BFFF) und 8K ROM (C000-E7FF) mit USB-OS auf dem Modul. | + | Seite einigen Jahren gibt es mit dem CH376 eine alternative zum VDIP-USB-Interface. Der CH376 ist ein Mikrocontroller für USB-Speicher und SD-Karten. |
- | FIXME | + | 2024 wurde die Software [[z9001: |
- | {{:z9001:module_sonstige:ch376-modul.jpg? | + | Nach einigen Jahren Stillstand in der Entwicklung eines Moduls gibt es jetzt (2025) endlich eine Leiterplatte von felge1966 zum Nachbau. |
+ | Das Modul enthält neben dem CH376 noch 32K RAM (4000-BFFF) und 10K ROM (C000-E7FF) mit dem [[z9001:software:usb|USB-OS]]. | ||
- | ===== CH376 ===== | + | {{: |
+ | |||
+ | Alternativ: in https:// | ||
+ | |||
+ | ===== Downloads ===== | ||
+ | |||
+ | * techn. Unterlagen zum Modul (ROM-Inhalt, | ||
+ | * bzw. aktuell unter https:// | ||
+ | * Software f. USB-Stick -> s. [[z9001: | ||
+ | * Binär-Version {{ : | ||
+ | * Handbuch {{ : | ||
+ | |||
+ | ===== technische Daten ===== | ||
+ | |||
+ | Das Modul kann am Z1013 und am Z9001 gesteckt werden. Es ist eine variable Bestückung bzgl. ROM möglich. Kommt ein ROM 27128/27256 zum Einsatz, kann über Jumper ein 10K (16K)-Bereich ausgewählt werden, der aktiviert wird. | ||
+ | |||
+ | | Port | 28h..2Fh | ||
+ | | RAM | 4000-BFFF (32k), 4000-E7FF (48k) | | ||
+ | | ROM | C000-E7FF (10k) | | ||
+ | |||
+ | Die Portadr. gilt für Z9001 und Z1013. | ||
+ | |||
+ | Jumper auf der Platine v.o.n.u. | ||
+ | |||
+ | | JP4 ROM SEL | 3-4 | Adressleitung A14 des ROMs, gesteckt: L, offen H | | ||
+ | | JP4 ROM SEL | 1-2 | Adressleitung A15 des ROMs, gesteckt: L, offen H | | ||
+ | | JP2 RAM SEL | 3-4 | RAM ON, gesteckt: RAM des Moduls aktiv, offen RAM deaktiviert | | ||
+ | | JP2 RAM SEL | 1-2 | RAM 48K, gesteckt: RAM im Bereich C000-E7FF, offen ROM im Bereich C000-E7FF | | ||
+ | | JP3 ROMDI | 1-2 | gesteckt: Ausblenden eingebauter BASIC-ROM, muss beim KC87 gesteckt sein, beim Z9001 muss der Jumper offen bleiben | | ||
+ | |||
+ | "RAM 48K" ist momentan noch nicht im GAL umgesetzt! | ||
+ | |||
+ | ===== Aufbauhinweise ===== | ||
+ | |||
+ | * Unterlagen zum Modul gibt es unter https:// | ||
+ | * Man braucht ein CH376-Module mit 6pol. Jumperfeld (s.u., erste Variante) | ||
+ | * Das CH376-Modul wird im Parallel-Modus betrieben (JP P_S in Stellung P). | ||
+ | * Der RAM-Baustein ist ein 628128 (128k x 8Bit SRAM, z.B. AS6C1008-55SIN, | ||
+ | * Als Jumper sollten abgewinkelte Exemplare genutzt werden. | ||
+ | * Das Widerstandsnetzwerk 4x10k sollte entweder eine niedrige Bauform haben oder aber flach auf der Platine montiert werden. Ich habe mangels passendem Widerstandsnetzwerk 4 einzelne Widerstände genommen. | ||
+ | |||
+ | Die Platine ist am CH376-Modul recht gedrängt. Zukünftige Platinen sollten hier mehr Platz für das CH376-Modu lassen; auch ist es sinnvoll, Aussparungen auf der Leiterplatte für den USB-Anschluss und das S/ | ||
+ | |||
+ | |||
+ | Die Datei **CH376_RR_2.jed** wird in einen GAL 20V8 gebrannt. | ||
+ | |||
+ | Als ROM kommt ein beliebiger Typ 2764..27512 zum Einsatz (8K Byte .. 64KByte). | ||
+ | Die Datei ch376os.rom wird in den ROM gebrannt; je nach gewünschtem 16K-Bereich muss man die Adresse im ROM passend wählen. Mit den beiden Jumpern J4 wird der 16K-Bereich ausgewählt, | ||
+ | Ein 128K-ROM hat bei mir nicht funktioniert, | ||
+ | |||
+ | Jeder Bereich des Moduls (RAM, ROM, CH376) kann einzeln in Betrieb genommen und getestet werden. Bei einem sauberen Aufbau sollte es keine Probleme geben. Das Modul muss sich beim Einschalten des Rechners mit " | ||
+ | |||
+ | Mit einfachen I/ | ||
+ | |||
+ | IN 29 --> 80 device status | ||
+ | OUT 29 1 | ||
+ | IN 28 --> 43 chip version (>28) | ||
+ | OUT 29 6 | ||
+ | OUT 28 55 | ||
+ | IN 28 --> AA (bit reverse) | ||
+ | |||
+ | |||
+ | ===== CH375/CH376-Module | ||
Der CH376 ist ein Controller für kleine Mikrocomputersysteme zum Lesen und Schreiben von Dateien auf USB-Disk oder SD-Karte. Der CH376 unterstützt den USB-Gerätemodus und den USB-Host-Modus, | Der CH376 ist ein Controller für kleine Mikrocomputersysteme zum Lesen und Schreiben von Dateien auf USB-Disk oder SD-Karte. Der CH376 unterstützt den USB-Gerätemodus und den USB-Host-Modus, | ||
Der CH376 unterstützt FAT16 und FAT32, allg. das FAT12-Dateisystem mit Unterverzeichnissen und kurzen (8.3)-Dateinamen. | Der CH376 unterstützt FAT16 und FAT32, allg. das FAT12-Dateisystem mit Unterverzeichnissen und kurzen (8.3)-Dateinamen. | ||
- | Der USB-Gerätemodus von CH376 ist vollständig mit dem CH372-Chip kompatibel, und der USB-Hostmodus von CH376 ist grundsätzlich mit dem CH375-Chip kompatibel. | + | Der USB-Gerätemodus von CH376 ist vollständig mit dem CH372-Chip kompatibel, und der USB-Hostmodus von CH376 ist grundsätzlich mit dem CH375-Chip kompatibel. Die pinkompatiblen CH375B-Module sollten daher auch geeignet sein. |
- | Man könnte den Chip direkt verwenden, er kann auch mit +5V betrieben werden, doch für ca 3 Euro gibt es fertig aufgebaute Module, die per Pfostenstecker mit der eigenen Hardware verbunden werden. Ich habe mich für folgende Variante entschieden (CH375-kompatible Module): | + | Man könnte den Chip direkt verwenden, er kann auch mit +5V betrieben werden, doch für ca 3 Euro gibt es fertig aufgebaute Module, die per Pfostenstecker mit der eigenen Hardware verbunden werden. Ich habe mich für folgende Variante entschieden: "USB Control Transfer 6MHz CH376S U-Disk Read Write Module for Arduino" |
{{: | {{: | ||
Zeile 24: | Zeile 87: | ||
{{: | {{: | ||
- | **Achtung**: | + | **Achtung**: |
- | Das muss bei der Verdrahtung beachtet | + | Diese Module können NICHT mit dieser Leiterplatte verwendet |
- | Die meisten der bei ebay angebotenen " | + | |
- | {{: | + | Der CH376 kann direkt an den Z80-Bus angeschlossen werden (nur Port-Selektion nötig, die restl. Anschlussleitungen D7..D0, RD, WR, A0 gehen direkt zum Z80-BUS). |
- | Vermutlich ist das die bessere Lösung, da leichter erhältlich, | + | Jumper P_S kommt in Stellung " |
- | < | + | **Hinweis 5V**: Das Modul betreibt den CH376S-Chip mit 3,3V. Das ist laut Unterlagen nicht zulässig, wenn die Peripherie |
- | Pin-Reihen | + | Andere Projekte (rookiedrive, RC2014) verwenden diese Module aber auch ohne Änderungen? |
- | + | ||
- | die beiden oberen Reihen: Variante 1 (ohne Reset, | + | |
- | die beiden | + | |
- | + | ||
- | Pins spiegelverkehrt zum Modul, das wird ja mit der Leiterseite nach oben | + | |
- | aufgesteckt. | + | |
- | + | ||
- | WR RD CS A0 INT VCC GND GND | + | |
- | D7 D6 D5 D4 D3 D2 D1 D0 | + | |
- | 5V GND CS INT RST WR RD A0 | + | |
- | </ | + | |
==== Unterlagen ==== | ==== Unterlagen ==== | ||
Zeile 60: | Zeile 111: | ||
**Z80-Anschluss** | **Z80-Anschluss** | ||
- | **Bruce Abbott** hat für seinen Mattel Aquarius ein Micro-Expander-Modul entwickelt. Sein Modul umfasst 32k RAM, 4x16k ROM und ein CH376-USB-Modul. Auf einer zweiten Leiterplatte ist ein Soundchip AY-3-8910 und ein zweites CH376-USB-Modul. Auf der Webseite gibt es komplette Z80-Assemblerquellen. | + | **Bruce Abbott** hat für seinen Mattel Aquarius ein Micro-Expander-Modul entwickelt. Sein Modul umfasst 32k RAM, 4x16k ROM und obiges |
- | + | ||
- | * http:// | + | * http:// |
- | + | * archive: https:// | |
- | + | ||
- | ===== Inbetriebnahme ===== | + | |
- | + | ||
- | + | ||
- | Das CH376-Modul wird im Parallel-Modus betrieben (JP P_S Stellung P) | + | |
- | + | ||
- | {{:z9001:module_sonstige:ch376-modul_2.jpg? | + | |
- | + | ||
- | Erster Test: | + | **RookieDrive für MSX** |
- | {{: | + | Ein virtuelles Disketten-Laufwerk für MSX-Computer. Disketten liegen als .DSK image files (720kByte) auf einem USB-Stick. Es kommt obiges CH376-Modul zum Einsatz. |
- | die minimalistische Hardware funktioniert 8-) | + | http:// |
- | Der GAL selektiert lediglich Port 40h+41h, ansonsten gehen die | + | **RC2014** |
- | Anschlüsse des Moduls direkt an den BUS. Anstelle eines GAL können auch diskrete TTL-Schaltkreise für die Portselektion und Ansteuerlogik genutzt werden. | + | |
- | Mit einfachen I/O-Abfragen kann die Funktion geprüft werden | + | * https:// |
- | IN 41 --> 80 device status | ||
- | OUT 41 1 | ||
- | IN 40 --> 43 chip version (>40) | ||
- | OUT 41 6 | ||
- | OUT 40 55 | ||
- | IN 40 --> AA (bit reverse) | ||
- | | ||
- | GAL-Logik: | ||
- | CH376 = /IORQ * /RD * /A7 * A6 * /A5 * /A4 * /A3 * /A2 | ||
- | + /IORQ * /WR * /A7 * A6 * /A5 * /A4 * /A3 * /A2; /IORQ * (/RD + /WR) * Port 40h | ||
- | | ||
===== CP/M ===== | ===== CP/M ===== | ||