www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP eZdsp F28335 SPI


Autor: K.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr!

Ich hab ein Problem.

Ich soll auf dem eZdsp F28335 zwei SPI generieren. Das Problem ist, auf 
diesem Board befindet sich aber nur eine.
Es sollen Daten über die SPI geschickt werden und dann wieder 
aufgenommen werden.

Es ist ein Beispiel vorhanden. Das nennt sich SPI Loop. Ich kann damit 
die Werte auf dem Oszi messen, aber nicht am SOMI. Ist das so richtig?
Ich habe nämlich gedacht, wenn die Daten gesendet und empfangen werden, 
würde ich an allen Aus-/Eingängen etwas messen.

Könntet ihr mir da weiter helfen?
Der Betreuer ist leider erst wieder am Freitag da, also kann ich den 
nicht fragen.

Gruß,

K.A.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Datendurchsatz nicht kritisch ist, kann man an einen SPI Master 
einfach mehrere Slaves anschließen. Zur Auswahl, welcher Slave 
angesprochen wird, verwendet man den Chipselect-Eingang der Slaves.

Etwa so:

Master

Master[MOSI]    ->Slave1[MOSI], Slave2[MOSI]
Master[MISO]    ->Slave1[MISO], Slave2[MISO]
Master[SPICLK]  ->Slave1[SPICLK], Slave2[SPICLK]
Master[GPIO1]   ->Slave1[CS]
Master[GPIO2]   ->Slave2[CS]

An MISO kannst du nur etwas messen, wenn die gesendeten Daten nicht 
konstant
0 oder 1 als Bitwerte enthalten.

Grüße,

Peter

Autor: K.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort.

Konfiguriere ich dann einfach freie IO Pins für den Slave?

Das ich einen Master an mehrere Slaves anhängen kann, hab ich auch 
gelesen.

Kennst du das Board?

Autor: cyno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi K.A.,

ich hab dein Problem jetzt nur oberflächlich überfolgen, aber da ich in 
meiner DA mit diesem DSP gearbeitet habe und auch zwei 
SPI-Schnittstellen brauchte, wollte ich dir den Tipp geben und im 
Datenblatt mal nach McBSP (Multi-channel Buffered Serial Port) zu 
schauen. Den gibt es zweimal und dieser lässt sich auch als SPI 
konfigurieren.

Gruß,
cno

Autor: cyno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ergänzung: Habe damals auch mit ezDSP Board gearbeitet...

Gruß,
cyno

Autor: K.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Habe das genau gemacht, wie es in der Anleitung steht. Also habe jetzt 
einen Master und einen Slave generiert.

Ich habe nun das Beispiel für die mcbsp_spi_loopback mir angeschaut.

Da steht dann in der Main loop:

for(;;)
{
   mcbsp_xmit(sdata1,sdata2);
   while( McbspbRegs.SPCR1.bit.RRDY == 0 )
{} 
while( McbspaRegs.SPCR1.bit.RRDY == 0 ) {}
   rdata2 = McbspaRegs.DRR2.all;
   rdata1 = McbspaRegs.DRR1.all;
   if((rdata2 != sdata2)&&(rdata1 != sdata1)) error( );
   delay_loop();
   sdata1^=0xFFFF;
   sdata2^=0xFFFF;
   asm("    nop");
}

Kann ich das dann auch nutzen? Ich hätte gemeint, dass es gehen würde.

Autor: Jan H. (cyno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar schon eine Weile her und ich hab die Unterlagen gerade nicht 
zur Hand, aber theoretisch kannst du das nutzen. Bei dem Beispiel hast 
du natürlich nur den Effekt das du von dem einen McBSP-Port Daten in 
einer Endlosschleife an den anderen schickst.
Aber die Funktionen (ggf. müssen noch deinen Anforderungen angepasst 
werden) kannst du schonmal als Ausgangspunkt für dein eigenes Projekt 
nutzen. Hatte ich damals auch so gemacht - die Beispiele sind dafür echt 
gute gemacht.

Autor: K.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super danke.

Wenn ich noch weitere Fragen habe, dann wende ich mich an dich g

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.