Forum: Mikrocontroller und Digitale Elektronik CAN Probleme bei 16Mhz


von renate (Gast)


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ß

von Volker Z. (vza)


Lesenswert?

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

von renate (Gast)


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

von (prx) A. K. (prx)


Lesenswert?

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

von renate (Gast)


Lesenswert?

Er zeigt nen Acknowledge Error an!

von (prx) A. K. (prx)


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.

von renate (Gast)


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??

von (prx) A. K. (prx)


Lesenswert?

Nö, aber das legt ein Hardwareproblem nahe.

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
Noch kein Account? Hier anmelden.