Mikroprozessor Boards/SDIO-Board: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(Firmware)
(Firmware)
Zeile 49: Zeile 49:
  
  
Der nächste Schritt wäre die Implementierung von NitrOS-9 statt der FATFS Sache. OS9 ist viel kompakter als FAT und eben für die Motorola 6809 optimiert.
+
Der nächste Schritt wäre die Implementierung von [https://nitros9.sourceforge.io/wiki/index.php/Main_Page NitrOS-9] statt der FATFS Sache. OS9 ist viel kompakter als FAT und eben für die Motorola 6809 optimiert.
 
 
  
 
<br />
 
<br />

Version vom 26. Juni 2020, 12:33 Uhr

SDIO Board
6809 Kit

SD-IO von Nils Eilers

Nils Eilers hat eine SD-Card Platine entwickelt für das 6309 Board von Wichit Sirichote. Die Platine wird über ein Flachbandkabel an den 40 poligen Erweiterungsport angeschlossen. Der 40 polige Erweiterungsport führt alle relevanten Signale der CPU heraus. Dazu gehört der ganze Adressbus (A0 bis A15) sowie der Datenbus und der Controlbus.

Das SD-IO Board von Nils Eilers enthält einen GAL für die Adressdekodierung und Clock Erzeugung für das SD Board. Dazu enthält es TTL für IO (D-FF + Input Driver) sowie einen Baustein für die Pegelanpassung zur SD Karte.



Die erste Version des SDIO war noch ein Prototyp auf Lochraster und am LCD Port angeschlossen.

Der Vorteil eines SD Boards am Erweiterungsport: das LCD Port ist wieder frei, man kann also SD Karte UND LCD Display zugleich betreiben.

Vielen Dank an Nils für das wunderschöne Board!


Update 1: für die 30K Firmware braucht es eine Hardware Modifikation bestehend aus einem Draht (siehe Foto: A1 an Pin 4 des GAL).



Firmware

Der Lowlevel Zugriff auf die SD Karte ist in 6309 Assembler Implementiert (SD BIOS). Es liegt im ROM ab Adresse $F800 und belegt etwas weniger als 2KB. Der Zugriff erfolgt über eine Sprungtabelle ab $F800. Neben dem SD Card Code sind einige weitere Routinen enthalten für Zeitverzögerung (Delay_xx) und Terminal Ausgabe (PUTxxx, HEXnn, DUMPmmm ..). Der SD Card Teil beinhaltet SD Initialisierung (SDIOinit, SDIOstatus), SD lesen (SDIOreadCSD, SDIOreadCID, SDIOreadStatus, SDIOreadBlock, SDIOreadBlocks) und SD schreiben (SDIOwriteBlock, SDIOwriteBlocks).

Auf dem SD BIOS aufgesetzt wird das FAT-FS von Elm Chan. Das FATFS kann man mit dem großartigen CMOC Compiler übersetzen. Es sind nur geringe Änderungen in der Datei FF.C notwendig, weil der vorliegende CMOC Probleme mit dem Operator ? hat.

Das große Problem des mit CMOC übersetzte FATFS ist die Größe des Modul. Der CMOC produziert relativ großen Code. Wenn man alle Optionen des FATFS in der Datei ffconf.h aktiviert, dann braucht es 32KB und hat keinen Platz mehr im ROM. Die aktuelle Version v1.01 hat die allerwichtigsten Dinge aktiviert und belegt fast 22KB des ROM. Der Code hat auch eine Sprungtabelle ganz am Anfang an der Adresse $A000. Die Sprungtabelle ist aber auf CMOC Code ausgelegt und kann direkt von C Funktionen im RAM verwendet werden (siehe Beispiel Code). Dadurch wir der C Code im RAM sehr kompakt.



  • V1.00 - erste Version, FATFS nur lesen
  • V1.01 - FATFS lesen/schreiben, Datei löschen, Directory lesen, Dateiattribute setzen


Der nächste Schritt wäre die Implementierung von NitrOS-9 statt der FATFS Sache. OS9 ist viel kompakter als FAT und eben für die Motorola 6809 optimiert.


Dokumentation


Links