Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:erweiterungen:sdcard2 [2013/07/05 12:10] – Link mit z9001:erweiterungen:usb geändert zu elektronik:usbport 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** | + | **SD-Karte am Z9001 - die Lösung von Kingstener |
- | Von Kingstener habe ich ein fertig aufgebautes | + | **neu 2025: SD-OS** |
- | | http://home.arcor.de/ | + | Dieses kleine Zusatzgerät erlaubt das Laden und Speichern auf SD-Karte. Es sind keine Änderungen am Z9001 nötig! |
- | Kingsteners Lösung baut auf dem SD-Interface von Arne Fitzenreiter http://www.fitzenreiter.de/ | + | {{: |
+ | |||
+ | {{: | ||
+ | |||
+ | 2024: unter [[# | ||
+ | |||
+ | 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. Im Video ist der Startvorgang bis hin zum Start eines BASIC-Programms zu sehen: | ||
+ | |||
+ | {{ : | ||
- | | {{z9001: | ||
- | | {{z9001: | ||
- | | {{z9001: | ||
===== Downloads ===== | ===== Downloads ===== | ||
+ | * {{: | ||
+ | * {{z9001: | ||
- | * Software | + | * {{ : |
- | * Schaltung | + | * {{ :z9001:erweiterungen: |
- | ===== Prinzipbild ===== | + | 2025: SD-OS |
+ | * {{ : | ||
+ | * {{ : | ||
+ | * {{ : | ||
+ | * {{ : | ||
- | KC ↔ Terminalprogramm zur Byte-Ein- und Ausgabe ↔ User-Port ↔ SDKC-Modul | + | **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 ===== | ||
- | KC ↔ Kassettenrekorderanschluss ↔ SDKC-Modul | + | Das Terminalprogramm ist nur wenige Bytes groß. Die ganze Funktionalität steckt im Mikrocontroller. |
- | ===== Bedienung ===== | + | {{z9001: |
- | Die SD-Karte ist FAT32-formatiert. Auf ihr sind die Programme " | + | Das Terminal-Programm SDX steuert die Kommunikation zwischen |
- | Das Modul wird am Userport und am Kassettenrekorderport angeschlossen. | + | Die SD-Karte (keine SDHC!) muss FAT12/ |
- | Nach Einschalten des Z9001 erhält auch das Modul Spannung vom Z9001 und es wird das Programm | + | Nach Einschalten des Z9001 erhält auch das Modul Spannung vom Z9001 und es wird das Programm |
+ | Am Z9001 / KC87 tippt man " | ||
- | Das Programm SDX - das Terminalprogramm - startet automatisch. Mit H gibt es eine Hilfe, mit L programmname wird ein Programm eingelesen. So einfach ist das! | + | Das Programm SDX - das Terminalprogramm - startet automatisch. Das SD-Modul meldet sich mit " |
- | :!: Im [[z9001: | + | :!: Im Megamodul |
- | ===== Schaltung ===== | + | < |
+ | .-----------. | ||
+ | | SDX | | ||
+ | | ||
+ | | ||
+ | .------------------+---. | ||
+ | | | | ||
+ | | KC87 | .-----------. | ||
+ | | tape |< | ||
+ | | user-port |< | ||
+ | ' | ||
+ | ' | ||
- | Die Schaltungsunterlagen von Kingstener {{z9001: | + | </ |
- | {{: | + | ===== SD-OS ===== |
- | ===== Programmierung des Controllers ===== | + | 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. | ||
- | 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: | + | {{: |
+ | |||
+ | 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:// | ||
+ | |||
+ | Erste Versionen des Moduls von 2008 basieren auf einem ATMEGA32, Kingstener hat das Modul dann entfrachtet und kleine Platinen entworfen, die direkt an die Seite des KCs angesteckt werden können. Es gab Module für normale SD-Karten und mit Micro-SD-Slot. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== 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, | ||
+ | |||
+ | Der hier verwendete Bootloader stammt aus dem mikrocontroller-Forum {{http:// | ||
+ | |||
+ | 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 62: | 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 FATxx formatierte SD-Karte müssen die beiden Programme |
- | + | ||
- | Auf die Mit FAT16 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 | + | |
- | 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 | + | Z9001-Programme müssen in TAP-Format vorliegen. Sie können beliebig in Unterverzeichnissen |
- | ===== Die Terminalsoftware ===== | + | :!: Da nur 8+3-(DOS)-Filenamen angezeigt werden, sollte man die TAP-Dateien entsprechend umbenennen. Bei längeren Dateinamen wird sonst die Kurzform |
- | + | 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: | |
- | Ich habe erstmal eine relokatible Version von SDX erstellt, die sich ans vorhandene RAM-Ende stellt. Damit muß man nicht mit verschiedenen Versionen arbeiten. | + | |
===== SD2KC ===== | ===== SD2KC ===== | ||
Zeile 142: | 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) |