is_WriteI2C

uEye Kamera-Handbuch Version 4.92


is_WriteI2C

Windows_Logo
Linux_Logo

USB 2.0

USB 3.0

GigE

USB 2.0

USB 3.0

GigE

Syntax

INT is_WriteI2C (HIDS hCam, INT nDeviceAddr, INT nRegisterAddr, BYTE* pbData, INT nLen)

Beschreibung

Mit is_WriteI2C() können bei einigen uEye Platinenkameras Daten über den I2C-Bus geschrieben werden.

Die Funktion erwartet die Geräteadresse als 8-Bit-Wert, der durch einen Bitshift nach links aus der 7-Bit-Adresse des Bausteins laut Datenblatt erzeugt wird. Die Funktion füllt das Bit 0 automatisch, um zu kennzeichnen ob auf die Geräteadresse geschrieben (0) oder von dort gelesen (1) werden soll.

Für Informationen zur Beschaltung des I2C-Bus siehe im Kapitel D: Spezifikationen.

hint_info

I2C-Funktionen werden von den Platinenversionen der Kameraserien uEye LE USB 3.1 Gen 1, USB 3 uEye LE, USB uEye LE und GigE uEye LE unterstützt.

hint_info

Wenn Daten auf einen Mikrocontroller geschrieben werden, muss dafür gesorgt werden, dass dieser den Erhalt der Daten mit ACK bestätigt.

hint_info

Folgende Adressen für nDeviceAddr sind von der uEye Kamera belegt und dürfen nicht verwendet werden:

7-bit-Format: 0x10, 0x48, 0x4C, 0x50, 0x51, 0x52, 0x55, 0x5C, 0x5D, 0x69, 0x77

8-bit-Format: 0x20, 0x90, 0x98, 0xA0, 0xA2, 0xA4, 0xAA, 0xB8, 0xBA, 0xD2, 0xEE

Zusätzlich bei UI-336x/UI-536x und UI-337x/UI-537x: 0x82

Übergabeparameter

hCam

Handle auf Kamera

nDeviceAddr

Geräteadresse (8-Bit-Format)

nDeviceAddr | IS_I2C_DONT_WAIT

Standardmäßig wird per Polling abgefragt, wann das Byte tatsächlich in die Speicherzelle geschrieben wurde. Wird IS_I2C_DONT_WAIT zu nDeviceAddr verodert findet kein Polling statt.

nRegisterAddr

Adresse eines 8-Bit-Registers (nur 8-bit-Adressen gültig)

nRegisterAddr |
IS_I2C_16_BIT_REGISTER

Adresse eines 16-Bit-Registers

nRegisterAddr |
IS_I2C_0_BIT_REGISTER

Wenn nur eine Geräteadresse aber keine Register-Adresse vorhanden ist.

pbData

Zu schreibende Daten

nLen

Datenlänge (max. 62 Byte)

Rückgabewert

IS_CANT_COMMUNICATE_WITH_DRIVER

Kommunikation mit dem Kameratreiber schlug fehl, weil kein Treiber geladen ist.

IS_CANT_OPEN_DEVICE

Ein Versuch die Kamera zu öffnen schlug fehl (Kamera nicht vorhanden oder Fehler beim Initialisieren).

IS_INVALID_CAMERA_HANDLE

Ungültiges Kamera-Handle

IS_INVALID_I2C_DEVICE_ADDRESS

Ungültige I2C-Geräteadresse

IS_INVALID_PARAMETER

Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich.

IS_IO_REQUEST_FAILED

Eine IO Anforderung des uEye Treibers schlug fehl. Eventuell passen die Versionen der Dateien ueye_api.dll (API) und ueye_usb.sys bzw. ueye_eth.sys (Treiber) nicht zusammen.

Dieser Fehlercode wird auch zurückgegeben, wenn sich der Mikrocontroller nicht korrekt mit ACK zurückmeldet.

IS_NO_SUCCESS

Allgemeine Fehlermeldung

IS_SUCCESS

Funktion erfolgreich

Verwandte Funktionen

•is_ReadI2C()

•is_DeviceFeature(): I2C-Stop-Bit setzen

Beispiel

// ------------------------------------------------------
// Auf I2C-Gerät schreiben:
//
// 16-bit-Register adressieren
// Hinweis:
// Es dürfen nur 2 Byte auf einmal geschrieben werden
 
is_WriteI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
 
// 8-bit-Register adressieren
// Hinweis:
// 1. Es dürfen 1 oder 2 Byte auf einmal geschrieben werden
 
// 1 Byte schreiben
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 1);
// 2 Byte schreiben
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 2);
 
 
// ------------------------------------------------------
// Von I2C-Gerät lesen
//
// 16-bit-Register adressieren
is_ReadI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
 
// 8-bit-Register adressieren
 
// 1 Byte lesen
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 1);
// 2 Byte lesen
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 2);
 
 
// ------------------------------------------------------
// Beispielwerte
// Adresse des Bausteins (aus dem Datenblatt entnommen): 0x40
// Adresse des Bausteins im 8-bit-Format (Linksshift): 0x80
// Adresse zum Schreiben (von is_WriteI2C() erzeugt): 0x80
// Adresse zum Lesen (von is_ReadI2C() erzeugt): 0x81
//
// Auf Baustein mit Adresse 0x40 Wert 0x52 in Register 0x00 schreiben
BYTE bValue = 0x52;
is_WriteI2C (hCam, 0x80, 0x00, &bValue, 1);
 
// Von Baustein mit Adresse 0x40 Wert aus Register 0x00 lesen
INT nVal;
BYTE bValue = 0;
is_ReadI2C (hCam, 0x80, 0x00, &bValue, 1);

Haben Sie Verbesserungshinweise? Senden Sie ein kurzes Feedback zu diesem Kapitel. Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.


© 2019 IDS Imaging Development Systems GmbH
https://de.ids-imaging.com