Skip to content

USB-to-I2C Adapter (EV2300)

Auto-generated from driver source.


TI EV2300

Texas Instruments EV2300 USB-to-SMBus/I2C adapter (HID-based, not SCPI).

TI_EV2300

TI EV2300A USB-to-I2C/SMBus adapter driver.

Does NOT inherit from DeviceManager — communicates via USB HID, not PyVISA/SCPI. Follows the same non-standard pattern as :class:NI_PXIe_4139.

Usage::

ev = TI_EV2300()
ev.connect()
result = ev.read_word(0x08, 0x00)
print(result["value"])
ev.disconnect()

Linux permissions -- create /etc/udev/rules.d/99-ev2300.rules::

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="0036", MODE="0666"

Then: sudo udevadm control --reload-rules && sudo udevadm trigger

connect

connect() -> None

Open the EV2300 device.

disconnect

disconnect() -> None

Close the EV2300 device.

read_word

read_word(i2c_addr: int, register: int) -> dict

Read a 16-bit LE word from register on i2c_addr.

write_word

write_word(i2c_addr: int, register: int, value: int) -> dict

Write a 16-bit LE word to register on i2c_addr.

read_byte

read_byte(i2c_addr: int, register: int) -> dict

Read a single byte from register on i2c_addr.

write_byte

write_byte(i2c_addr: int, register: int, value: int) -> dict

Write a single byte to register on i2c_addr.

read_block

read_block(i2c_addr: int, register: int) -> dict

Read a variable-length block from register on i2c_addr.

write_block

write_block(i2c_addr: int, register: int, data: bytes | bytearray) -> dict

Write a block (max 52 bytes) to register on i2c_addr.

send_byte

send_byte(i2c_addr: int, command: int) -> dict

SMBus Send Byte (no register address).

get_device_info

get_device_info() -> dict

Return VID, PID, serial, product, manufacturer.

probe_command

probe_command(cmd: int, i2c_addr: int = 8, register: int = 0, data: bytes = b'', write_submit: bool = False) -> dict

Send an arbitrary command and return raw response.

query

query(cmd: str, **kwargs: object) -> str

Return an IDN-like string for compatibility with the toolkit.

send_command

send_command(cmd: str) -> None

No-op SCPI compatibility stub.

reset

reset() -> None

Disconnect and reconnect.

clear_status

clear_status() -> None

No-op SCPI compatibility stub.

open_device

open_device(adapter: str = 'auto') -> dict

SMBusTransport compat: open the device.

close_device

close_device() -> int

SMBusTransport compat: close the device.

i2c_power

i2c_power(enabled: int = 1) -> dict

Send I2CPower command (0x18) to enable/disable the I2C power rail.

This is a SILENT command -- the real EV2300 sends no HID response. The STM32 bridge accepts it silently too.

read_smbus_word

read_smbus_word(i2c_addr: int, register_addr: int, pec: int = 0) -> dict

SMBusTransport compat: read 16-bit word.

write_smbus_byte

write_smbus_byte(i2c_addr: int, register_addr: int, value: int, pec: int = 0) -> dict

SMBusTransport compat: write single byte.

enumerate_devices staticmethod

enumerate_devices(*, diagnostics: bool = False) -> list[dict]

Return list of all EV2300 devices found on the system.

Parameters

diagnostics : bool When True, log detailed info about all TI HID devices found (including bootloader-mode units) and any errors encountered.

count_bootloader_devices staticmethod

count_bootloader_devices() -> int

Return the number of EV2300 devices in bootloader mode.

is_available staticmethod

is_available() -> bool

Return True if at least one EV2300 is connected.