mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Daten über SPI?


Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tach,

kann ich Daten über SPI auf ähnliche Weise empfangen, wie über UART? 
Also Byteweise. Oder ist SPI nur zum Programmieren geeignet?

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kann ich Daten über SPI auf ähnliche Weise empfangen, wie über UART?
>Also Byteweise.
Ja

Autor: Schorsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, kannst auch byteweise (8 Bit) empfangen/senden.

Mit vorzüglicher Hochachtung
Schorsch

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es denn da auch ne Art Register wie beim UART, wo die Daten 
abgelegt werden? Oder wie funktioniert die Auswertung dabei?

Möchte Daten vom PC an die SPI Schnittstelle des Mikrocontrollers 
schicken. Muss ich da irgendetwas beachten, von wegen Synchronisation?

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rahul Der trollige wrote:
>>Also Byteweise.
> Ja
Nein... Bitweise - ist ja seriell :)

Autor: Schorsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibt es denn da auch ne Art Register wie beim UART, wo die Daten
> abgelegt werden?

Ja, nennt sich SPDR.

Näheres im Datenblatt, erhältlich hier:

http://www.atmel.com

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Coole Sache,

hab ich mir gerade mal angeschaut.

Jetzt würde ich gerne Daten vom PC über USB an die SPI-Schnittstelle 
bringen. Ist das Grundsätzlich möglich. Wie kann ich denn Daten vom PC 
über USB senden?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der FT2232 kann SPI.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier rein

http://de.wikipedia.org/wiki/Glaskugel

und poste dann hier, was Leute für Infos brauchen könnten um dir weiter 
zu helfen.

@Schorch
Woher weist du das denn "Ja, nennt sich SPDR." ? Hast du die besagte 
Glaskugel?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das sein, dass jemand meine Glaskugel geklaut hat, und bei Ebay 
verkauft...?

Hätte dir ja sonst gern geholfen...
Aber ohne genaue Infos...

Autor: Thomas Fürst (thmsfrst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte auch von PC aus über die USB-Schnittstelle, mit einem 
Mikrocontoller dazwischen einen Baustein mit SPI-Schnittstelle 
ansprechen. Dabei sind mir einige Sachen noch nicht ganz klar. Auf jedem 
Fall braucht man sowas wie einen USB-Treiber. Man kann entweder einen uC 
verwenden der sowohl eine USB wie auch SPI-Schnittstelle verwendet oder 
man nimmt so einen Baustein von FTDI dazwischen. Die FTDI-Bausteine 
haben den Vorteil, dass die sonst recht aufwendige 
USB-Treiberprogrammierung mit der zugehörigen Software vereinfacht wird. 
Mit ist aber auch noch nicht so ganz klar wie ich vom Anwendungsprogramm 
aus den uC steuern bzw. ansprechen kann und wie ich über die ganze Kette 
schließlich den SPI-Baustein ansprechen kann. Ich denke man braucht 
sowas wie eine Firmware auf dem uC die, die Kommunikation zwischen den 
Ports macht (evtl. ein Gateway). Recht viel weiter bin auch noch nicht 
gekommen.

Autor: Guido (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab mir nen kleinen Pegelwandler mit dem Max232 gebastelt und 
schicke Daten von der seriellen Schnittstelle über den Max an den 
Atmega88.

Wenn ich die Daten per UART empfange, klappt das. Nur per SPI nicht. Hab 
den Code mal angehangen, vielleicht kann mir wer sagen wo der Fehler 
liegt?


Gruß  Guido

Autor: Severino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Thomas Fürst

Ich möchte auf den PICkit Serial Analyzer von Microhcip hinweisen,
der samt Windows-Software daherkommt und ziemlich preiswert ist.
http://www.microchip.com/stellent/idcplg?IdcServic...
Vielleicht gibt es die Soft- und die Firmware auch irgendwo zum
Download, so kann man das Ding dann auch selber bauen.
(Beim PICkit 1 ist das so).

Autor: Severino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, der Link scheint nicht zu funktionieren.
Ich füge ihn nochmals ein
http://www.microchip.com/stellent/idcplg?IdcServic...

Wenn's nicht klappt:
www.microchip.com und nach "PICkit Serial Analyzer" suchen


Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So,

versuche es nun mit einen Code aus der Codesammlung:

/**************************************************************
Es soll alle halbe Sekunde im Wechsel 0 bzw. 1 gesendet werden.
Am korrespondierenden Slave soll zur Indikation jeweils die
LEDs an bzw. aus gehen
Verdrahtung:  MISO(Master) --> MISO(Slave)
        MOSI(Master) --> MOSI(Slave)
        SCK(Master)  --> SCK(Slave)
        PB0(Master)   --> SS(Slave)
**************************************************************/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

volatile unsigned char data;
unsigned char status;

SIGNAL (SIG_SPI) {
  data = SPDR;
  if (data == '1')  PORTD = 0x00;      //LEDs an
  if (data == '0')  PORTD = 0xff;      //LEDs aus
}

void slave_init (void) {
  DDRB |= _BV(PB4);              //MISO als Ausgang, der Rest als 
Eingang
  SPCR = _BV(SPE) | _BV(SPIE);        //Aktivierung des SPI + Interrupt
  status = SPSR;                //Status löschen
}

int main (void) {

  DDRD = 0xff;
  slave_init ();
  sei ();

  for (;;);
  return 0;
}




Wo muss ich was von der seriellen Schnittstelle anschließen? Meine Daten 
an MOSI, klar. Aber die anderen?

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.