mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI testen


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich will mit einem Freund zusammen an einem AVR einen CANtreiber MPC2515 
per SPI betreiben. Nach intensivem Studium der Datenblätter und 
verschiedener Programme in C und BASCOM, haben wir verstanden was der 
der CANtreiber für Befehle braucht bzw wie dieser antwortet.

wir setzen den negCS auf LOW
schreiben den Befehl auf MOSI, evtl auch noch eine Adresse
lesen dann die Daten auf MISO
und setzen den negCS wieder auf high

das SPIinterface wird softwareseitig konfiguriert.


wir senden einen READbefehl für ein Register an den CANtreiber. Egal 
welches Register wir adressieren, wir bekommen immer 255 (ein Byte &hFF) 
zurück. Wir haben die Variablen in der Software getestet, Leitungen 
geändert.... uns fällt nichts mehr ein
Sogar als wir den CANtreiber aus dem Sockel gezogen haben, hat unser AVR 
uns den Wert 255 zurückgeliefert. Aber auf dem Interface tut sich was 
(Burst mit Scope sichtbar gemacht).

Hat jemand eine Idee?
Wir sind zum Schluss gekommen das nicht der CANtreiber das Problem sein 
kann (der wurde ja zum Schluss von der Platine genommen), sondern das es 
am SPIinterface liegt. Gibt es Möglickeiten den SPI zu "testen"? Mit 
einer Testschaltung oder ich weiss nicht wie - einen Logikanalyser haben 
wir leider nicht zur Verfügung.

vielen Dank für eure Hilfe
Jörg

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entweder alles noch einmal GANZ GENAU durchsehen oder ein Oszi bzw. 
LogicAnalyser besorgen.
Helfen können aber auch Beispielprogramm für den/diesen SPI Baustein 
oder den/diesen uP mit SPI Nutzung.

Es gibt (manchmal) verschiedene Initialisierungen bzgl. der aktiven 
Pegel bzw. der Clk Flanke ; ich glaube 4 mögliche Modi. Modus 00 ist 
dann der gängiste.
Die Anzahl der Clk müssen exakt stimmen für den angeschlossenen 
Baustein.
/CS Pegel ; manchmal muss /CS nach dem Befehlswort kurz de-aktiviert und 
dann wieder aktiviert werden etc.

Situation bzgl. "Pull up" klären. Sind "open collector" bzw. "open 
drain" Ausgänge dabei  --> Dann Pullup zwingend erforderlich.

Erstmal einen "einfachen" SPI-Baustein anschliessen, das wäre z.B. ein 
74HC595 Schiebregister (Ausgabe).

Schwierig ohne Oskar. LED's über Treiber ranhängen und ganz lange 
Wartezeiten nach JEDER Portausgabe. Dann das blicken beobachten und 
mitzählen.


Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht auch ohne Logikanalysator. Indem man die Pins manuell bedient und 
ganz simpel mit LED oder Multimeter sieht was ankommt. Per Programm im 
Controller, mit der seriellen Schnittstelle - es tun aber auch 2 
entprellte Drucktaster und eine LED.

Ich hatte den 2515 auch erst man an BASCOM dran, testhalber, und es 
lief. Nur muss man eben den SPI-Modus korrekt einstellen.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo A.K.


kannst du mal deine Pinbelegung und das Program online stellen oder mir 
mailen (wird meine Mailadresse hier angezeigt? Ich gebe diese zumindest 
an). Ich denke zwar das wir alles richtig gemacht haben, aber lieber 
doppelt prüfen als einmal vermuten.

Danke soweit schonmal

cu
Jörg

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Klaus

also ich weiss das der MCP2515 mit dem Modus 0,0 und 1,1 arbeitet. 
Vielleicht muss ich da nochmal nachlesen was der AVR rausschiebt. wurde 
aber an anderer Stelle nicht explizit erwähnt.

Was mich aber in diesem Zusammenhang wundert ist, das der AVR den Wert 
255 per SPI einliest. Ist das irgendein Defaultwert - für default hätte 
ich &h00 erwartet.
Oder das es einen Error gegeben hätte, weil das SPIinterface nicht 
sauber läuft.

cu
Jörg

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.