Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:erweiterungen:sdcard2 [2010/07/23 11:16] – Page moved from z9001:sdcard2 to z9001:erweiterungen:sdcard2 volkerp | z9001:erweiterungen:sdcard2 [2021/09/19 13:34] (aktuell) – volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== SD-Karte mit AVR ====== | ====== SD-Karte mit AVR ====== | ||
- | |||
- | BAUSTELLE | ||
**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 SD-CARD-Interface für die KC's bekommen. Zur Nutzung am Z9001 kann man das noch abspecken, benötig wird i.W. nur ein Mikrocontroller ATMEGA32 und eine SD-CARD-Fassung. Die Hardware wird am User-Port und anstelle des Kassettenrecorders am Tape-Eingang angeschlossen und fungiert als digitaler Kassettenrecorder. Nach RESET wird automatisch ein kleines Monitorprogramm 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 ganze ist wirklich recht schnell und funktioniert sehr gut. 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. | + | {{: |
+ | |||
+ | Von Kingstener habe ich ein fertig aufgebautes SD-CARD-Interface für die KC's bekommen. Zur Nutzung am Z9001 kann man das noch abspecken, benötig wird i.W. nur ein Mikrocontroller ATMEGA32 und eine SD-CARD-Fassung | ||
+ | |||
+ | 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. | ||
+ | |||
+ | http:// | ||
- | | http://home.arcor.de/kingstener/Page44.htm | | + | Kingsteners Lösung baut auf dem SD-Interface von Arne Fitzenreiter |
| {{z9001: | | {{z9001: | ||
| {{z9001: | | {{z9001: | ||
| {{z9001: | | {{z9001: | ||
+ | |||
+ | ===== Downloads ===== | ||
+ | |||
+ | |||
+ | * Software {{: | ||
+ | * Schaltung {{z9001: | ||
===== Prinzipbild ===== | ===== Prinzipbild ===== | ||
Zeile 25: | Zeile 36: | ||
Das Modul wird am Userport und am Kassettenrekorderport angeschlossen. | 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 " | + | Nach Einschalten des Z9001 erhält auch das Modul Spannung vom Z9001 und es wird das Programm " |
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. Mit H gibt es eine Hilfe, mit L programmname wird ein Programm eingelesen. So einfach ist das! | ||
+ | |||
+ | :!: Im [[z9001: | ||
===== Schaltung ===== | ===== Schaltung ===== | ||
Die Schaltungsunterlagen von Kingstener {{z9001: | Die Schaltungsunterlagen von Kingstener {{z9001: | ||
+ | |||
+ | {{: | ||
===== Programmierung des Controllers ===== | ===== Programmierung des Controllers ===== | ||
- | Initial muss der Controller den Bootloader einprogrammiert bekommen. Das geht mit einem externen AVR-Programmer oder einer selbstgebauten Lösung, wie etwa unter [[usb|]] beschrieben. Wichtig ist das korrekte Setzen der Fuses: | + | Initial muss der Controller den Bootloader |
- | (bild) FIXME | + | **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)) |
+ | |||
+ | BOOTSZ1 = 0 und BOOTSZ0 = 1 (Boot Flash section size 2048 Byte = 1024 Word, Start Address 3C00h) (!!)\\ | ||
+ | BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders\\ | ||
+ | Ext. Quarz (CKSEL = 1111, SUT=11) (SUT=10 lt. u.a. Angaben, vgl. Bild und Liste) | ||
+ | |||
+ | {{: | ||
+ | Holgi' | ||
+ | |||
+ | Mein AVR ausgelesen mit Wellon-Programmer VP-280: | ||
+ | |||
+ | '' | ||
+ | |||
+ | Der Atmega-Microcontroller kann auch später im fertigen Gerät über das SPI-Interface programmiert werden! | ||
===== Der Bootloader ===== | ===== Der Bootloader ===== | ||
- | Der verwendete Bootloader stammt aus dem mikrocontroller-Forum http:// | + | Der verwendete Bootloader stammt aus dem mikrocontroller-Forum |
- | Befindet sich auf der SD-Karte eine Datei SD2KC.BIN mit neuerer Version als im Controller gespeichert, | + | Befindet sich auf der SD-Karte eine Datei SD2KC.BIN mit neuerer Version als im Controller gespeichert, |
- | ===== Die Controller-Software ===== | + | :!: Die aktuelle Versionsnummer steckt im Quellfile KCSCF.C (Zeile 43, %%//Kennung für den Bootloader...%%), |
- | ... | + | ===== Die SD-Karte ===== |
+ | |||
+ | Auf die Mit FAT16 formatierte SD-Karte müssen die beiden Programme | ||
+ | * load87 | ||
+ | * SD2KC.BIN | ||
+ | ins Root-Verzeichnis. | ||
+ | |||
+ | Der Bootloader programmiert den AVR beim Start mit SD2KC.BIN, wenn die | ||
+ | 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 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 Terminalsoftware ===== | ||
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 habe erstmal eine relokatible Version von SDX erstellt, die sich ans vorhandene RAM-Ende stellt. Damit muß man nicht mit verschiedenen Versionen arbeiten. | ||
+ | |||
+ | ===== SD2KC ===== | ||
+ | |||
+ | Die Software für den ATMEL ATMEGA32 Mikrocontroller basiert i.W. auf der FAT-Engine von von Holger Klabunde http:// | ||
+ | |||
+ | Aus Holgers Paket FATSingleOpt41.zip stammen unverändert die Quell-Dateien | ||
+ | |||
+ | '' | ||
+ | COMPACT.H | ||
+ | DIR.C | ||
+ | DIR.H | ||
+ | DOS.C | ||
+ | DOS.H | ||
+ | drivefree.c | ||
+ | drivefree.h | ||
+ | DUMPSECT.C | ||
+ | DUMPSECT.H | ||
+ | FAT.C | ||
+ | FAT.H | ||
+ | FIND_X.C | ||
+ | FIND_X.H | ||
+ | LCD.C | ||
+ | LCD.H | ||
+ | mem-check.c | ||
+ | mem-check.h | ||
+ | MMC_SPI.C | ||
+ | MMC_SPI.H | ||
+ | PRINTF.C | ||
+ | PRINTF.H | ||
+ | README.TXT | ||
+ | READRAW.C | ||
+ | READRAW.H | ||
+ | RENAME.C | ||
+ | SERIAL.C | ||
+ | SERIAL.H'' | ||
+ | |||
+ | sowie (ans konkrete Projekt angepasst) | ||
+ | '' | ||
+ | MYDEFS.H'' | ||
+ | |||
+ | Von Kingstener und Arne Fitzenreiter stammen | ||
+ | '' | ||
+ | COMMANDS.H | ||
+ | KCFILE.C | ||
+ | KCFILE.H | ||
+ | KCSCF.C | ||
+ | PPORT.C | ||
+ | PPORT.H | ||
+ | TAPE.C | ||
+ | TAPE.H'' | ||
+ | |||