Wie konfiguriere ich die SPI-Pins (MOSI, MISO, sclk und SS) für ATMEL ATSAM3X8E?

Ich verwende ATMEL Studio 6 zum Programmieren und Anfänger in eingebetteten Systemen. Derzeit habe ich die Theoriearbeit von SPI gelesen. Ich verstehe, dass ich bestimmte Bits im Steuerregister auf eins setzen muss, um den Master- oder Slave-Betriebsmodus und die Taktpolaritäten, die Phase usw. zu definieren.

Problem: 1) Wie konfiguriere ich MOSI, clock und select_line als Ausgangspin vom Master und MISO als Eingangspin zum Master?.

2) Master und Slave sind beide Mikrocontroller, ich muss nur Daten zum und vom Slave übertragen und empfangen. Sollte also der Master-Code im Master-MC und der Slave-Code im Slave-MC abgelegt werden? oder beide mcs müssen den gesamten code in sich haben?.

3) Was sind die wichtigsten Faktoren und Schlüsselpunkte, die bei der SPI-Programmierung berücksichtigt werden sollten?

Jede Hilfe, Anregung und Wegbeschreibung diesbezüglich wäre willkommen. Danke.

Antworten (1)

  1. Mit dem Register legen Sie dieDDRx Richtung eines Stiftes fest ( D atenrichtungsregister ) . ist der Name des Ports, den Sie verwenden. Setzen Sie das entsprechende Bit für einen Ausgang auf 1 und für einen Eingang auf 0.x

  2. Ist auf deiner Maus Windows installiert? Nein. Dasselbe gilt für Mikrocontroller. Sie brauchen den Code nur, um ihre eigene Aufgabe auszuführen. Wozu braucht der Slave die Software, die auf dem Master läuft?

  3. SPI ist ein unglaublich einfaches Protokoll. Das Wichtigste dabei ist, dass es vollduplex und synchron ist. Wenn der Slave Daten an den Master senden muss, ist es Sache des Masters, diese Daten anzufordern – der Slave kann nicht einfach Daten nach Belieben an den Master senden. Es ist auch wichtig sicherzustellen, dass der Slave schnell genug auf das SS-Signal reagieren kann - Sie möchten nicht das erste Bit des ersten eingehenden Bytes verpassen.

Was ist mit der Konfiguration der MOSI-, SS- und SCK-Pins als Ausgang vom Master und MISO als Eingang zum Master? Soll ich diese Pins mit DDRx setzen oder gibt es dafür einen anderen Weg? Entschuldigung, wenn meine Frage lahm ist, nur voller Zweifel.
Können Sie bitte ein Beispiel für Ihre Antwort 1 geben, wie dies für SPI-Pins zu tun ist?
Sie tun es auf die gleiche Weise wie für jeden Stift. Sie sehen, wie der Pin heißt, sagen wir B3, dann setzen oder löschen Sie Bit 3 in DDRB