Forum: Mikrocontroller und Digitale Elektronik HILFE MCP2515 antwortet nicht mit TTL-Pegeln


von Markus G. (mgoppelt)


Lesenswert?

Hallo ihr erfahrenen Elektroniker,

ich versuche einen MCP2515 mit einem Atmega16 über den SPI anzusteuern. 
Der Atmel ist SPI-Master. MOSI, SS, SCK sind Ausgänge. MISO ist Eingang. 
Bei SI, SCK und CS liegen ganz vernünftige Signale an (TTL-Pegel). Hier 
sind die Oszi-Bilder:
http://mwt.e-technik.uni-ulm.de/~goppelt/SI.jpg
http://mwt.e-technik.uni-ulm.de/~goppelt/SCK.jpg
http://mwt.e-technik.uni-ulm.de/~goppelt/CS.jpg

Jedoch antwortet der MCP2515 auf höchst seltsame Weise:
http://mwt.e-technik.uni-ulm.de/~goppelt/SO.jpg
Das sind keine TTL-Pegel. Soviel kann ich sagen. Warum tut er das???

Die komplette Schaltung ist hier:
http://mwt.e-technik.uni-ulm.de/~goppelt/Schaltung.jpg

Ob man CANH und CANL am PCA82C250 offen lässt oder sie mit einem 124 Ohm 
Widerstand verbindet, spielt keine Rolle.
Ich habe den MCP schon rausgelötet und durch einen anderen ersetzt, weil 
ich dachte er sei kaputt. Hat aber nichts gebracht.

Bin für jeden Hinweis dankbar!

von Helmut H. (der_andere)


Lesenswert?

Ist MCP2515 ein Schreibfehler?
Wo an welchen Pin hast du die Signale aufgenommen?

von Markus G. (mgoppelt)


Lesenswert?

Ja, es ist ein Stand-Alone CAN Controller MCP2515.

Die Namen der jpg's bezeichnen die Pins, an denen gemessen wurde.

von Chrisi (Gast)


Lesenswert?

Trenne mal SO vom MISO, dann siehst Du ja, ob da zwei Ausgänge 
gegeneinander arbeiten. MISO ist auch als Eingang konfiguriert?

von Markus G. (mgoppelt)


Lesenswert?

Trennen ist schwierig. Da müsste ich einen Pin wieder ablöten. MISO ist 
schon Eingang.
Hier ist nochmal ein Bild:
http://mwt.e-technik.uni-ulm.de/~goppelt/SI%20rot%20und%20SO%20blau.jpg
SI ist rot, SO ist blau dargestellt. Der Takt ist 1 MHz, also ist die 
Dauer eines Bits 1 us. Von 22 us bis 30 us wird auf SI das Nullbyte 
gesendet, nach welchem der MCP eigentlich antworten sollte. Was er aber 
nicht tut. Könnte das, was auf SO während des Nullbytes erscheint, 
lediglich eine Art Übersprechen sein?

von Christian R. (supachris)


Lesenswert?

Das sieht aber wirklich irgendwie aus, als würden 2 Ausgänge aufeinander 
arbeiten. Und/oder die Masse ist nicht korrekt dran. Die starken 
Überschwinger auf dem Takt und auf SO sind auch auch kein gutes Zeichen. 
Mach mal Serienwiderstände, 33 Ohm oder sowas in die Leitungen, das 
minimiert eventuell das Überschwingen.

von Magnus Müller (Gast)


Lesenswert?

Hast du den MCP2515 wirklich an die Spannungsversorgung angeschlossen 
(bitte nachmessen!!!) ?

von Dieter W. (dds5)


Lesenswert?

Ich kann Magnus nur beipflichten, die negativen Überschwinger deuten auf 
eine fehlende GND-Verbindung hin.

von Christian R. (supachris)


Lesenswert?

Und sach mal, bist du sicher, dass die Beschaltung des OSC-Anschlusses 
so klappt? Hast du das mal getestet? Einfach den Quar-Oszi 
anzapfen....hmm....ich weiß nicht.

von Magnus Müller (Gast)


Lesenswert?

...vor Allem die verkrüppelten Logikpegel am Ausgang deuten auf fehlende 
Versorgungsspannung hin.

von crazy horse (Gast)


Lesenswert?

was sagt denn der clockout des MCP? Ohne explizite Programmierung 
liefert der Osz/16. Dort kannst du messen, ohne den Oszillator zu 
belasten.

von Markus G. (mgoppelt)


Lesenswert?

Danke für die rege Beteiligung!
Pin 18 (VDD) hängt an 5 V, Pin 9 (VSS) an GND. Aber aus Pin 3 (CLKOUT) 
kommt nichts raus. Ich habe ein externes Taktsignal (16 MHz) an OSC1 
angelegt und OSC2 über einen 100 kOhm Widerstand an GND angeschlossen. 
So sieht das Signal an OSC1 aus:
http://mwt.e-technik.uni-ulm.de/~goppelt/taktsignal.jpg
Ist es vielleicht zu schwach? Dem Atmega16 genügt es.

von Magnus Müller (Gast)


Lesenswert?

Ja, das ist zu wenig Dampf für den OSC1-Pin.

Wirf doch einfach mal einen Blick ins Datenblatt (Table 13-1 auf Seite 
70)

Gruß,
Magnetus

von Dieter W. (dds5)


Lesenswert?

> Ist es vielleicht zu schwach? Dem Atmega16 genügt es.

Falls das Signal nicht durch die Grenzfrequenz des Scopes in der 
Amplitude verfälscht wird ist es wirklich zu wenig.

Das Datenblatt verlangt immerhin eine Signalamplitude von low=0,3VCC bis 
high=0,85VCC.

von Tcf K. (tcfkat)


Lesenswert?

Datenblatt des ATMega lesen, unter Crystal Oscillator! Die CKOPT Fuse 
muss gebrannt sein, das schaltet einen anderen, stärkeren 
Oszillatormodus ein (full rail-to-rail swing), der es erlaubt über XTAL2 
andere Chips zu treiben... sonst ist XTAL2 zu schwach.

von Markus G. (mgoppelt)


Lesenswert?

Tcf Kat: Vielen vielen vielen vielen vielen vielen vielen DANK!!!!!
Habe die CKOPT Fuse gesetzt und es FUNKTIONIERT! Man sollte sich halt 
gründlich über jedes einzelne Fusebit informieren. Wird mir eine Lehre 
sein.

Danke für eure Antworten!!

von Tcf K. (tcfkat)


Lesenswert?

Generell sollte man so bei solchen Oszillatorverkettungen etwas 
vorsichtig sein... in einem anderen Forum hatte jemand jeweils die 
XTAL-INs verbunden... und dann bei einem Microchip den falschen Osz-Typ 
gesetzt, und nichts lief mehr...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.