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 [2024/11/13 13:03] – [Inbetriebnahme] volkerp | z9001:module_sonstige:usbmodul [2026/09/11 08:44] (aktuell) – 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 [[elektronik: |
| + | 2024 wurde die Software [[z9001: | ||
| - | **2024: Aktuell wird das [[z9001: | + | 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: | ||
| + | {{: | ||
| - | {{:z9001:module_sonstige: | + | Alternativ: in https://www.robotrontechnik.de/ |
| - | ===== technische Daten ===== | + | Ein weiteres Modul mit CH376-USB ist das [[unimodul|]]. |
| + | ===== Downloads | ||
| - | | Port | 28h..2Fh | | + | * techn. Unterlagen |
| - | + | * bzw. aktuell unter https://github.com/felge1966/Kleincomputer/tree/main/KC87/USB_CH376 | |
| - | (gilt für Z9001 und Z1013) | + | * Software |
| - | + | * Binär-Version {{ :z9001:software: | |
| - | ===== CH376 ===== | + | * Handbuch {{ :z9001:software:usb-os.pdf |}} |
| - | + | ||
| - | Der CH376 ist ein Controller für kleine Mikrocomputersysteme | + | |
| - | Der CH376 unterstützt FAT16 und FAT32, allg. das FAT12-Dateisystem mit Unterverzeichnissen und kurzen | + | |
| - | + | ||
| - | 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. | + | |
| - | + | ||
| - | 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): | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Bedeutung der Steckverbinder: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | **Achtung**: | + | |
| - | Es gibt auch einen Reset-Pin. Das muss bei der Verdrahtung beachtet werden! | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | Pin-Reihen | + | |
| - | + | ||
| - | die beiden oberen Reihen: Variante 1 (ohne Reset, mit 6pol. Jumperfeld) | + | |
| - | die beiden unteren Reihen: Variante 2 (mit Reset, mit 3pol. Jumperfeld) | + | |
| - | + | ||
| - | 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 ==== | + | |
| - | + | ||
| - | * Produktseite: | + | |
| - | * Anleitung CH376 (engl): ch376ds1.pdf http://www.wch.cn/downloads/CH376DS1_PDF.html | + | |
| - | * zusätzliche Unterlagen + C-Code | + | |
| - | + | ||
| - | Es gibt auch den zweiten Teil der Anleitung CH376DS2.PDF auf obiger Produktseite, | + | |
| - | + | ||
| - | **Arduino** | + | |
| - | + | ||
| - | | + | |
| - | + | ||
| - | **Z80-Anschluss** | + | |
| - | + | ||
| - | **Bruce Abbott** hat für seinen Mattel Aquarius ein Micro-Expander-Modul entwickelt. Sein Modul umfasst 32k RAM, 4x16k ROM und obiges 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. | + | |
| - | + | ||
| - | | + | |
| - | * archive: https:// | + | |
| - | + | ||
| - | **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. | + | |
| - | + | ||
| - | http:// | + | |
| + | ===== technische Daten ===== | ||
| - | ===== Inbetriebnahme ===== | + | 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) | | ||
| - | Das CH376-Modul wird im Parallel-Modus betrieben (JP P_S Stellung P), | + | Die Portadr. gilt für Z9001 und Z1013. |
| + | Jumper auf der Platine v.o.n.u. | ||
| - | :!: hier noch mit Port 40h aus der frühen Entwicklung | + | | 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. | ||
| - | Erster Test: | + | 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/ |
| - | {{:z9001: | + | {{https:// |
| - | die minimalistische Hardware funktioniert 8-) | + | Die Datei **CH376_RR_2.jed** wird in einen GAL 20V8 gebrannt. |
| - | Der GAL selektiert lediglich Port 40h+41h, ansonsten gehen die | + | Als ROM kommt ein beliebiger Typ 2764..27512 zum Einsatz (8K Byte .. 64KByte). |
| - | 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. | + | 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, | ||
| - | Mit einfachen I/ | + | Jeder Bereich des Moduls (RAM, ROM, CH376) |
| - | IN 41 --> 80 device status | + | Mit einfachen I/O-Abfragen kann die Funktion des CH376 geprüft werden |
| - | OUT 41 1 | + | |
| - | IN 40 --> 43 chip version (>40) | + | |
| - | OUT 41 6 | + | |
| - | OUT 40 55 | + | |
| - | IN 40 --> AA (bit reverse) | + | |
| - | + | ||
| - | GAL-Logik: | + | |
| - | | + | |
| - | + /IORQ * /WR * /A7 * A6 * /A5 * /A4 * /A3 * /A2; /IORQ * (/RD + /WR) * Port 40h | + | OUT 29 1 |
| - | + | IN 28 --> 43 chip version | |
| - | ===== CP/M ===== | + | OUT 29 6 |
| + | OUT 28 55 | ||
| + | IN 28 --> AA (bit reverse) | ||
| - | Mittlerweile ist das Modul bei den Z80-Fans bekannt und wird auch genutzt. Ich habe zwei interessante Ansätze zum Thema CP/M gefunden: | ||
| - | * https:// | + | ===== CH375/CH376-Module ===== |
| - | * https:// | + | |
| + | s. [[elektronik: | ||
| + | <wrap em> | ||
| | | ||