Schrittmotoransteuerung mit TMC222
Hallo Leute,
ich habe ein Problem in der Kommunikation über I2C mit meinem TMC222 Chip.
Ich benutze einen ATMega128 als Master und mein I2C-Protokoll ist in C geschrieben. Das Schreiben in den TMC222 funktioniert anscheinend, da ich vom Slave den Acknowledge-Bit immer bekomme. Wenn ich aber, die Daten vom TMC222 auslesen will, geht das nicht. Im Datenblatt stehen die Datagramme wie man es programmieren soll, aber irgend wie kapiere ich das nicht. Ich habe es so versucht, die Befehle GetFullStatus1, GetFullStatus2 und GetOTPParam auszuführen aber es funktioniert nicht:
|Startbit|SlaveAddress|0|A|Befehl|A|Stoppbit| und danach
|Startbit|SlaveAddress|1|A|Data|A|.....|Data|nA|St oppbit|
Wenn mir jemand helfen könnte und richtigen Datagramm aufschreiben würde, wäre ich sehr dankbar.
Miro
](*,)
TMC222 ueber I2C auslesen - 2 Unklarheiten
Hallo zusammen, ich habe mich jetzt auch ein paar Tage mit dem TMC222 beschaeftigt, beeindruckendes kleines IC :-)
2 Sachen verstehe ich allerdings nicht - geht Euch das auch so?
1)
Bei GetFullStatus1 oder 2 sollte als erstes Byte ("Address") 0xF... kommen, also die ersten 4 bits gesetzt, und dann die OTP Adress-bits.
Bei mir kommt aber immer 0xE0.
Das 4. bit ist geloescht, anders als in der Spec.
Koennte mir eigentlich egal sein, aber ich wuesste gerne, ob ich da was grundsaetzlich falsch mache...
Bekommt Ihr 0xF... oder 0xE...?
2)
GetOTPParam funktioniert bei mir ueberhaupt nicht, ich bekomme immer nur 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE, obwohl es 8 x 0x00 sein muesste. Schon allein wg. der OTP Adress-bits -die sind definitiv noch 0- muessten ein paar Nullen dabei sein.
Habt Ihr das Problem auch schonmal gesehen?
Danke fuer Eure Hilfe,
Gruss,
Michael
Re: TMC222 ueber I2C auslesen - 2 Unklarheiten
Hallo IngBo,
Vielen Dank!
Zu 2)
>> man bekommt die FFs wenn die I2C-Übertragung zu hoch ist.
>> Das ist meistens bei GetOTPParam. Versuche mit <50kHz.
Den Kommentar hatte ich schon beim ersten Mal nicht verstanden.
Was meinst Du mit "zu hoch"? Den I2C-Bus-Takt?
Macht wahrscheinlich Sinn, leider kann ich den -glaube ich- bei meinem JControl nicht einstellen (www.jcontrol.org, ich verwende ein JCU10 von ELV).
Aber dann muesste ich halt damit leben. OTP-Programmieren geht ja.
Bei mir sind's uebrigends FEs ;-)
Viele Gruesse,
Michael