Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: I²C-Bus TMC222 Kategorie: I²C-Bus (von SvenA - 19.02.2013 14:54)
Als Antwort auf Re: I²C-Bus TMC222 von SvenA - 18.02.2013 20:47
Ich nutze:
C-Control Pro Mega128
> > > > Hallo!
> > > >
> > > > Ich möchte mehrere Steppermotoren (4-5) mit dem I²C-Stepper-Modul (198266) an meinem
> > > > cc-pro 128 applications Board betreiben. Dazu mu� ich allerdings die I²C-Adressierung
> > > > des TMC222 ändern. Mit der Beschreibung des TMC222-Manuals komme ich allerdings nicht klar.
> > > > Gibt es vielleicht ein Programm (mit Beschreibung) mit dem ich diese Adressierung
> > > > verändern kann?
> > > >
> > > > MfG
> > > > Stephan Küppers
> > >
> > > Hallo Stephan,
> > >
> > > da ich auch nicht sehen kann ob bzw. wie man den TMC222 addressieren kann, würde ich evtl.
> > > ein anderen weg gehen wenn es dieses Modul sein muÃ?.
> > >
> > > ich würde zum beispiel einen i2c Porterweiterung pcf8574 verwenden, dessen ausgänge könnten dann
> > > über Transistorstufe die Versorgungsspannung der Module ein bzw. ausschalten.
> > >
> > > Somit könntest du 8 Module ein/aus schalten.
> > > Diese Module würde ich über einen frei wählbaren i2c Bus ansprechen, nicht über den eigentlichen
> > > i2c bus.
> > >
> > > Den portexpander wiederum sehr wohl über den eigentlichen i2c bus.
> > >
> > > du kannst bis zu 8 portexpander anschlie�en.... was wohl viel zu viele für dich wären aber
> > > du hast so eben mehr i/o's wenn es sein muss.
> > >
> > > Nachteil ist du musst erst den Portexpander Mitteilen welcher tmc222 aktiv sein darf.
> > > und dann schickst du entsprechend die werte auf den 2. bus zu den tmc222
> > > Sprich 2xI2c = 4 Ports.
> > >
> > > wäre jetzt eine schnelle überlegung.... ich würd aber ggf. gleich ganz auf andere Steppermotor Module
> > > umsteigen...
> > >
> > > wenn es nur 4 Motoren werden wäre evtl. PCA9629
> > > eine alternative, dieser hat ywei addressirungs ports (2bit =0...3 maximal 4 module)
> > >
> > > diese könnte man zwar auch wieder in gruppen teilen und einzeln ab bzw anschalten, dann sind auch mehr
> > > denkbar
> > >
> > > hoffe es bringt dich etwas weiter
> > >
> >
> > Hallo Sven!
> >
> > Wäre natürlich vielleicht eine gangbare "Umleitung", ist aber auch wegen 2xI²C entsprechend
> > kompliziert und mit zusätzlichem HW-Aufwand verbunden.
> > Der PCA9629 wäre natürlich auch eine
> > Möglichkeit, ich habe jedoch bereits die I²C-Stepper-Module (198266) mit dem TCM222!
> > Und seien wir mal ehrlich, wenn in der TCM222-Beschreibung steht, man könne das OPT so setzen,
> > da� eine erweiterte Adressierung möglich ist, so sollte dieses Umsetzen auch entsprechend (von
> > Conrad) dokumentiert und unterstützt werden.
> > Der Verweis auf ein Datenblatt reicht hier meines Erachtens nicht aus.
> > Trotzdem Danke für deine �berleungen
> >
> > Stephan
>
> Ich fürchte das ich dir momentan da auch nicht weiter helfen kann, oder auch sonst kaum einer
> hier sich in der lage fühlt.
>
> Aber evtl. hilft dir dieser beitrag
>
>
> im Robotornetz
weiter.
>
> Besonders der 3. Artikel von oben ;) a la darwin.nuernberg
>


Hallo Stephan,

ich denke ein wenig kann ich dir heute weiter helfen.

leider nur in der Theorie, in der Praxis kannst nur du es umsetzten / Testen ect.

GANZ WICHTIG.......

Doch zunächst mu� ich dich darauf hinweisen.... wie ich erfahren durfte, kann
man beim TMC222 wohl Bit-Werte von 0 auf 1 ändern, aber diese �nderungen nicht mehr
Rückgängigmachen, deswegen mit oberster Sorgfalt überlegen und mit bedacht die �nderungen machen.


Nun zum Adressieren: deiner TMC's

die Obersten 2 BIT des Adress Byte sind Fest vorgegeben vom Hersteller (hier 11)

du kannst 4 Bit selbst setzen und eines via HW (HardWired) muss im übrigen wohl immer an MASSE oder
Vcc gelegt sein, unbeschaltet kann es zur zerstörung oder fehlfunktion des TMC führen.
Der HW-Pin Status laesst sich jedezeit durch aendern des â??Jumpersâ?? aendern (wenn vorhanden).

Die Befehlsfolge als solches die du per I2C senden musst ist...


R_adresse = ALTEADRESSE Or &B00000001  ' R/W - Bit setzten (lesen)
W_adresse = R_adresse And &B11111110   ' R/W - Bit löschen (schreiben)

Neue4BITadr = Neue4BITadr And &B00001111  'sicherheitshalber maskieren

Befehlsfolge:
Param(1) = Cst_setotpparam       ' Der Befehl
Param(2) = &B11111111            ' muss so sein
Param(3) = &B11111111            ' muss so sein
Param(4) = &B11111010            ' OTP-Offset (otpa) für AD
Param(5) = Neue4BITadr           ' OTP Adress-Bits (pbit)
jetzt die 5 Parameter (CodeSquenz oder wie auch immer man das nun nennt) via i²c an den TMC senden
I2csend W_adresse, Param(1....5)




Was sich ir nicht (bzw. noch nicht) erschlieÃ?t ist die frage....

wenn 2 oder mehr Module dran hängen, im erstgebrauch, wie reagieren diese dann????
Sie tragen ja alle die FirmWare adresse.
Ich würde also vorab die einzelnen Module lieber einzeln einbauen und sie nach und nach Adressieren.

Du kannst also theoretisch bis zu 32 tmc Module an einen I2C Bus betreiben.

mögliche adressen somit
  FFBBBBHR               FF=FirmWareAdressBit, BBBB die 4 OTP-Adress-Bits H=HW (PIN/JUMPER) R=Read/WRITE
&B11000000     (Nur hardwired Codiert)
&B11000010     (Nur hardwired Codiert)

&B11000100     (1tes Bit OTP und hardwired Codiert)
&B11000110     (1tes Bit OTP und hardwired Codiert)

&B11001000     (2tes Bit OTP und hardwired Codiert)
&B11001010     (2tes Bit OTP und hardwired Codiert)

&B11001100     (2 Bit OTP und hardwired Codiert)
&B11001110     (2 Bit OTP und hardwired Codiert)

Somit also 8 Module...

ich hoffe das ich dir etwas weiter helfen konnte.....

Denke daran ein einmal gesetztes BIT kann nicht mehr rückgängig gemacht werden!




    Antwort schreiben


Antworten:

Re: I²C-Bus TMC222 (von StephanKüppers - 19.02.2013 15:55)
    Re: I²C-Bus TMC222 (von StephanKueppers - 19.02.2013 16:01)