PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C - Baustein antwortet nicht



anwantzer
10.03.2015, 13:59
Hi zusammen,
ich versuche gerade, über das USB-I2C-Interface von ELV den Adafruit D/A-Wandler MCP4725 anzusprechen;
dazu verwende ich H-Term als Terminalprogramm. Nach ELV-Anleitung soll man Befehle in ASCII senden.
Der MCP4725 hat als Schreibadresse 0x62, also b in ASCII oder 98 in DEZ. Ein S startet in H-Term die
Befehlsübermittlung. Leider ist es mir bisher nicht gelungen, irgend eine Antwort vom Wandler in dem
Fenster "Received Data" von H-Term zu erhalten, nicht mal ein ACK.
Der verwendete Port ist COM5 mit 9600 Baud, der Wandler zeigt ca. 2,5 V.
Meine Frage: Welche Zeichenfolge muss ich senden, damit der Wandler angesprochen wird und z.B. mal 1V ausgibt???
Für Hilfe wäre ich dankbar.
anwantzer

Unregistriert
10.03.2015, 14:47
Auf der Seite
http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html
gibt es das "Handbuch (.pdf)"

Hast du da Kapitel 4.1. Befehle für die I²C-Kommunikation durchgearbeitet?

Hubert.G
10.03.2015, 14:57
Nach dem Datenblatt ist die Deviceadress 0xc0 unter der Voraussetzung das du A0 auf GND gelegt hast.
0xc0 ist dezimal aber 192.

anwantzer
10.03.2015, 15:29
Hi Hubert und Gast,
diese Adressen (c0) habe ich auch verwendet und dann einen Arduino mit I2C-dtect laufen lassen; dieser hat aber eben jene
0x62 angezeigt. Das ELV-Handbuch habe ich schon gelesen, aber es verwirrt mich mehr als das es hilft, weil:
1. S 40 FF P schreibt 0xFF in "das Gerät"; ins Interface oder meinen MCP4725?
2. Beispiel für AD-Wandler PCF8591:"Es ergeben sich die Adressen..." Aha. Weiter:"Das Konfigurationsbyte muss dem Datenblatt
entnommen werden". Aha. Jetzt wird mit S90 05 R04 P gelesen, wobei 05 wohl dieses Konfigurationsbyte ist.
Im Datenblatt meine ich erkannt zu haben, dass dieses Byte 00 ist; A0 liegt auf Masse.
Stimmt es überhaupt, dass ein richtig adressiertes Modul wenigstens ACK sendet?
Grüsse von anwantzer

Hubert.G
10.03.2015, 15:48
Die 0x62 kann schon stimmen, nur ist das die 7bit schreibweise. Da gehört dann noch als niederwertigstes Bit eine 0 für schreiben oder 1 für lesen dazu.

RoboHolIC
10.03.2015, 15:54
Es stellt sich ja stets die Frage, ob "Adresse" das gesamte Adressbyte inkl. Write-Bit meint oder nur die Binärinterpretation der Adressierungsbits [6..1]
Im letzteren Fall wäre minimalistische Leseadresse dann "Basisadresse*2 +1".

Edit: Zu langsam getextet.
Edit 2: Und noch fehlerhaft dazu; im zweiten Anlauf hoffentlich richtig.

sast
10.03.2015, 16:41
Wenn dein ELV Dingens noch auf originalen Einstellungen läuft, hat das 115200 Baud. Das war immer mein häufigster Fehler, wenn ich mit dem rumgespielt habe.
Aber 0xC0 (11000000) und 0x62 (01100010) passen irgendwie nicht zusammen. 0x60 würde da mehr Sinn machen.

Edit: Habe mir mal das Datenblatt angesehen. 0x62 kann stimmen, wenn du die entsprechenden A1 und A2 [[MCP4725A2T-E/CH A2 (10) AQNN]] hast. Dann sollte der Chip mit 0xC4 und 0xC5 ansprechbar sein.

sast

anwantzer
10.03.2015, 17:04
Danke für die Antworten,
aber ich komme nicht voran, das Terminal schweigt.
Inzwischen habe ich alles gesendet, was irgendwie passen könnte ...

sast
10.03.2015, 17:12
Hast du mal SC505P probiert? Baudrate stimmt?

anwantzer
10.03.2015, 17:21
Hi Sast,
was heisst mit 0xc3 UND 0xc4 ansprechen? Heisst es " S 0xc3 0xc4 ff P " , also Start/c3 c4 / schreibe ff /Ende??

sast
10.03.2015, 17:23
Hab es nochmal geändert s.o.. Von 7 auf 8 Bit muss auch das kleinere Nibbel verschoben werden. aus 0110 0010 wird 1100 0100

S C5 05 P

anwantzer
10.03.2015, 17:24
Hi Sast,
habs gerade gelesen. Antwort war "wrong command". Baud auf 115200, obwohl mein com-Port meint 9600.

sast
10.03.2015, 17:26
was hast du gelesen? SC505P ?
Es gab also eine Antwort.

anwantzer
10.03.2015, 17:37
Ja, SC505P; ist das die Antwort vom ELV oder vom IC?

- - - Aktualisiert - - -

Noch mal an Sast : Ich hab eine Antwort!!!
C0 80 00 08 00 !!!!
Danke Dir!

sast
10.03.2015, 17:37
ok super

sast

anwantzer
10.03.2015, 17:39
Noch mal Danke, jetzt gehts hoffentlich weiter ...

Unregistriert
10.03.2015, 19:54
ELV bzw. das Teil hat ein Problem. Warum soll man etwas einfach beschreiben wenn es auch schwer geht. Habe selber so was zu liegen. Es ist sokomisch geschrieben, das ich es nicht verstehe. Mache es in C und keine Probleme

anwantzer
11.03.2015, 12:37
Falls noch andere das gleiche Problem haben, mittlerweile läuft der Chip einwandfrei, und zwar so:
Start I2C Kommunikation/senden :8Bit Schreibadresse C5 + 1Byte 00/ Schreibbefehl I2C/ senden 2 Bytes 0x yz.
In HTerm sieht das so aus : S C5 00 W 0F FF (Beispiel für Analogout=Maximum). Dabei werden die 12 Bit Auflösung
des Wandlers durch die letzten 2 Bytes erreicht, wobei im 1. Byte nur die rechte Hälfte zählt.
Daher wird die Ausgangsspannung durch 00 00 bis 0F FF erzeugt.

HannoHupmann
12.03.2015, 09:50
Es gibt auch einen Artikel in der RN-Wiki zu dem Adapter und solchen Themen :)