entwickelt von
Ronald Daleske

Startseite Impressum

ITP3-Modul - SPIDISK3

ITP3-Modul - SPIDISK3

Das ITP3-Modul - SPIDISK3 stellt ein CP/M-Laufwerk für ein ITP3-Server-Modul (z-meic, i-meic) bereit.

Alle ITP3-CP/M-Laufwerke nutzen das gleiche Format:

DW 128 SPT - 128 bytes sectors per track
DB 5 BSH - block shift factor
DB 31 BLM - block mask
DB 1 EXM - Extent mask
DW 2047 DSM - Storage size (blocks - 1)
DW 511 DRM - Number of directory entries - 1
DB 240 AL0 - 1 bit set per directory block
DB 0 AL1 -
DW 0 CKS - DIR check vector size (DRM+1)/4 (0=fixed disk)
DB 0 OFF - Reserved tracks

Sektoren pro Spur: 128
Blockgroesse: 4096 Byte
Anzahl der Verzeichniseintraege: 512
Groesse des Laufwerks: 8.388.608 Byte = 8MB

Für die Speicherung der Daten mit einer Laufwerkskapazität von 8MB wird der IC Winbond W25Q64BV genutzt. Er hat eine Kapazität von 64M-Bit (8M-Byte (8.388.608)). Da die minimale Sektorgröße beim Winbond W25Q64BV 256 Byte ist (256-bytes per programmable page, CP/M-Sektorgröße ist 128 Byte) und die kleinste löschbare Sektorgröße 4 KBytes (Uniform Sector Erase (4K-bytes)) beträgt (beides passt nicht so gut), wurde zusätzlich ein IC 24LC512 (64KByte) als Zwischenspeicher für die zu schreibenden CP/M-Sektoren verwendet.

Der IC 24LC512 kann von 1 Byte bis 128 Byte Daten schreiben und löschen (128-Byte Page Write Buffer). Das ist optimal für CP/M-Sektoren mit ebenfalls 128 Byte.

Beide ICs haben ein 8-pin PDIP Gehäuse.

Die hier verwendete Hard- und Softwarelösung für ein CP/M-Laufwerk wird auch auf dem z-meic Board- und dem i-meic-Board genutzt.

1. Hinweise zum Betrieb

1.1. Initialisierung der FLASH-Speicher

Nach der Erstinstallation wird die SPIDISK3 automatisch gelöscht. In 2 Bytes des Flash-Speichers wird dann ein Erkennungscode (08H,15H) geschrieben. Nach jedem weiteren Start ist ab jetzt der Erkennungscode vorhanden und der Flash-Speicher wird nicht wieder gelöscht.

Die SPIDISK3 kann mit Daten beschrieben werden, die auch nach längeren Pausen erhalten bleiben.

1.2. Bedeutung der LEDs

Wie im Raumschiff Enterprise sollen auch beim z-meic-Modul und bei den ITP3-Modulen die LEDs die Aktivitäten der "Schaltzentrale" und der "Module" anzeigen.

Die blaue LED in der Nähe des ITP3-Steckers zeigt an, wenn Daten über das ITP3-Protokoll übertragen werden. Diese blaue LED sollte auf allen ITP3-Modulen vorhanden sein.

Die drei farbigen LEDs:

Die weisse LED am IC 24LC512: Anzeige wenn Daten in den IC 24LC512 geschrieben oder gelesen werden.

Die weisse LED am IC W25Q64BV: Anzeige wenn Daten in den IC W25Q64BV geschrieben oder gelesen werden.

2. Schnellinstallation mit BitBurner

SPIDISK3 HEX-Datei: SPIDISK.zip

Zur schnellen Installation genügt es, die Intel-Hex-Datei der Firmware des SPIDISK3 (siehe Download) in den ATMEGA328P zu brennen.

Dazu ist ein AVR ISP-Programmer und die Installation der dafür notwendigen Treiber erforderllich.

Als Brennprogramm kann BitBurner von Nick Metcalfe genutzt werden. Unter:

BitBurner

sind der Download-Link und einige Hinweise zum Programm angegeben.

Brennen_a

Nach dem Start des Programms BitBurner wird unter dem Reiter AVRdude und dem Auswahlmenü AVR Device der zu programmierende Mikrocontroller ausgewählt. Für das SPIDISK3-Board ist es der ATMEGA328P.

Unter dem Auswahlmenü Programmer wird das Protokoll des aktuell angeschlossenen AVR ISP-Programmer ausgewählt. In diesem Beispiel wurde ein USBasp AVR ISP Programmer genutzt. Der USBasp AVR ISP Programmer nutzt das Protokoll (usbasp).

Brennen_b

Anschliessend können unter dem Reiter AVR Fuses die Fuses des Mikrocontroller auf dem Zielboard gelesen und neu beschrieben werden.

Für das SPIDISK3-Board müssen die Fuses auf:

Low Fuses: FF

High Fuses: D9

gesetzt werden.

Brennen_c

Zum Brennen des Flash-Speichers des Mikrocontrollers wird unter dem Reiter AVR Memories und dem Auswahlmenü Flash der Pfad der Intel-Hex-Datei mit den zu brennenden Daten ausgewählt.

