Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Probleme mit dem M20_IIC_SLAVE_PAGE0.s19-Treiber Kategorie: C-Control I V1.2/2.0 (von Thomas Gabriel - 4.04.2006 15:49)
Thomas Gabriel nutzt:  CC1-M-Unit V1.2/2.0, CC1-Station V2.0
Guten Tag zusammen.

Ich würde mich sehr freuen, wenn mir hier jemand weiterhelfen kann, denn ich bin mit
meinem Latein so ziemlich am Ende.

Mein System:

1x C-Control Station I V2.0 Station als Master.
3x M-Unit 2.0 als Slave mit dem M20_IIC_SLAVE_PAGE0.s19-Treiber aus dem
Downloadbereich von http://www.c-control-support.de - angepasst für Basic++
mit dem ich arbeite.
Die M-Units treiben je einen Motor über Treiberbaustein und Leistungsstufe und
sammeln dabei verschiedene Daten wie Antriebsposition, Strom etc.
Der Master soll nun den Antrieben Aufgaben geben, indem er mittels des Treibers
eine "Befehlsvariable" bei den Slaves beschreibt, die diese regelmäßig pollen, und
so stets über neue Befehle informiert sind. Auf der anderen Seite soll der Master nun
auch Daten von den Slaves auslesen. Eben die angesprochenen Daten Position,
Strom usw.


Meine Probleme:

1.
Gibt man beim Master als Target-Variable im READ-Modus eine Variable an, die
beim Slave als Word definiert ist, scheint sich der IIC-Bus aufzuhängen. Es reagiert
anschließend keiner der drei Slaves mehr. Ich habe da ein Workaround vorgenommen,
mit dem ich dieses Problem umgehen kann, aber ganz glücklich bin ich nicht damit...

2.
Die Slaves bekommen unregelmäßig über den auf Ereigniszählung konfigurierten
FREQ2-Port Impulse. Diese zählen sie zufriedenstellend, solange nicht während
der Messung Busverkehr stattfindet. In dem Fall nämlich scheinen Impulse
"verschluckt" zu werden. Könnte das mit dem Treiber zusammenhängen?

3.
Wenn man zunächst mit dem einen Slave mit Adresse 120 (beinhaltet schon das
einmalige Linksshiften um das letzte Bit für Write-Modus zu gewinnen) kommuniziert,
und anschließend eine Kommunikation mit Slave 124 versucht, so stellt man fest,
dass dieser Slave (124) auf die Anfrage des Masters nicht reagiert. Der Master erledigt
hier seinen Teil, wie der Oszilloskopierung des Busses entnommen werden kann.
Jedoch erfolgt vom Slave kein ACK, so dass der Master nicht weitermacht. Sendet man
nun das Telegramm aber erneut, so reagiert der Slave wieder. d.h. ein Workaround
bedeutet, dass man immer, wenn man die Slave-ID wechselt (masterseitig), das Telegramm
doppelt senden muss. Das kann doch nicht sein, oder?
Das Problem ist unabhängig von den verwendeten IDs. Ich habe nur konkrete Zahlen benutzt,
um die Slaves eindeutig benennen zu können.

4.
Stellenweise scheint es vorzukommen, dass ein Slave überhaupt nicht mehr auf
Kommunikationsversuche des Masters reagiert. Er verhält sich dann völlig passiv, d.h.
er scheint sich irgendwo aufgehängt zu haben. Schwierig zu sagen wo, da InCircuit-
Debugging bei einer nackten M-Unit recht schwer ist...


Meine zusätzlichen Fragen:

- Weiß jemand, wo man mal Einblick in den SourceCode für das aktuelle CC I V2.0-
  Betriebssystem bekommen kann? Für die alte C-Control gabs mal ein Listing zum Download,
  das aber wohl kaum noch aktuell sein dürfte :-)
- Hat jemand den Source-Code für den M20_IIC_SLAVE_PAGE0.s19 - Treiber? Eventuell
  hilft selbst der mir schon weiter...
- Was brauch ich, wenn ich das Conrad-OS runterputzen, und an den Controller selbst
  ranwill? Idealerweise mit C/C++?


Tut mir leid, der lange Post, aber ich wollte lange Nachträge zu wichtigen Details
vermeiden - sorry, wenn dennoch was fehlen sollte.

Vielen vielen Dank schon mal für eure Hilfe!


Gruß, Thomas

 Antwort schreiben

Bisherige Antworten:

Re: Probleme mit dem M20_IIC_SLAVE_PAGE0.s19-Treiber (von Dietmar - 4.04.2006 17:04)
    Re: Probleme mit dem M20_IIC_SLAVE_PAGE0.s19-Treiber (von Thomas Gabriel - 4.04.2006 17:24)