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

Re: ramhs4 Kategorie: Sonstige Hardware (von André H. - 13.04.2009 15:32)
Als Antwort auf Re: ramhs4 von FRANK - 5.04.2009 17:54
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
Hallo Frank,

> Ich habe Dein Programm auf die C-control geladen, leider funktioniert es immer noch nicht. Hier ein kleiner Auszug:
> 3462 Error 24234<>24261 3464 Error 24248<>24088
> 3470 Error 24290<>24280  3472 Error 24304<>32496 3474 Error 24318<>32510
> 3476 Error 24332<>32556  3478 Error 24346<>32570  3480 Error 24360<>32552
> 3482 Error 24374<>32566  3484 Error 24388<>32612 und so weiter!
> Was mache ich falsch? Meine Haussteuerung funktioniert einwandfrei. Werte im
> eeprom ablegen und auslesen geht super.

Es sieht nach Ã?bertragungsfehler am Bus aus.
"Error 24234<>24261" hei�t, da� das geschriebene Byte nicht mit dem gelesenen übereinstimmt.
Der erste Wert ist der geschriebene, der zweite der zurückgelesene.
Das High-Byte scheint in vielen Fällen korrekt zu sein, das Low-Byte ist immer fehlerhaft.
Jetzt ist noch zu klären, ob die �bertragungsfehler bereits beim Schreiben auftreten, oder
erst beim Auslesen.

Was hängt noch alles am Bus bzw. kannst Du testweise nur das RAM-Device am I²C-Bus anschlie�en?
Du kannst dann als erstes nur das Device auslesen, ohne es nochmals zu beschreiben:
const RAM4Addr=10;

thread main
{long i;int x,y;long timer;
 hwcom.setspeed(8);
 hwcom.clr();
 hwcom.print("Version: ");
 hwcom.num(ramhs4.getVersion(RAM4Addr));
 hwcom.ret();
 
 hwcom.print("Reading RAM ... ");
 hwcom.ret();
 for i=0...16000/*0x7FFFE*/ step 2
 {
  if (i%512)==0
   {
    hwcom.put(13);
    hwcom.num(i);
   }//*/
  x=ramhs4.readint(RAM4Addr,i);
  y=((i*7) and 0xFFFF);
  if x!=y
   {
    hwcom.put(13);
    hwcom.num(i);
    hwcom.print(" Error ");
    hwcom.num(y);
    hwcom.print("<>");
    hwcom.num(x);
    hwcom.ret();
   }
 }
 hwcom.put(13);
 hwcom.num(i);
 hwcom.ret();
 hwcom.print("Ready");
 hwcom.ret();
 quit 1;
}


Wenn nun keine Fehler angezeigt werden, finden während dem Lesen �bertragungsfehler statt.
Wenn aber Fehler angezeigt werden, lasse das ursprüngliche Programm nochmals laufen,
um das RAM-Device nochmals zu beschreiben.
Wenn nun keine Datenfehler gemeldet werden, wird der Bus wahrscheinlich bereits im
Grenzbereich betrieben.
Abhilfe würden dann Puffer oder Tranceiver für den restlichen Bus schaffen. (je nach Buslänge)

MfG André H.



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

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: ramhs4 (von FRANK - 19.04.2009 17:32)
    Re: ramhs4 (von André H. - 3.05.2009 11:47)
Re: ramhs4 (von Udo - 14.04.2009 9:50)