CAN Probleme bei 16Mhz

Gast #1498120
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.
1
void send_std_can_msg(unsigned int std_id, unsigned char std_dlc, unsigned char * buffer)
2
{
3
  st_cmd_t msg;     // message descriptor store in code area
4

5
  msg.pt_data = &buffer[0];
6
  
7
  msg.status = 0;
8
  msg.handle = 0;
9
   
10

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

16
        while(can_cmd(&msg) != CAN_CMD_ACCEPTED);
17
        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ß
Gast #1498137
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
#1498286
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren