Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Probleme mit dem CAN-Bus Kategorie: Verschiedenes (von André H. - 17.04.2004 15:04)
Als Antwort auf Probleme mit dem CAN-Bus von DieterKalkofen - 15.04.2004 14:42
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Dieter,

Beim Thema CAN-Bus kann ich Dir leider nicht viel helfen.
Jedoch, welche Version von can.c2 nutzt Du ?
Es gab vor ca. einem Jahr beim Wechsel des C164CI zu einem
anderem Derivat ein Problem mit dem CAN-Bus, da sich einige Registereinstellungen
hinzukamen. Es soll dann zu ähnlichen Problemen gekommen sein.
Mit der neuesten Version von can.c2 sollte dies aber gelöst sein.
Wenn Du schon die neueste Version von can.c2 nutzt, kann ich Dir leider
keine weiteren Tips geben, da ich mich mit dem CAN-Bus nicht beschäftige.

Jedoch kann man von dem beschriebenen Verhalten auch schlieÃ?en, daÃ?
es zu einer �berlastung durch zu viele Interrupts kommen könnte.
Warum es allerdings funktioniert, wenn das weitere CAN-Modul angesteckt ist,
erklärt dies nicht.

Vielleicht kommt das Problem auch von woanders.
Wie sieht bei Dir die Beschaltung der Interruptsensiblen Ports aus ?
(P1H.0 bis .3) Haben diese, falls sie nicht genutzt werden, Pull-Widerstände ?
Bzw. mit was für einer Platine nutzt Du die CC2 ?

Zu Deinem Programm:
Der Init() des CAN-Busses sollte nur einmal bei Systemstart ausgeführt werden.
Also nach dem Schema:
thread main
{
  // Initialisierungen
 loop
 {
 //Programm
 }
}


Auch das Warten auf ready() sollte besser so gemacht werden:

 wait can.ready(x);
Oder wenn schon in einer Schleife:

 while not can.ready(x);
 {
  //...
  yield;
 }



MfG André H.


>  Hallo Ich habe Probleme mit dem CAN-Bus
>  Die C-Controlunit wid in einem Can Netz betrieben
>  C-Controlunit  -  PC CAN interface  -   Frenzen und Berg CAN-Canmodul
>  Das System läft
>  wird nur die C-Unit und das PC Interface betrieben  (Abschlusswiederstand umgesteckt)
>  passiert folgendes  die Unit wird wird Träge stellt die Sendungen auf den Bus in
>  will man Die Unit neu Programmieren kommt die Fehlermeldung  Vorgang mus wiederholt werden
>  Zieht man den Can Busstecker ab kann die Unit neu Programmirt werden
>  und erst wenn das Frenzen und Berg Modul wieder im C-BUS ist läuft das System
>  trennt man das Modul wieder vom C-Bus  funktioniert das System weiter
>  Erst  nach ein par  Starts blockiert die Unit wieder  
>  
>   //CAN-Bustiming 500 kB/s
>   can.init(4,0x07FF,0x0000);
>
>    do
>     {
>      R=1+can.ready(1);
>     }
>     while R;
>     can.send(1,200,data,8);
>
>    // CAN Bus  ID=100 DTR 2 Kanal 2
>     X=ports.getfreq(0); // V-Signal
>     candata[0]=X;
>     X=ports.getfreq(1); // RPM-Signal X/60*Z  700 HZ 7000 1*min
>     candata[1]=X/10;    // Messwert/10 0-70 0-7000 1/min
>      do
>     {
>      R=1+can.ready(2);
>     }
>     while R;
>     can.send(2,100,candata,2);
>
>     // CAN Bus  ID 400 DTR 1 Kanal 3
>     candata[0]=Viedeounit;
>     candata[1]=255;
>       do
>     {
>      R=1+can.ready(3);
>     }
>     while R;
>     can.send(3,400, candata,2);
>     STA=can.error();
>
>    
>   Leigt in meinem Programm ein Fehler vor ?
>  


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: