Verbinde doch bitte noch mal eine 11MHz Platine mit einer 1MHz Platine und messe mal die Pins 1 und 2 vom MCP2515 auf der 11MHz Platine.
Kommen die Daten an Pin 2 vernünftig an? Sendet der MCP ein Acknowledge auf Pin 1?
askazo
So Teiler von 2 auf 4 zu setzen hat wie erwartet keinen Erfolg gebracht
So hab nun keine Idee mehr was man noch probieren kann
Schönen Abend noch
Philipp
Verbinde doch bitte noch mal eine 11MHz Platine mit einer 1MHz Platine und messe mal die Pins 1 und 2 vom MCP2515 auf der 11MHz Platine.
Kommen die Daten an Pin 2 vernünftig an? Sendet der MCP ein Acknowledge auf Pin 1?
askazo
Was genau müsste ich denn da sehen können? Also ich habe mal bei der 11MHz Platine am MCP gemessen und dort liegen an beiden Pins (1&2) Rechtecksignale an. An Pin 2 mit höherer Frequenz. Klingt für mich alles ok.
Vielen Dank schonmal
und Gruß Philipp
Hört sich eigentlich ok an.
An Pin 1 müsste ein Signal anliegen, das so ähnlich aussieht wie das weiter oben von Dir gepostete.
Wenn Du Pin 1 und 2 gleichzeitig misst, muss auf pin 1 ein Rechteckimpuls kommen, sobald das Signal auf Pin 2 aufhört. Der Impuls muss 7,8 us lang sein.
Ich habe mir gerade Dein Scope-Bild von oben noch mal genauer angeschaut. Der letzte Impuls (was eigentlich das ACK vom Empfänger sein sollte) ist ein ganzes Stück kürzer als die davor. Ich würde sagen, dass die Baudrate der beiden Karten nicht übereinstimmt. Ich habe mir das Datenblatt vom MCP noch nicht so genau angeschaut - kann es sein, dass die SPI-Frequenz Auswirkungen auf die CAN-Frequenz hat?
askazo
So hab nochmal ins Datenblatt gesehen. Die SPI Freq hat mit dem CAN Bit Timing wirklich nix zu tun. Gleich gesetzt ist es auch bei allen Boards (ist ja die gleiche Software) und der gleiche Quarz ist auch überall am MCP (16MHz).
Was Pin 1&2 betrifft, so eine Flanke beim Eingang wirklich ca 8µs lang (können gut die 7,8 sein habe die Auflösung nicht so groß gestellt damit ich das Ding finde). Das Signal was aus dem Controll raus geht ist tatsächlich nur 6µs lang.
Was ich jetzt aber nicht verstehe ist warum der 11MHz CAN Controller das Paket nicht an den Atmel weitergibt wenn er doch scheinbar versucht ein ACK dafür zu setzen (auch wenn es zu kurz ist) ??
Also so wie es aussieht sind die Bitzeiten beim CAN Controller der am 11MHz Atmel hängt wirklich kürzer. Nur woran kann das liegen?
Vielen Dank schonmal bis hierhin
Gruß Philipp
8µs stimmt exact. Ich Depp hatte mit 128 kB/s gerechnet, statt mit 125.Zitat von ba4_philipp
Bei 125 kB/s hast Du also eine Bitzeit von genau 8µs.
Der Controller sendet kein ACK, sondern ein Not Acknoledge. Für ein ACK muss der Impuls in die andere Richtung gehen.Zitat von ba4_philipp
Tja, das ist jetzt die großer Frage. Wenn die Oszillatorfrequenz für den MCP stimmt (noch mal nachgemessen?) kann ich mir nur noch vorstellen, dass Du entweder aus versehen was an den Timing-Registern vom MPC verstellt hast, oder dass bei der SPI-Übertragung irgendwas verloren geht. Überprüfe doch noch mal die Registereinstellungen und setze evtl. mal ein wait zwischen die einzelnen mcp2515_write_register-Anweisungen.Zitat von ba4_philipp
askazo
Es scheint so gewesen zu sein wie du sagst. Bei der SPI Übertragung muss irgendwas immer schiefgegangen sein. Warscheinlich sind 5,5MHz auf dem SPI etwas zu hoch für eine Lochstreifenplatine und schon gar für das Steckbrett. Habe jetzt Testweise den SPI auf einen Teiler von 32 (also ca 340KHz) und damit klappt es.
Werde mich jetzt mal nach oben tasten. Hast du evtl. einen Tipp was man da benutzen kann, damit es noch sicher auf Lochstreifenplatinen funktioniert? Auch im Auto usw?
Vielen Dank für die Hilfe
schönen Tag noch Philipp
Lesezeichen