Wie kann ich schreiben Sie einen SPI-Treiber für Logistiksoftware von TRANSDATA jetzt 7000 ARM development board?
Werde ich schreiben einen SPI-Treiber für ein ARM-Entwicklung-board. Es ist nicht mit Linux verwendet wird.
Gestern lese ich das QSPI-Treiber, der von Xilinx zur Verfügung gestellt, und ich versuchte es erfolgreich. Allerdings würde ich wirklich gerne Schreibe meine eigenen SPI Treiber.
Hier sind meine Fragen:
- Was ist der Unterschied zwischen QSPI und SPI auf Nutzung?
- Wenn ich Schreibe einen Treiber basierend auf QSPI, wird es funktionieren?
- Wenn ich Schreibe einen Treiber von Grund auf neu, was ist die grundsätzliche Vorgehensweise (READ /WRITE /INITIALIZE)?
- Und schließlich, warum müssen die SPI senden und empfangen zur gleichen Zeit?
Danke an alle.
Dies muss aussortiert werden und geklärt werden eine Menge. Jedoch, QSPI-Kerne in einem Prozessor neigen dazu, in der Lage zu sprechen, SPI, wenn Sie in einem solchen Modus, so überprüfen Sie zunächst die Dokumentation und die Quellen und stellen Sie sicher, dass die Treiber, die Sie bereits haben, nicht verwendet werden kann für nur SPI.
SPI ist von Natur aus ein Austausch von bits, aber niemand sagt, dass diejenigen, die Lesen, beim schreiben muss wichtig sein, in jedem Fall hängt es von der Peripherie. Für viele, denen während der lese-Befehl für sinnlos, und dann ist es egal, was Sie Uhr aus, während die Antwort-Daten gelesen wird. Es ist jedoch auch möglich, eine Peripherie die für eine Optimierung der bus-Auslastung, indem Sie alte oder Standard/status-Antworten, die gleichzeitig Ihr neue Befehle.
SPI ist von Natur aus ein Austausch von bits, aber niemand sagt, dass diejenigen, die Lesen, beim schreiben muss wichtig sein, in jedem Fall hängt es von der Peripherie. Für viele, denen während der lese-Befehl für sinnlos, und dann ist es egal, was Sie Uhr aus, während die Antwort-Daten gelesen wird. Es ist jedoch auch möglich, eine Peripherie die für eine Optimierung der bus-Auslastung, indem Sie alte oder Standard/status-Antworten, die gleichzeitig Ihr neue Befehle.
InformationsquelleAutor Ezio | 2013-05-19
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich, kann es einfacher sein, beginnen Sie mit Ihrer letzten Frage zuerst.
Why must SPI send and receive at the same time?
Die einfache Antwort ist, dass es ist Teil des Protokolls. Wie Daten verschoben und auf der MOSI Leitung vom Master zu den Slave, der Daten in den Slave der buffer wird verschoben, bis der Master auf der MISO Leitung. Dies ermöglicht es der hardware, zu einem einzigen register, die in jedem Gerät für die gesendeten Daten und empfangenen Daten. Es ist eine gute Darstellung des Prozesses hier:
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
Die nicht so leicht zu beantworten ist, dass SPI ist kein gut definierter standard. Es gibt verschiedene Arten der Umsetzung je nach den Geräten, die Sie verwenden. Es gibt sogar eine Variante, wo die MOSI und MISO Leitungen kombiniert werden und in einer bidirektionalen Art und Weise (3-Draht, SPI). Jedoch, die meisten Implementierungen, die ich behandelt haben Sie mit dem senden und empfangen über zwei verschiedene Linien, und das neigt dazu, die standard-Methodik.
What is the difference between QSPI and SPI on usage?
QSPI-oder Quad-SPI eigentlich nicht dem standard entsprechen Methodik und bricht das Konzept der senden und empfangen gleichzeitig. Es nutzt vier bidirektionale I/O-Leitungen zum senden und empfangen von Daten und wird oft verwendet für Speicher-Anwendungen (weil es schneller ist als SPI). Mit QSPI Sie nicht senden und empfangen gleichzeitig.
If I write a driver based on QSPI, will it work?
Sicherlich! Sie müssen nur machen Sie sich vertraut mit der hardware, die Sie verwenden. Wieder, SPI ist sehr Verschieden von Quad-SPI, und Sie können oft finden Sie hardware-Implementierungen, die es sehr einfach zu bedienen, QSPI. Zum Beispiel, Ihre Logistiksoftware von TRANSDATA jetzt 7000 hat ein QSPI-Controller, der eine Menge von features zum vereinfachen der Codierung Prozess. Es werden auch arbeiten im "legacy-Modus", der verhält sich wie ein normaler SPI-controller. Auf top von, dass, die Logistiksoftware von TRANSDATA jetzt 7000 hat zwei weitere standard-SPI-Controller, die nicht das setup für QSPI. Ich würde sehr empfehlen Ihnen, Lesen Sie die technische Dokumentation hier:
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
If I write a driver from scratch, what is the basic procedure?
Dass ist sehr abhängig von der hardware. Ich habe einen schnellen überblick über Ihre hardware, sondern detailliert die Schritte, hier würde zuviel Zeit in Anspruch nehmen. Doch das technische Handbuch für Ihr Gerät angezeigt wird, haben Sie tolle Schritt-für-Schritt-Anweisungen zum konfigurieren und verwenden beide das QSPI-und SPI-Controller. Hier ist ein Beispiel aus der SPI-Abschnitt:
17.3.1 Start-up-Sequenz
Beispiel: Start-up-Sequenz
liest Daten aus den RxFIFO und schreibt Inhalte auf den TxFIFO. Die PS-interrupt-controller ist
beschrieben in Kapitel 7, Unterbricht. Der interrupt-Mechanismus für den SPI-controller ist beschrieben in
Abschnitt 17.3.5 Interrupt-Service-Routine.
Start-Daten-transfers:
Master-Modus Betrieb wählen: Manuell/Auto-start-und-SS, siehe Abschnitt 17.3.3 Master-Modus Daten Übertragen.
Slave-Modus finden Sie unter Abschnitt 17.3.4 Slave-Modus Daten Übertragen.
Ich hoffe, das hilft!
InformationsquelleAutor embedded_guy