Forum: Mikrocontroller und Digitale Elektronik Compact Flash Steuern in Assembler


von Erik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leuts!
Hab mal nach Ralf Hochhausens Doku "Ansteuerung einer CF im Memory
Mapped Mode"
die Ansteuerung in Assembler geschrieben, da ich leider kein C
beherrsche.
Habe die Schaltung auf der letzten Seite seiner Doku mit einem 90S8515
aufgebaut...
Das 32KB externe SRAM funktioniert, hab einmal ein Programm geschrieben
dass das externe
SRAM verwendet... (Push & Pop, sts & lds ab 0x7ff)
In einem 2. Schritt hab ich nach Ralfs Doku mein Progi geschrieben,
läuft aber nicht, es bleibt
bei "Unterprogramm CF_CHECK_READY_0x58" hängen, CF  gibt kein
Ready... evtl. hats sonst noch Fehler?!
Ich finde einfach den Fehler nicht!
Hat jemad schon mal ne CF erfolgreich in Assembler ausgelesen und oder
beschrieben und könnte mir sein Code
zur Inspiration zur Verfügung stellen?!
Ich finde einfach den Fehler nicht. Habe alles nett kommentiert, inkl.
Struktogramme.
Hat jemand ne Ahnung was ich falsch mache?
Hardware sollte in Ordnung sein, habs 2mal geprüft.
Ich versuche nur einen Sektor auszulesen, Schreibroutine hab ich noch
nicht gemacht da ich
den "Wert" den ich ins Command Register fürs "schreiben" noch nicht
kenne.
Ich habe Vorher die Gesamte CF Karte mit einem PC und Winhex mit 0xAA
beschrieben und möchte dies auslesen.
Bitte helft mir, bin am Anschlag, Misserfolg der frustet mich :-)
Wenn das ganze läuft, werde ichs Opensourcen, Komplette CF-Ansteuerung
in Assembler hab ich nämlich noch nie gesehen!

Asm File ist im .txt-Format -->bessere Uebersicht.

Ich wäre sehr dankbar wenn ich ein paar nützliche Tipps bekäme!

Greets, Erik.

von Erik (Gast)


Lesenswert?

Dnkeschön für die Hilfe :-)
Kann oder will mir keiner helfen?!

von fury (Gast)


Lesenswert?

Wenn du 8051-Assembler verstehst wirst du hier fündig:

http://www.mikrocontroller.net/forum/read-4-106761.html#new

Ich kann leider mit dem (AVR?) Assembler nix anfangen

von Erik (Gast)


Lesenswert?

Dankeschön!
Ich habe mittlerweile herausgefunden dass irgendwas mit meinem externen
Bus nicht in Ordnung ist.
Ich habe versucht die LBA-Register zu beschreiben und wieder auszu
lesen. Die reingeschriebenen Werte kommen nicht mehr richtig heraus.
Wahrscheindlich stimmt das Timing nicht, mein Bus ist wohl trotz der
Waitstates zu schnell und die Cf die ich verwende ist schon x Jahre alt
und wahrscheindlch zu alt.
Ich werde jetzt die CF direkt an den uC anschliessen ohne externes
Businterface und alles lngsam "Manuel" ansteuern. Mal sehen was dan
heraus kommt...
Das externe Ram funzt, aber die CF nicht...

von Erik (Gast)


Lesenswert?

Habe immer noch probleme mit der CF Karte zu kommunizieren.
Da ich immer noch nicht genau herausgefunden habe woran es liegt, habe
ich versucht die Lese / Schreib Routinen manuell zu steuern, dass
heisst ich habe das Adresslatch Enable auf den PortC.4 umgelötet und
ein proggrammchen geschrieben in dem ich die ganzen Lese-
Schreibroutinen manuell mache. Es funktioniert, ich konnte das identify
auslesen!
Nun weiss ich das die CF und meine Hardware 100% ok sind.
Ich möchte aber weiterhin unbedingt das externe businterface benützen
da ich möglichst schnell ca. 80 KB/s lesen oder schreiben will unds so
viel schneller geht.

Nun zu meiner Frage:

Weshalb funktionierts nicht mit folgenden Befehlen:

sts 0xE007, 0xEC    ;Identifiywert ins Kommandoregister schreiben
warten....
lds work, 0xE000    ;Indentify aus CF Datenregister ins work laden.

vorgängig habe ich noch das externe Ram aktiviert und den Stack auf
0x7FFF gesetzt.

Es will einfach nicht :-(
Mit sts lds kann ich nicht mit der CF kommunizieren, weshalb nicht???!

Wäre für Hilfe dankbar!

von Breti (Gast)


Lesenswert?

Hi Erik,

ich kann Dir leider momentan nicht direkt helfen. Allerdings wird in
den nächsten 3-4 Wochen das Gleiche Problem bei mir auftauchen, da ich
ebenfalls eine CF Karte im Memory Mapped Mode ansprechen möchte. Evt.
soll dann sogar noch ein Fat darauf folgen (das wird dann aber evt.
gekauft - weil einfacher).
Wenn Du Interesse hast, so biete ich Dir an, dass wir uns bezüglich der
CF Karten mal austauschen können. Schreib mir einfach ne Mail.
Habe bisher schon nahezu alles an Doku gelesen, aber die Hardware gibts
erst Mitte November :)

Gruß,
       Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.