Hi, ich muss eine einfache Ansteuerung für eine Compact-Flash-Karte realisieren. Es sollen ausschließlich Daten auf die Karte geschrieben werden, also keine Dateien, kein Lesen oder sowas. Das ganze soll im True-IDE-Modus laufen (der Controller ist auf dem Board auch dementsprechend aufgelötet). Ich hatte das vor einer Weile auch schonmal probiert (mit einer Statemachine), aber irgendwas lief da schief, ich weiß leider nicht ganz genau, was. Die Kommunikation mit der Karte ging eigentlich, aber wenn ich die Register mit der LBA-Adresse beschreiben wollte, gabs Probleme. Das ganze lief damals so ab (bzw. sollte ablaufen): 1. Statusregister auslesen -> Wenn alles ok dann 2. Sektoranzahl schreiben, dann nochmal 1. 3. LBA-Adresse schreiben, zwischendurch immer wieder 1. 4. Daten schreiben Bei 3. hatte ich aber immer Probleme. Ich habe zwischendurch immer wieder das Statusregister ausgelesen um zu sehen, ob der letzte Schreibvorgang ok war, und da schien es mir, als würde beim Lesen das gleiche am Datenbus anliegen wie das, was ich gerade geschrieben hatte. Naja, habe jetzt schon an einigen Stellen gelesen, dass man sowas besser mit einem Mikrocontroller macht. Da das Board schon fertig ist, müsste das ein Picoblaze im FPGA sein. Die Sache ist, dass ich mich mit µC-Programmierung nicht so sehr auskenne. Eigentlich überhaupt nicht. Kann kein Assembler. Nun meine Fragen: 1. Denkst du, dass ich das Problem mit Picoblaze eher in den Griff kriege Oder sollte ich es nochmal mit 'ner Statemachine versuchen? 2. Da ich kein Assembler kann: Weiß jemand ein "idiotensicheres" Tutorial dafür? 3. Könnte ich den Picoblaze nicht auch in C programmieren?
@ Christian Peters (kron) >Es sollen ausschließlich Daten auf die Karte geschrieben werden, >also keine Dateien, kein Lesen oder sowas. Das ganze soll im Zum Debuggen musst du auch lesen. >Bei 3. hatte ich aber immer Probleme. >Ich habe zwischendurch immer wieder das Statusregister >ausgelesen um zu sehen, ob der letzte Schreibvorgang ok war, >und da schien es mir, als würde beim Lesen das gleiche >am Datenbus anliegen wie das, was ich gerade geschrieben hatte. Mal mit nem Oszi das Ganze angeschaut? Timing OK? >Da das Board schon fertig ist, müsste das ein Picoblaze im FPGA sein. >Die Sache ist, dass ich mich mit µC-Programmierung nicht so sehr >auskenne. >Eigentlich überhaupt nicht. Kann kein Assembler. Das ist schlecht. >1. Denkst du, dass ich das Problem mit Picoblaze eher in den Griff >kriege >Oder sollte ich es nochmal mit 'ner Statemachine versuchen? Unter den Voraussetzungen sind beide Wege schwer. Dir fehlen Grundlagen und weitergehende Kenntnisse. >2. Da ich kein Assembler kann: Weiß jemand ein "idiotensicheres" >Tutorial dafür? Nö. Aber die diversen Bücher über Assembler sind da sehr nützlich. Du solltest dir ein Buch für einen einfachen 8-Bit Prozessor suchen (AVR, 8051, 68HC11 etc.). >3. Könnte ich den Picoblaze nicht auch in C programmieren? Jain. Es soll wohl einen kleinen C-Compiler für den Picoblaze geben, aber ich bi skeptisch ob der nciht zuviel Ressourcen braucht. Hab aber keinen Link parat. Bei der Grösse und Komplexität der Aufgabe ist Assembler noch gut einsetzbar. Zumal du dich sowieso um die "ekligen" Details kümmern musst (hardware, Timing, Register etc.). MFG Falk
Danke für deine Antwort! > Zum Debuggen musst du auch lesen. Ich meinte, dass ich die draufgeschriebenen Daten nicht auslesen muss. Auch zum Checken lese ich die am PC. > Das ist schlecht. > Unter den Voraussetzungen sind beide Wege schwer. Dir fehlen Grundlagen > und weitergehende Kenntnisse. Danke fürs Mutmachen ;) > Nö. Aber die diversen Bücher über Assembler sind da sehr nützlich. Du > solltest dir ein Buch für einen einfachen 8-Bit Prozessor suchen (AVR, > 8051, 68HC11 etc.). Hast du einen konkreten Buchtipp? Ich habe es bei VHDL gemerkt, es gibt unzählige Bücher, aber viele sind einfach schlecht geschrieben (ist natürlich auch persönlicher Geschmack). Wie ist das überhaupt, die Datenanbindung zur Karte ist ja 16bit breit, geht das mit 'nem 8bit-Controller?
@ Christian Peters (kron) >Ich meinte, dass ich die draufgeschriebenen Daten nicht auslesen muss. >Auch zum Checken lese ich die am PC. Schon klar, aber dennoch ist es sinnvoller, bzw. notwendig, dass dein FPGA auch die Daten lesen kann. >Danke fürs Mutmachen ;) Was dich nicht umbringt macht dich härter. ;-) >Hast du einen konkreten Buchtipp? Leider nein. Schau dir das Assembler-Tutorial auf dieser Seite an, AVR Assembler ist relativ ähnlichzum Picoblaze. >Ich habe es bei VHDL gemerkt, es gibt unzählige Bücher, Ja, ein wirklich gutes VHDL-Buch kenne ich auch nicht. >Wie ist das überhaupt, die Datenanbindung zur Karte ist ja 16bit breit, >geht das mit 'nem 8bit-Controller? ??? Aber sicher! Der Controller muss eben mit mehreren Befehlen die Daten transportieren. Du brauchst sowieso ein wenig Logik um den Picoblaze an den IDE-Bus anzuschliessen. Alles kein grosses Problem, aber für einen Anfänger, naja, ne sehr sportliche Herausforderung. Adresse schreiben Low Byte schreiben High Byte schreiben Zugriff auslösen MfG Falk
Was genau ist denn eigentlich der Vorteil, wenn ich die Ansteuerung in 'nem µC programmiere? Also inwiefern macht das meine Aufgabe leichter (abgesehen von meinem µC-Wissensstand)? PS: Mir hat das am Anfang sehr geholfen: http://www.amazon.de/VHDL-Eine-Einf%C3%BChrung-Paul-Molitor/dp/3827370477/ref=sr_1_9/303-0397172-6797029?ie=UTF8&s=books&qid=1185359518&sr=8-9
@ Christian Peters (kron) >Was genau ist denn eigentlich der Vorteil, >wenn ich die Ansteuerung in 'nem µC programmiere? Das hatten wir doch schon mal diskutiert, oder? Ein uC Programm lässt sich leichter erweitern als eine State Machine, ausserdem ist des "intuitiver" zu verstehen. Schleifen sind in Software beispielsweise leichter zu programmieren (naja, ist alles relativ). MFG Falk
Hm, also leichte Erweiterung ist für mich eigentlich irrelevant, das wird einmal programmiert und dann soll es auch so bleiben. Und intuitives Verstehen...naja, VHDL verstehe ich 10mal besser als Assembler! Schleifen brauche ich eigentlich auch keine bei meiner FSM. Ich will jetzt deine Antwort nicht madig machen, ich versuche nur herauszufinden, ob es wirklich sinnvoller ist, das mit 'nem Picoblaze zu versuchen.
@ Christian Peters (kron) >Hm, also leichte Erweiterung ist für mich eigentlich irrelevant, >das wird einmal programmiert und dann soll es auch so bleiben. Das meinte ich nicht ganzso. Ich meinte mehr in Richtung des schrittweisen Programmaufbaus. >Und intuitives Verstehen...naja, VHDL verstehe ich 10mal besser als >Assembler! Da solltest du es mit einer State Machine machen, möglich ist es. >Schleifen brauche ich eigentlich auch keine bei meiner FSM. Woher weist du das? Hast du schonmal sowas wie ein Struktogramm/Programmablaufplan gemacht? Das glaube ich kaum. Schliesslich willst du ja eine ganze Menge an Daten auf die Karte schreiben, dort ist eine Schleife (Bytezähler) unerlässlich. Aber auch das ist kein nennenswertes Problem in einer State Machine. >herauszufinden, ob es wirklich sinnvoller ist, das mit 'nem Picoblaze >zu versuchen. IMO ja, wenn man die Einstiegshürden überwunden hat, wenn gleich du da noch einen langen Weg vor dir hast. Aber der Weg ist das Ziel ;-) MfG Falk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.