Dies ist eine alte Version des Dokuments!
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.
CH376
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, ist dabei kompatibel mit USB V2.0. Der CH376 unterstützt drei Kommunikationsschnittstellen: 8-Bit-parallel, SPI oder asynchron seriell. Mikrocomputersysteme können den CH376-Chip über eine der genannten Kommunikationsschnittstellen steuern und auf Dateien oder Dateien auf USB-Disk oder SD-Karte zugreifen. 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.
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
Bedeutung der Steckverbinder:
Achtung: Es gibt ähnliche Module, die aber eine andere Steckverbinderbelegung und auch nur einen Jumper haben. Das muss bei der Verdrahtung beachtet werden! Die meisten der bei ebay angebotenen „CH376S U DISK READ WRITE MODULE“ sind von dieser Variante!
Downloads:
Produktseite: http://www.wch.cn/product/CH376.html
Anleitung CH376 (engl): ch376ds1.pdf http://www.wch.cn/downloads/CH376DS1_PDF.html
Es gibt auch einen zweiten Teil, leider nur in chinesisch: CH376DS2.PDF: Beschreibung der grundlegenden Übertragungsbefehle und Beschreibung der externen Firmware des Gerätemodus.
zusätzliche Unterlagen + C-Code f. Microcontroller (8051), leider in chinesisch:
http://www.wch.cn/downloads/CH376EVT_ZIP.html
Arduino-Library: https://github.com/djuseeq/Ch376msc
Z80-Anschluss incl. Quellcode: http://www.bhabbott.net.nz/micro_expander.html
Inbetriebnahme
Das CH376-Modul wird im Parallel-Modus betrieben (JP P_S Stellung P)
Erster Test:
die minimalistische Hardware funktioniert
Der GAL selektiert lediglich Port 40h+41h, ansonsten gehen die 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
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