Dies ist eine alte Version des Dokuments!


USB-Modul CH376

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.

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. 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: „USB Control Transfer 6MHz CH376S U-Disk Read Write Module for Arduino“ (CH375-kompatible Module) mit 6pol. Jumperfeld und Daten-Pins in der unteren Reihe des 16pol. Steckverbinders:

Modul Draufsicht Schaltplan
Modul, Draufsicht, Schaltplan (gilt auch für die Variante mit 376S)

Bedeutung der Steckverbinder:

Achtung: Es gibt ähnliche „CH376S U DISK READ WRITE MODULE“, die aber eine andere Steckverbinderbelegung und auch nur einen 3pol. Jumper haben!

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). Jumper P_S kommt dazu in Stellung „P“.

Hinweis 5V: Das Modul betreibt den CH376S-Chip mit 3,3V. Das ist laut Unterlagen nicht zulässig, wenn die Peripherie mit 5V arbeitet. Man sollte daher den Spannungsregler AMS1117 auf dem Modul entfernen und die beiden oberen Pins 2 und 3 (in Richtung USB-Buchse) überbrücken.
Andere Projekte (rookiedrive, RC2014) verwenden diese Module aber auch ohne Änderungen?

Es gibt auch den zweiten Teil der Anleitung CH376DS2.PDF auf obiger Produktseite, ebenfalls leider nur in chinesisch: Beschreibung der grundlegenden Übertragungsbefehle und Beschreibung der externen Firmware des Gerätemodus. Mit google translate kann man die PDF übersetzen.

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.

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://rookiedrive.com/en/, unter https://github.com/Konamiman/RookieDrive-FDD-ROM liegen die Assemblerquellen (rom1)

RC2014

Mittlerweile ist das Modul bei den Z80-Fans bekannt und wird auch genutzt. Ich habe zwei interessante Ansätze zum Thema CP/M gefunden:

  • elektronik/ch376.1789116037.txt.gz
  • Zuletzt geändert: 2026/09/11 08:40
  • von volkerp