Mit dem Button Write wird der Inhalt der ausgewählten Intel-Hex-Datei in den Flash des Microcontrollers (hier ATMEGA328P) gebrannt.

Alle Meldungen des Programms avrdude werden im Meldefenster unten angezeigt.

3. Download des RONPAS-Quelltextes

Quelltext

Quelltext SPIDISK3 Version 1.0 vom 08.03.2023 (für RONPAS-Compiler): RONPAS_SPIDISK3.ZIP

Für die Übersetzung des Quelltextes wird der RONPAS-Compiler benötigt.

Die Fuses des ATMEGA328P müssen wie folgt gesetzt werden:

Low Fuses: FF

High Fuses: D9

4. Schaltplan

Bild 3: Schaltplan SPIDISK3

Schaltplan SPIDISK3 als PDF: SPIDISK3.pdf

Schaltplan SPIDISK3 als SVG: SPIDISK3.svg

Wichtiger Hinweis

Für das Modul SPIDISK3 wir ein ATMEGA328P benötigt (432KB Flash) Der im Schaltplan dargestellte ATMEGA8 reicht mit seinen 8KB Flash-Speicher nicht für dieses Modul. Beide Mikrocontroller sind pinkompatibel.

5. KiCAD und Gerberdateien

Bild 4a: KiCAD SPIDISK3

Hier sind alle notwendigen KiCAD-Dateien inklusive der projektspezifischen (meist eigene) Symbole und Footprints.

Bild 4b: KiCAD SPIDISK3

SPIDISK3 KiCad-Dateien: KiCAD5_SPIDISK3.zip

Für die Entwicklung wurde KiCAD Version 5.1.12 genutzt.

KiCAD-Version

Gerberdateien

Die hier angegebenen Gerberdateien sind die Originaldateien, mit denen der Prototyp angefertigt wurde.

SPIDISK3 Gerber-Dateien, Stand 30.12.2020: gerber_SPIDISK3.zip

Die Gerberdateien können direkt an einen Leiterplattenfertiger weitergeleitet werden.

Für die Anfertigung meiner Prototypen habe ich jlcpcb.com genutzt (sehr günstig, sehr gute Qualität und schnelle Lieferung (meist um die 10 Tagen nach Bestellung)).

6. Beispiele

6.1. Beispiel - z-meic, SNDMOD3, PS2KBD, SPIDISK3, USBCH376 und TXTVGA3

Beispiel

7. Entwicklungsstand der Hard- und Software

Die Hard- und Software des SPIDISK3-Moduls wurde über Jahre immer weiter optimiert. Der hier vorgestellte Stand gilt derzeit als abgeschlossen.

8. Lizenz

Creative Commons Lizenzvertrag
Diese(s) Werk bzw. Inhalt von Ronald Daleske steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Deutschland Lizenz.


keine Mängelgewähr

DIESE SOFTWARE WIRD VOM URHEBERRECHTSINHABER "OHNE MÄNGELGEWÄHR" BEREITGESTELLT. ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH DER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK (JEDOCH NICHT DARAUF BESCHRÄNKT), WERDEN AUSGESCHLOSSEN. DER URHEBERRECHTSINHABER IST IN KEINEM FALL UND NACH KEINER HAFTUNGSTHEORIE (SEI ES AUF VERTRAGSBASIS, AUF DER BASIS STRENGER HAFTUNG ODER UNERLAUBTER HANDLUNGEN, EINSCHLIESSLICH FAHRLÄSSIGKEIT) FÜR BELIEBIGE VERURSACHTE DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE SCHÄDEN ODER FOLGESCHÄDEN (EINSCHLIESSLICH, JEDOCH NICHT BESCHRÄNKT AUF BESCHAFFUNG VON ERSATZPRODUKTEN ODER -LEISTUNGEN, NUTZUNGSAUSFALL, DATEN- UND GEWINNVERLUST ODER GESCHÄFTSAUSFALL) HAFTBAR, DIE AUFGRUND DER VERWENDUNG DIESER SOFTWARE ENTSTEHEN KÖNNEN. DIES GILT AUCH, WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

9. Rückmeldung und Kontakt

Die vorgestellten Projekte entstanden im Rahmen mehrerer eigener Test- und Forschungsprojekte. Es handelt sich um die Veröffentlichung meines privaten Archivs bzw. Teilen daraus. Die Arbeiten daran wurden von mir inzwischen abgeschossen und ich beschäftige mich nun andern Themen.

Ich wünsche ausdrücklich keine Rückmeldung und keine Kontaktaufnahme. Auch solche E-Mails wie: "Ich habe gelesen, dass du keine Fragen beantwortest, aber ich möchte dir trotzdem mal mein Problem schildern ..." werde ich nicht beantworten.

Nur in einmem Fall würde ich eine Ausnahme machen: Wenn sich eine kleine oder größere Gruppe (z.B. ein Makerspace) mit diesem Projekt beschäftigen möchte, es eventuell weiterentwickeln wird und für Fragen anderer Nutzer zu diesem Projekt zur Verfügung stehen würde, oder wenn jemand einen Beitrag oder ein Buch zu diesem Thema schreiben möchte.

In diesem speziellen Fall bitte Kontaktaufnahme über: Kontaktaufnahme


Startseite Impressum