Auf der Seite
http://www.elv.de/usb-i2c-interface-...lusskabel.html
gibt es das "Handbuch (.pdf)"
Hast du da Kapitel 4.1. Befehle für die I²C-Kommunikation durchgearbeitet?
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
Auf der Seite
http://www.elv.de/usb-i2c-interface-...lusskabel.html
gibt es das "Handbuch (.pdf)"
Hast du da Kapitel 4.1. Befehle für die I²C-Kommunikation durchgearbeitet?
Nach dem Datenblatt ist die Deviceadress 0xc0 unter der Voraussetzung das du A0 auf GND gelegt hast.
0xc0 ist dezimal aber 192.
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
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.
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.
Geändert von RoboHolIC (10.03.2015 um 16:11 Uhr)
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
Geändert von sast (10.03.2015 um 17:18 Uhr)
雅思特史特芬
开发及研究
Danke für die Antworten,
aber ich komme nicht voran, das Terminal schweigt.
Inzwischen habe ich alles gesendet, was irgendwie passen könnte ...
Hast du mal SC505P probiert? Baudrate stimmt?
雅思特史特芬
开发及研究
Hi Sast,
was heisst mit 0xc3 UND 0xc4 ansprechen? Heisst es " S 0xc3 0xc4 ff P " , also Start/c3 c4 / schreibe ff /Ende??
Lesezeichen