Forum: Mikrocontroller und Digitale Elektronik I2C einzelne Register beschreiben


von Steiger (Gast)


Lesenswert?

Hallo,

ich möchte mit einem i2c USB converter einen gyrosensor per i2c 
ansteuern.

Ich nutze Hterm als ausführendes Programm dafür.

Die Kommunikation klappt soweit auch. Nur ist jetzt das Problem,dass ich 
gern einzelne Register auslesen und beschreiben möchte.


wenn ich jetzt aber den Befehl

S d3 (Adresse des Sensors plus das lesebit in Hex) [und zb] 3A 
(Registeradresse in Hex) P eingebe:

als Befehl in klarschrift  SD33AP

dann gibt er mir alle register bis zu 3A aus.


Was beim lesen vielleicht noch okay ist.. aber beim schreiben finde ich 
das dann zu schwer.


Gibt es dafür einen Befehl, der mich also Register einzeln auslesen und 
beschreiben lässt.



Bin für jede hilfe Dankbar


Steiger

von Uwe (Gast)


Lesenswert?

Kommt auf dein I2C zu USb Modul an ! Manual lesen.

von Steiger (Gast)


Lesenswert?

Zusatz: der Microcontroler in im USB-IC2 Converter ist ein atmega88.

von Steiger (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Steiger schrieb:
> na ist einer von ELV
>
> http://www.elv.de/output/controller.aspx?cid=74&de...

Und nun soll also jemand für Dich das Handbuch runterladen und lesen?


Peter

von Steiger (Gast)


Lesenswert?

Och mensch..wenn es so wäre dass dort drinstehen würde "So steuern sie 
einzelne Register an..." würde ich nicht fragen. Sollte jemand das dort 
in der anleitung so finden..kann er mir seine adresse geben und ich 
zeige mich erkenntlich.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das hängt auch von deiner I2C Peripherie ab. Manche Chips erlauben das 
Lesen/Schreiben der einzelnen Register a la:
Hauptadresse>RegisterAdresse>Registerwert
aber andere erlauben nur das alles in einem Schwupps zu tun. Lese das 
Datenblatt zu deinem Gyrosensor.

von Uwe (Gast)


Lesenswert?

> S d3 (Adresse des Sensors plus das lesebit in Hex) [und zb] 3A
>(Registeradresse in Hex) P eingebe:

>als Befehl in klarschrift  SD33AP

>dann gibt er mir alle register bis zu 3A aus.

Nach der Adresse des Sensors und dem lesebit gibst du die aAnzahl von 
Bytes an, die gelesen werden sollen und du schreibst dort eine 3A hin 
also wedren auch 3A Bytes gelesen.
Welches Register dulesen willst mußt du deinem Gyro schon mitteilen das 
kann der I2C zu USB nicht von alleine, der weiß ja nicht was da fürn 
Ding dranhängt. Das weißt nur du und du mußt ins Datenblatt gucken wie 
man dem Gyrosensor mitteilet das man ein bestimmtes Register auslesen 
will.
Ergo alles funktioniert so wie es soll nur nicht so wie du es willst.

von Coder (Gast)


Lesenswert?

Ein klassisches RTF Problem.

von Steiger (Gast)


Lesenswert?

http://invensense.com/mems/gyro/documents/PS-MPU-6000A.pdf

Hier ist der Link zum Handbuch des Gyrosensors.

Auf Seite 39 ist ganz klar beschrieben wie das funktionieren sollte.

Das gebe ich ergo in die Zeile von hterm ein.

In runden klammern sind dann die Reaktionen des Sensors zu lesen

SD2 (k foü acknowleded) 01[dieses Register möchte ich auslesen, oder 
auch ein beliebig anderes wie hx1A bzw.bis hoch zu hx75]  (k)  SD3 (und 
nun sollte ja nach der Anleitung der Inhalt des gewünschten Registers 
erscheinen,jedenfalls nach meiner Lesart...passiert aber nicht.)

Jemand eine Idee?

Wenn ich mir noch keine Arbeit damit gemacht hätte wäre mein erster Weg 
nicht in ein Forum, sondern es so lange weiterprobeiren bis nichtsmehr 
da is zum auszuprobieren.

Also wer kann helfen..ich weiß echt nicht weiter.

Steiger

von Steiger (Gast)


Lesenswert?

keiner ne Idee?

von spess53 (Gast)


Lesenswert?

Hi

>Och mensch..wenn es so wäre dass dort drinstehen würde "So steuern sie
>einzelne Register an..." würde ich nicht fragen.

Steht doch bei den Beispielen drin. Oder was denkst du, was man macht 
,wenn eine einzelne EEPROM-Speicherzelle gelesen wird oder die Zeit aus 
der RTC?

MfG Spess

von Martin K. (skiko)


Lesenswert?

Hallo!

Also Wenn ich I2C Register lese oder schreibe hat das den Aufbau
Start ChipWriteAdresse RegisterAdresse Stop
Start ChipLeseAdresse AnzahlBytes Stop
Wobei Anzahl Bytes eben für jedes Byte Takten muss und somit auch von 
deinem USB Gerät abhängt.
Also bei dir wäre das
S 0xD2 0x01 P
S 0xD3 0x01 P
Also auf Register 0x01 umschalten dann 0x01 Bytes lesen


S 0xD2 0x03 P
S 0xD3 0x06 P
Das wäre ab Register 0x03 6 Bytes lesen
Aber wie gesagt die genaue Schreibweise hängt von deinem Gerät ab.

Hoffe es hilft

Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.