www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN Probleme bei 16Mhz


Autor: renate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!
Ich habe folgendes Problem:
At90can128 und 8 Mhz Oszillator:
Meine CAN Sende Funktion die 15 Messages in Reihe sendet läuft in einer 
endlosschleife ohne probleme.

Jetzt hab ich einen 16Mhz Oszillator eingebaut:
Und jetzt spuckt er mir nur noch die erste botschaft von den 15 aus. 
Wenn die Schleife wieder von vorne anfängt, wieder nur die erste.

Ich dachte an den Watchdog, aber schon ausgeschaltet.
Dann hab ich bisschen Wartezeit zwischen die messages gelegt. Das ging 
auch aber nur wenn ich 10ms!! warte zwischen den messages.
void send_std_can_msg(unsigned int std_id, unsigned char std_dlc, unsigned char * buffer)
{
  st_cmd_t msg;     // message descriptor store in code area

  msg.pt_data = &buffer[0];
  
  msg.status = 0;
  msg.handle = 0;
   

     msg.ctrl.ide = 0;   //-- CAN 2.0A
        msg.dlc = std_dlc;        //-- Max
        msg.id.std = std_id;
        msg.cmd = CMD_TX;

        while(can_cmd(&msg) != CAN_CMD_ACCEPTED);
        while(can_get_status(&msg) == CAN_STATUS_NOT_COMPLETED);


Eigentlich hab ich die Standardfunktionen aus den Beispieen von Atmel 
verwendet.
Hat irgendjemand ne Idee was bei mir falsch läuft?
gruß

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitrate vom CAN-Kontroler angepasst ? Bei Falscher Bitrate generiert der 
andere Teilnehmer Errorframes, so das dein Sender den Frame einiege male 
wiederholt.

Autor: renate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist es leider nicht! habs mit dem oszilloskop nachgemessen und ein 
Bit genau 8µs = 125kBit/s und beim CAN Empfänger kommt auch das richtige 
an!
auf dem oszilloskop ist auch nur ein can frame zu sehen

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwelche Errors in Sicht? Es dürfte auch bei diesem CAN-Controller 
Error-Register und -Bits geben.

Autor: renate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er zeigt nen Acknowledge Error an!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hört niemand zu. Eine CAN Node ganz allein fühlt sich einsam und 
schmollt. Lies: Es sind mindestens 2 aktive Nodes nötig um zu testen, 
weil sonst das Ack-Bit nicht aktiv wird. Eine CAN-Probe wird i.d.R. 
passiv arbeiten und zählt nicht mit, lässt sich aber ggf. 
umkonfigurieren.

Autor: renate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das Problem nun durch Zufall gelöst! Die Lösung:
5,5 Volt statt 5 Volt! Dabei steht im Datenblatt 4,5 V bei 16Mhz wären 
ausreichend!
Schadet das dem µC mit 5,5V irgendwie??

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, aber das legt ein Hardwareproblem nahe.

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.