www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 kann MCP2515 per SPI nicht ansprechen


Autor: Lynn S. (Firma: Gecko) (wolke)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich habe mein Problem bereits im MCP2515 Tutorial von Kreatives-Chaos 
gepostet, Eintrag vom 9. Juli 2009 
http://www.kreatives-chaos.com/artikel/ansteuerung...
Leider konnte dort der Fehler auch nicht gefunden werden (ich habe die 
100nF Kondensatoren wie dort im Forum empfohlen bei jedem IC zwischen 
VCC und GND hinzugelötet). Im Anhang habe ich den Schaltplan meines 
Boards (die neuen Kondensatoren sind noch nicht eingezeichnet).

Ich habe ein Atmega8 der läuft mit einem 8MHz Quarz (ich habe den 
Resonator vom Schaltplan durch einen Quarz ersetzt) und ein MCP2515 mit 
16MHz. Die Quarze laufen einwandfrei, habe ich gemessen. Die SPI 
Schnittstelle funktioniert auch, ich kann mit einem anderen Atmega8 
kommunizieren. Wenn ich das Testprogramm des Tutorials 
(http://www.kreatives-chaos.com/file_download/21) laufen lasse, kommt 
die Fehlermeldung "Fehler: kann den MCP2515 nicht ansprechen!" über die 
serielle Schnittstelle. Das Makefile des Testprogramms habe ich auf die 
8MHz angepasst, der Rest der SPI Ports ist identisch wie diejenigen beim 
Testboard + Testprogramms des Tutorials.

Ich habe auch einen eigenen Code für die Ansprechung des MCP2515 
geschrieben (auch verglichen mit den vielen Threads über dieses Thema 
hier im Forum, Wartezeiten eingefügt etc.), auch dort kommt immer FF 
wenn ich versuche aus dem CNF1 Register zu lesen.

Den SPImkII Programmer habe ich auch schon abgehängt und es geht immer 
nocht nicht.

Habt ihr eine Idee, was ich noch überprüfen kann? Fehlt noch ein Pullup 
Widerstand irgendwo? Wenn ja, wo und wieviel Ohm?

Einen kaputten MCP2515 schliesse ich aus, habe diesen auch schon 
ausgewechselt.

Vielen Dank für Eure Hilfe,

Lynn

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schuß ins Blaue: Du hast die Frequenzen/Baudraten angepaßt, aber die 
Funktion mcp2515_init()
// test if we could read back the value => is the chip accessible?
  if (mcp2515_read_register(CNF1) != ((1<<BRP2)|(1<<BRP1)|(1<<BRP0))) {
    return false;
  }
in der mcp2515.c (die liefert die Fehlermeldung) fragt "hardcoded" nach 
gesetzten Bits für den Baud Rate Prescaler. Verfolge den Pfad mal 
weiter.

Autor: Lynn S. (Firma: Gecko) (wolke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Besten Dank für Deine Antwort.

Ich habe mittlerweile das selbe Board nochmals gebaut, nun mit den 100nF 
Kondensatoren eingeplant (waren vorher reingebastelt) und einen 8MHz 
Quarz anstelle eines Resonators. Und dieses Board funktioniert!
Keine Ahnung was falsch war...

Gruss,
Lynn

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.