Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:erweiterungen:sdcard2 [2024/06/05 11:14] – [Die Terminalsoftware] volkerp | z9001:erweiterungen:sdcard2 [2025/02/25 13:58] (aktuell) – [Downloads] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== SD-Karte mit AVR ====== | + | ====== SD-Modul mit AVR ====== |
**SD-Karte am Z9001 - die Lösung von Kingstener 2012** | **SD-Karte am Z9001 - die Lösung von Kingstener 2012** | ||
+ | |||
+ | **neu 2025: SD-OS** | ||
Dieses kleine Zusatzgerät erlaubt das Laden und Speichern auf SD-Karte. Es sind keine Änderungen am Z9001 nötig! | Dieses kleine Zusatzgerät erlaubt das Laden und Speichern auf SD-Karte. Es sind keine Änderungen am Z9001 nötig! | ||
- | {{: | + | {{: |
{{: | {{: | ||
+ | |||
+ | 2024: unter [[# | ||
Von Kingstener habe ich ein fertig aufgebautes SD-CARD-Interface für den Z9001 bekommen. | Von Kingstener habe ich ein fertig aufgebautes SD-CARD-Interface für den Z9001 bekommen. | ||
- | Benötigt wird i.W. nur ein Mikrocontroller ATMEGA32 und eine SD-CARD-Fassung (s. Bild). Die Hardware wird am User-Port und anstelle des Kassettenrecorders am Tape-Eingang angeschlossen und fungiert als digitaler Kassettenrecorder. Am Z9001 muss nichts verändert werden! Nach RESET wird automatisch ein kleines Terminalprogramm an den Tape-Eingang gesendet, was auf dem Z9001 gestartet wird und die weitere Kommunikation mit der SD-Karte über den USER-Port übernimmt. | + | Benötigt wird i.W. nur ein Mikrocontroller ATMEGA32 und eine SD-CARD-Fassung (s. Bild). Die Hardware wird am User-Port und anstelle des Kassettenrecorders am Tape-Eingang angeschlossen und fungiert als digitaler Kassettenrecorder. Am Z9001 muss nichts verändert werden! Nach RESET wird automatisch ein kleines Terminalprogramm an den Tape-Eingang gesendet, was auf dem Z9001 gestartet wird und die weitere Kommunikation mit der SD-Karte über den USER-Port übernimmt. |
- | **Das Termninalprogramm SDX** | + | {{ : |
- | Das Terminalprogramm ist nur wenige Bytes groß. Die ganze Funktionalität steckt im Mikrocontroller. | ||
- | |||
- | {{z9001: | ||
===== Downloads ===== | ===== Downloads ===== | ||
+ | * {{: | ||
+ | * {{z9001: | ||
- | * Software | + | * {{ : |
- | * Schaltung | + | * {{ :z9001:erweiterungen: |
- | http://www.kingsteners.homepage.t-online.de/ | + | 2025: SD-OS |
+ | * {{ : | ||
+ | * {{ : | ||
+ | * {{ : | ||
+ | * {{ : | ||
+ | **Flashen der Firmware: Zum Update der Firmware aus sdcard.zip muss eine SD-Karte mit FAT16 formatiert sein. Am einfachsten geht das mit dem SD-Formatter (https:// | ||
+ | ===== Das Terminalprogramm SDX ===== | ||
- | ===== Prinzipbild ===== | + | Das Terminalprogramm ist nur wenige Bytes groß. Die ganze Funktionalität steckt im Mikrocontroller. |
+ | |||
+ | {{z9001: | ||
Das Terminal-Programm SDX steuert die Kommunikation zwischen SD-Modul und Computer. | Das Terminal-Programm SDX steuert die Kommunikation zwischen SD-Modul und Computer. | ||
+ | Die SD-Karte (keine SDHC!) muss FAT12/ | ||
- | Nach Einschalten | + | Nach Einschalten des Z9001 erhält auch das Modul Spannung vom Z9001 und es wird das Programm „load87“ von der SD-Karte an den Kassettenanschluss ausgegeben. |
- | Das Terminalprogramm SDX startet nach Ende des Ladeprozesses automatisch. Das SD-Modul meldet sich mit " | + | Am Z9001 / KC87 tippt man "SDX" |
- | < | + | Das Programm |
- | +-----------+ | + | |
- | | SDX | | + | |
- | +--------| Terminal- | | + | |
- | | + | |
- | +------------------+---+ | + | |
- | | | | + | |
- | | KC87 | | + | |
- | | tape |< | + | |
- | | user-port |< | + | |
- | +----------------------+ | + | |
- | +-----------+ | + | |
- | + | ||
- | </ditaa> | + | |
- | ===== Bedienung ===== | + | :!: Im Megamodul ist die Terminalsoftware SDX mit enthalten. Damit kann bei Nutzung des Megamoduls das Audiokabel auch komplett entfallen. Auch das Programm „load87“ muss nicht auf der SD-Karte vorhanden sein. |
- | Die SD-Karte ist FAT32-formatiert. Auf ihr sind die Programme " | + | < |
+ | .-----------. | ||
+ | | SDX | | ||
+ | .--------| Terminal- | | ||
+ | | ||
+ | | ||
+ | | | | ||
+ | | KC87 | .-----------. | ||
+ | | tape |< | ||
+ | | user-port |< | ||
+ | ' | ||
+ | ' | ||
- | Das Modul wird am Userport und am Kassettenrekorderport angeschlossen. | + | </ |
- | Nach Einschalten des Z9001 erhält auch das Modul Spannung vom Z9001 und es wird das Programm " | + | ===== SD-OS ===== |
- | Das Programm SDX - das Terminalprogramm - startet automatisch. Mit H gibt es eine Hilfe, mit L programmname wird ein Programm eingelesen. So einfach | + | Januar 2025 habe ich neue Software programmiert.\\ |
+ | Das System SD2KC.BIN Version 1.5 oder neuer ist voll kompatibel zu älteren | ||
+ | Versionen. Ein SD-Modul mit dieser Firmware kann weiterhin mit SDX genutzt | ||
+ | werden. | ||
- | :!: Im [[z9001:module_sonstige:megamodul|]] ist die Terminalsoftware **SDX** mit enthalten. Damit kann bei Nutzung des Megamoduls das Audiokabel auch komplett entfallen. | + | {{:z9001:erweiterungen:sdos-laden.jpg? |
- | ===== Schaltung | + | Neu sind: |
+ | * Unterstützung des KCC-Formats anstelle des TAP-Formats\\ TAP-Dateien werden dennoch weiterhin unterstützt! Sie können mit L geladen und mit T gespeichert werden. | ||
+ | * Auch die Load-Datei " | ||
+ | * Zusätzliche Kommandos zur Fremdsteuerung. Codes >= 0xF0 werden speziell behandelt\\ s. Beschreibung SD.txt | ||
+ | |||
+ | Mit dieser neuen Firmware und der KC-seitigen Software SD-OS ist ein nativer | ||
+ | Betrieb des KC möglich, bei dem die normalen Load- und Save-Routinen der einzelnen | ||
+ | Programme genutzt werden. Ein alternatives Laden/ | ||
+ | SDX ist nicht nötig. | ||
+ | |||
+ | siehe {{ : | ||
+ | vgl. auch [[z9001: | ||
+ | |||
+ | Tipp: Nach Reset am KC gleich auch Reset am Modul drücken. Dann wird am KC eine Versionsnummer der Firmware ausgegeben. | ||
+ | |||
+ | ===== Hardware | ||
Kingsteners Lösung baut auf dem SD-Interface von Arne Fitzenreiter http:// | Kingsteners Lösung baut auf dem SD-Interface von Arne Fitzenreiter http:// | ||
- | Die Schaltungsunterlagen | + | Erste Versionen des Moduls |
+ | |||
+ | {{:z9001:erweiterungen: | ||
+ | |||
+ | {{:z9001: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Bootloader ===== | ||
+ | |||
+ | Der AVR-Mikrocontroller enthält einen 2K großen Bootloader. | ||
- | {{: | + | Befindet sich auf der SD-Karte eine Datei SD2KC.BIN mit neuerer Version als im Controller gespeichert, |
- | ===== Programmierung des Controllers ===== | + | Der hier verwendete Bootloader stammt aus dem mikrocontroller-Forum {{http:// |
- | Initial muss der Controller den Bootloader (bootloader-0x7838434B.hex) einprogrammiert bekommen. Das geht mit einem externen AVR-Programmer oder einer selbstgebauten Lösung, wie etwa unter [[elektronik: | + | Initial muss der Controller |
**Fuses**: bootsz1, bootrst, keine crc Kontrolle((manche Brennprogramme bringen durch das nachträgliche Eintragen der CRC einen CRC-Fehler in Bin-File hinein. Wir brauchen aber genau die mit CRCGEN erzeugte CRC oder 00 00)) | **Fuses**: bootsz1, bootrst, keine crc Kontrolle((manche Brennprogramme bringen durch das nachträgliche Eintragen der CRC einen CRC-Fehler in Bin-File hinein. Wir brauchen aber genau die mit CRCGEN erzeugte CRC oder 00 00)) | ||
Zeile 90: | Zeile 128: | ||
Der Atmega-Microcontroller kann auch später im fertigen Gerät über das SPI-Interface programmiert werden! | Der Atmega-Microcontroller kann auch später im fertigen Gerät über das SPI-Interface programmiert werden! | ||
- | ===== Der Bootloader ===== | ||
- | Der verwendete Bootloader stammt aus dem mikrocontroller-Forum {{http:// | + | ===== Die SD-Karte ===== |
- | Befindet sich auf der SD-Karte eine Datei SD2KC.BIN | + | Als SD-Karten kommen normale MMC oder SD-Karten |
+ | Es reichen bereits Karten mit 16 MB ! | ||
- | :!: Die aktuelle Versionsnummer steckt im Quellfile KCSCF.C (Zeile 43, %%//Kennung für den Bootloader...%%), kann aber auch nachträglich im BIN-File gepatcht werden. | + | Der Bootlader verarbeitet nur FAT12 oder FAT16! Sicher sind aus Erfahrung Karten bis 512MB, darüber hinaus funktionieren verschiedene Karten bis etwa 4GB nur noch teilweise mit oder ohne Tricks oder gar nicht. Das SD2KC V1.2 dagegen verarbeitet FAT12/16/32, getestet mit diversen Micro-SD, SD und SDHC Karten bis 16GB. |
- | + | ||
- | ===== Die SD-Karte ===== | + | |
- | Auf die Mit FAT16 formatierte SD-Karte müssen die beiden Programme | + | Auf die mit FATxx formatierte SD-Karte müssen die beiden Programme |
* load87 | * load87 | ||
* SD2KC.BIN | * SD2KC.BIN | ||
ins Root-Verzeichnis. | ins Root-Verzeichnis. | ||
- | Der Bootloader programmiert den AVR beim Start mit SD2KC.BIN, wenn die | + | Der Bootloader programmiert den AVR beim Start mit SD2KC.BIN, wenn die Version auf der SD-Karte neuer ist als die im AVR befindliche. |
- | Version auf der SD-Karte neuer ist als die im AVR befindliche. | + | |
- | Z9001-Programme müssen in TAP-Format vorliegen. Sie können beliebig | + | Z9001-Programme müssen in TAP-Format vorliegen. Sie können beliebig in Unterverzeichnissen der SD-Karte liegen. |
- | in Unterverzeichnissen der SD-Karte liegen. | + | |
- | + | ||
- | :!: Da nur 8+3-(DOS)-Filenamen angezeigt werden, sollte man die TAP-Dateien | + | |
- | entsprechend umbenennen. Bei längeren Dateinamen wird sonst die Kurzform mit ~ im Namen angzeigt. Das ist problematisch, | + | |
- | + | ||
- | Zum Update über SD-Karte nochmals der Hinweis, der Bootlader verarbeitet nur FAT12 oder FAT16! Sicher sind aus Erfahrung Karten bis 512MB, darüber hinaus funktionieren verschiedene Karten bis etwa 4GB nur noch teilweise mit oder ohne Tricks oder gar nicht. Das SD-OS V1.2 dagegen verarbeitet FAT12/ | + | |
- | + | ||
- | ===== Die Terminalsoftware ===== | + | |
- | + | ||
- | + | ||
- | Die Verbindung vom Atmega-Port zum User-PIO-Port enthält 1KOhm Schutzwiderstände, | + | |
- | + | ||
- | Das File load87 wird immer nach dem Start des Modules automatisch auf der SD-Karte gesucht und als Audio-Tape-File über den Tape-Eingang des KC87/Z9001 eingelesen, nachdem es da mit dem Kommando SDX zum Laden angefordert wurde. Es enthält gleich das komplette Terminalprogramm für den KC87/Z9001. Die weitere Kommunikation erfolgt dann nur noch über den User-PIO-Port. Ein Duplexbetrieb wie bei der V.24-Variante am KC85/2..5 ist hier leider nicht möglich. | + | |
- | + | ||
- | VP 2012: Ich habe erstmal eine relokatible Version von SDX erstellt, die sich ans vorhandene RAM-Ende stellt. Damit muß man nicht mit verschiedenen Versionen arbeiten.\\ | + | |
- | Ich will die Software noch ein wenig ausbauen, mit dem Ziel, dass die Systemfunktionen zur Kassettenarbeit komplett auf die SD-Card umgebogen werden, so dass von jedem Programm aus direkt und schnell auf SD-Karte geschrieben und gelesen werden kann. | + | |
+ | :!: Da nur 8+3-(DOS)-Filenamen angezeigt werden, sollte man die TAP-Dateien entsprechend umbenennen. Bei längeren Dateinamen wird sonst die Kurzform mit ~ im Namen angezeigt. Da der Z9001 keine Tilde auf der Tastatur hat, dient ^ als Tilden-Ersatz bei der Eingabe.\\ | ||
+ | Statt der Endung TAP kann auch die originale Z9001-Dateityp genutzt werden. Ein kleines Perl-Programm **tap_rename.pl** benennt die TAP-Dateien um in 8.3-Dateinamen: | ||
===== SD2KC ===== | ===== SD2KC ===== | ||
Zeile 177: | Zeile 198: | ||
TAPE.H'' | TAPE.H'' | ||
+ | ===== Arduino Nano ===== | ||
+ | |||
+ | 2024 hat Kingstener die Software für den Arduino Nano angepasst. Damit ist ein Nachbau auch möglich: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Unterlagen s. [[# | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== Historie ===== | ||
+ | |||
+ | 23.01.2025 erste offizielle Version des neuen SD2KC.BIN und SDOS | ||
+ | 20.02.2025 neue SD2KC.BIN V1.5. Nach Laden eines Programms in BASIC hat CD nicht mehr funktioniert. Außerdem Fehler im Laden von TAP-Dateien (SDX) behoben (DL) |