mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Bus an ADuC831


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe 2 Boards auf denen sich jeweils ein ADuC831 befindet. Ich 
möchte diese µC nun zu Testzwecken miteinander mit dem SPI Bus 
verbinden. Da es mein erstes Projekt mit dem SPI Bus ist, möchte ich nun 
noch einige Fragen klären:

- MISO und MISO gehören verbunden, nicht MISO und MOSI, oder?
- MOSI und MOSI gehören verbunden, nicht MISO und MOSI, oder?
- wohin mit dem SS? Soll ich beim Master irgendeinen Port nehmen? und 
beim Slave?
- hätte irgendeiner vielleicht eine fertige SPI Routine (senden / 
empfangen) in C?

Danke und liebe Grüße,

christian

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- MISO und MISO gehören verbunden, nicht MISO und MOSI, oder?
- MOSI und MOSI gehören verbunden, nicht MISO und MOSI, oder?

  MasterInSlaveOut -> Master Eingang kommt an den Ausgang vom Slave
  MasterOutSlaveIn -> Master Ausgang kommt an den Eingang vom Slave

- wohin mit dem SS? Soll ich beim Master irgendeinen Port nehmen? und
beim Slave?

  Der SlaveSelect sorgt dafür,das der Slave aktiv wird.Wenn der Master 
den
  nicht setzt (bzw. setzt falls Low-Aktiv SS/),darf der Slave nix 
machen.
  Damit benötigt dann der Master jeweils ein Portpin pro Slave.Ob der
  SlaveSelect bei deinem Controller per Hardware gesteuert werden 
kann,weiß
  ich jetzt nicht.Ein normaler I/O tut es jedenfalls auch.

  Wenn es nur einen Slave gibt,kann der Master diesen auch dauerhaft 
aktiv
  halten. (Also SS per Pull-Down auf Low (SS/) oder High (SS) halten)

- hätte irgendeiner vielleicht eine fertige SPI Routine (senden /
empfangen) in C?

 Ohne mich mit dem Controller jetzt zu beschäftigen: Wahrscheinlich hat
 AnalogDevices für das Ding irgendwo ein paar Application Notes wo dann
 sicher auch Code-Schnipsel beiliegen.

Nebenbei:

Ich vermisse die Frage, welche Bedeutung das Signal Clk hat bzw wo das 
bei mehreren Slaves hingehört,wer den Takt erzeugt,etc

.Schau dir vielleicht mal z.b. bei Wikipedia das Prinzip der SPI bzw. 
von synchronen seriellen Bussen generell an.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi ronny, danke für deine antworten!

den Clk habe ich schon verstanden, ist ja eigentlich immer gleich ;)

bei AnalogDevices habe ich nur SPI-Bus Beispiele in Assembler gefunden. 
Ich bin ein "gelernter" C-Programmierer, also wäre ein C-Beispiel schon 
sehr hilfreich.

Lg flo

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, ich habe den SPI Bus nun schon ziemlich gut hinbekommen ;)

für die Codeoptimierung möchte ich nun aber den SPI-Interrupt benutzen. 
Wie kann ich den bei c einstellen?

Interuptregister sind gesetzt und ich weiß, dass der Interruptvektor auf 
die Stelle 3Bh zeigt.

in den Codebeispielen die ich gefunden habe (leider nicht von Analog 
Devices, sonst würden wohl die ganzen Fragen nicht aufkommen) steht 
"void it_SPI(void) interrupt 9" aber in diesen interrupt springt der µC 
nicht.

lg flo

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gelöst.

war einfach zu blöd dazu. sorry ;)

ich hoffe ich kann mich mit weiteren problemen an euch wenden!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.