Frage

Ich habe kürzlich mojo v3 gekauft, die bereits über das UART-Modul hat, um mit der AVR und vom AVR auf den Computer zu kommunizieren.
Mein Problem ist: Wie verbinde ich das mit anderen Modulen?
Nehmen wir an, ich habe einen MD5-Kern, der X Bytes akzeptiert, was den besten Annäherigen, um von den seriellen X-Zeichen zu lesen, bis die ENTER gedrückt wird, und dann zurück in den MD5-Kern?
Ok, ich bin ein Neuling, geschweige denn MD5, lass uns sagen, dass ich nur ein einfaches Echo machen möchte.
Wo soll ich anfangen? mit dem FIFO? Umschaltregister? einfache Arrays? Bram?
Dies ist die AVR-Schnittstelle (UART):

generasacodicetagpre.

Ich benutze dieses Tutorial als Basis, um mehr zu erfahren: http://embeddedmicro.com/tutorials/mojo/hello-world/
Ich habe bereits ein einfaches Echo-Byte mit Byte gemacht, aber das ist nicht der Punkt. Ich möchte nur, dass die Zeichenfolge wiederholt, wenn die Eingabe gedrückt wird. Danke.

update:
Mojo-Entwickler machte hier ein fantastisches Beispiel:
http://embeddedmicro.com/forum/viewtopic.php?f=2& ; t= 697 & start= 10
Danke.

War es hilfreich?

Lösung

Um einen beliebigen Längenblock wiederzuhängen, benötigen Sie ein FIFI und eine Art Zustandsmaschine, um sie zu steuern. Der FIFO-Eingang wird an den Bus angeschlossen, der vom UART RX-Modul stammt. Der FIFO-Ausgang wird an den Bus angeschlossen, der zum UART TX-Modul geht. Es muss auch ein Weg sein, den Ouptput des FIFO zu blockieren, damit er kein Byte sendet. Ist es einfach, dies zu tun, ist nur ein Steuersignal mit dem "Ready" -Signal, das zum FIFO, und das "gültige" Signal, das vom FIFO vom FIFO zum UART TX-Modul ausgeht.

Dann muss alle staatlichen Maschine die Daten an beiden Enden des FIFO ansehen. Wenn ein ENTER-Tastendruck empfangen wird, erhöhen Sie einen Zähler. Wenn ein ENTER-Tastendruck aus dem FIFO kommt, dekrementieren Sie den Zähler. Wenn der Zähler größer als Null ist, entsperren Sie den FIFO-Ausgang. Andernfalls blockieren Sie es, damit keine Daten herauskommen.

Wenn Sie bestimmte Daten an ein bestimmtes Modul senden möchten, müssen Sie dann ein binäres Paketformat von einigen Sortieren definieren. Grundsätzlich benötigen Sie eine Art Startkennung für das Framing und wahrscheinlich eine Art Typ Identifier, gefolgt von den Daten. Dann können Sie auf dem FPGA auf das Start-Trennzeichen warten, den Typ prüfen, den Typ überprüfen und dann in den Registern in die Register laden, wie sie eingehen. Wenn Sie das gesamte Paket erhalten haben, können Sie das Modul, das Sie mit einem kommunizieren, senden. Signal, dass alle Daten bereit sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top