- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Probleme mit meinem CAN Bus

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225

    Probleme mit meinem CAN Bus

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich habe seit einiger Zeit zum Testen einen CAN Bus laufe. An dem hängen einige Mega8 (nach der Homepage von Kijon realisiert, nochmal vielen Dank). Die Mega8 laufen alle mit internen 1MHz und der Bus wie in Kijons Beispiel mit 125KBit/s

    Jetzt wollte ich das ganze noch an den PC bringen. Dafür hab ich mir für den Mega8 einen 11,0592 MHz Quarz besorgt um 115K2 mit 0% Fehler betreiben zu können (seriell). Wenn ich nun eine CAN Platine mit der CAN Platine verbindet auf dem der Mega8 mit 11MHz läuft und die alte Platine eine Nachricht sendet kommt nix an und die Platine hört nicht auf zu senden (am Oszi gesehen, Signal sieht sonst ok aus).

    Es verstehen sich nun 2 Platinen auf denen der Mega8 mit 1MHz läuft und es verstehen sich auch Platinen auf denen er mit 11MHz läuft aber gemischt geht es nicht? Woran kann das denn liegen?

    Achja, der MCP2515 läuft in allen fällen an einem 16MHz Quarz

    Vielen Dank schonmal
    und gruß Philipp

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.12.2005
    Ort
    Tann / ZH
    Alter
    67
    Beiträge
    264
    Hast Du die Baudrate für die CAN-Schnittstelle bei allen
    Modulen auf den gleichen Wert eingestellt ?

    Nach deinem Post (wenn Du dich nicht vertippt hast) laufen
    die einen (alte) mit 125 kBits und die andern (neuen) mit 115K2.
    das ist ca. 10 % Abweichung...
    MfG
    Ruedi

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Oh, ne. Was ich meinte sind 115K2 statt 4800 an der seriellen. Die Software ist exakt die gleiche (also auch die Settings für den MCP)

    Die einzige Änderung war, das setzen der Fusebits auf den externen Quarz und in der Software dann halt FCPU auch die neue Freq und die Baudrate hatte ich hochgesetzt (die von der seriellen, sollte also nix damit zu tun haben)

    Vielen Dank schonmal

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    Hm, eigentlich sollte das funktionieren.
    Ein paar Fragen:

    - Kommuniziert die 11MHz-Platine problemlos über RS232 mit dem PC?

    - Wenn Du die 11MHz Platine genauso betreibst, wie die 1MHz-Paltinene (also Fuse auf int. 1MHz umstellen, Software anpassen), läuft der CAN-Bus dann? Das würde Hardwarefehler ausschließen.

    - Wenn Du die Platine nun wieder mit 11 MHz betreibst und von einer alten Karte Nachrichten über den CAN schickst, kannst Du am RXCAN-Pin vom MCP2515 (Pin 2) vernünftige Signale messen (muss so aussehen, wie das Signal an der CAN_L-Buchse)? Was misst Du am TXCAN-Pin (Pin 1)?

    - Welche Frequenz hat SCK vom SPI-Interface (sollte 2.7648 MHz sein)? Sehen die Signale auf MOSI und MISO vernünftig aus?

    Mehr fällt mir im Moment nicht ein...

    askazo

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Also:

    Ich habe hier auf dem Schreibtisch eine Platine mit einem LCD und Tastern dran, da läuft eine Mega8 mit 1MHz. Dann auf dem Steckbrett einen mit 11MHz und serieller Verbindung zum PC und eine Platine auf der auch nochmal ein 11MHz Atmel ist mit PC Verbindung.

    Beide Atmel mit PC Verbindung laufen Problemlos zum PC. Bei 11MHz mit 115K2 und bei 1MHz hab ich sie auf 4K8 beides ohne Probleme.

    Wenn ich einen Mega8 neu flashe, Fusebits umstelle usw. Also so das er wieder mit 1MHz läuft kann ich ihn Problemlos auf dem Steckbrett und auch auf der PC Platine betreiben. Ein Hardware Problem kann man denke ich ausschließen.

    Die CAN Übertragung an sich funktioniert ja auch zwischen 2 Atmels mit 11MHz, sieht auch alles sauber aus. Also muss das mit SPI usw eigenltich alles OK sein. Es funktioniert nur keine Verbindung von einem Mega8 der mit 11MHz läuft zu einem mit 1MHz.

    Wenn der mit 1MHz dann eine Nachricht sendet hört er nicht mehr auf. Ich habe das TX Error Register mal auf dem LCD anzeigen lassen und das zählt dann langsam hoch. Obwohl auf dem Oszi die CAN Signale gut aussehen. Als ob er kein ACK oder so erhalten würde.

    Warum sollte SCK denn 2,7MHz haben?. Ich habe den Teiler in beiden Fällen auf 2 gestellt. Also sollte der SPI einmal mit 500KHz laufen und eimal mit 5,5MHz. Die 5,5MHz scheinen ja aber kein Prob zu sein, weil 2 Platinen CAN Pakete tauschen können bei denen es auf 5,5MHz läuft.

    Vielen Dank schonmal
    Gruß Philipp

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Habe mal ein Bild vom CAN Bus gemacht.

    http://coserv.dyndns.org/pics/can_problem.JPG

    So sieht ein Signal aus, das nicht ankommt. Besonder komisch finde da im 3. Kästchen von hinten. Dieser minimaler "Auschlag" in die falsche Richtung. Sowas gibt es nicht wenn die Kommunikation funktioniert.

    Gruß Philipp

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    Zitat Zitat von ba4_philipp
    Warum sollte SCK denn 2,7MHz haben?.
    Ich war davon ausgegangen, dass Du dem Code von Kijon beibehalten hattest, er hatte den Teiler auf 4 stehen.

    Zurück zum Problem:
    Für mich sieht das so aus, als hättest Du CAN_H und CAN_L irgendwo verdreht. Dieser letzte Ausschlag dürfte das ACK vom Empfänger sein. Da das Signal in die falsche Richtung geht, würde ich sagen, dass Du CAN_H des Senders mit CAN_L des Empfängers verbunden hast und umgekehrt. Wenn beide 11MHz - Platinen 100% gleich sind, ist der Dreher auf beiden drauf, daher können sie miteinander kommunizieren.

    askazo

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Es sind alle Schaltungen 100% gleich. Ich benutze die gleiche Platine, setze nur beim Atmel die Fusebits für 1MHz und flashe es neu mit FCPU entsprechend. Also da kann sich am CAN nix verdreht haben.

    Das hatte ich aber auch mal probiert. Wenn ich die beiden Leitungen vertausche führt das auch nicht zum Erfolg.

    Das ist echt komisch. Weil die Hardware 100%ig gleich ist (es ist ja sogar dieselbe)

    Gruß Philipp

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.12.2005
    Ort
    Tann / ZH
    Alter
    67
    Beiträge
    264
    Könnte es sein das es in Timing Problem ist ?
    --> Verzögerungszeiten
    MfG
    Ruedi

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    inwiefern meinst Du? Bin für jeden Tip dankbar. Hab echt keine Ahnung an was das liegen kann.

    Werde gleich mal den SPI Takt runtersetzen (also Teiler hoch) obwohl ich nicht glaube das das ein Problem ist, weil zwei 11MHz Controller ja Daten austauschen können.

    Ich verstehe auch echt nicht wie der Controller Takt einfluß auf den Can Controller haben kann. Das einzige was sich da verändert ist die Geschwindigkeit des SPI Buses. Laut Datenblatt kann der MCP2515 aber bis 10MHz und ich bin bei max 5,5.

    Vielen Dank
    Gruß Philipp

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests