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!
Ja, es ist ein Stand-Alone CAN Controller MCP2515. Die Namen der jpg's bezeichnen die Pins, an denen gemessen wurde.
Trenne mal SO vom MISO, dann siehst Du ja, ob da zwei Ausgänge gegeneinander arbeiten. MISO ist auch als Eingang konfiguriert?
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?
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.
Ich kann Magnus nur beipflichten, die negativen Überschwinger deuten auf eine fehlende GND-Verbindung hin.
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.
...vor Allem die verkrüppelten Logikpegel am Ausgang deuten auf fehlende Versorgungsspannung hin.
was sagt denn der clockout des MCP? Ohne explizite Programmierung liefert der Osz/16. Dort kannst du messen, ohne den Oszillator zu belasten.
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.
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
> 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.
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.
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!!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.