#i2c-bus #i2c #linux #usb2642

usb2642-i2c

A Rust library for interfacing with the USB2642 I2C bus using the linux sg3 SCSI interface

2 releases

0.1.1 Dec 22, 2020
0.1.0 Dec 22, 2020

#23 in #i2c-bus

32 downloads per month
Used in usbsdmux

MIT license

11KB
210 lines

usb2642-i2c

API Crate

A Rust library for interfacing with the USB2642 I2C bus using the linux sg3 SCSI interface.

Usage

const I2C_ADDRESS: I2CAddress = 0x12;

let mut usb2642 = USB2642I2C::open("/dev/sg0").unwrap();

// Write-Only
let mut write_data = [0x01u8, 0x02u8];
usb2642.write(I2C_ADDRESS, &mut data).unwrap();

// Write-Read
let write_data = [register.to_u8().unwrap()];
let read_data = usb2642.write_read(I2C_ADDRESS, &data, 1).unwrap();

lib.rs:

A Rust library for interfacing with the USB2642 I2C bus using the linux sg3 SCSI interface.

Usage example

use usb2642_i2c::{USB2642I2C, I2CAddress};

const I2C_ADDRESS: I2CAddress = 0x12;

if let Ok(mut usb2642) = USB2642I2C::open("/dev/sg0") {
  // Write-Only
  let mut write_data = [0x01, 0x02];
  usb2642.write(I2C_ADDRESS, &mut write_data).unwrap();

  // Write-Read
  let write_data = [0x02];
  let read_data = usb2642.write_read(I2C_ADDRESS, &write_data, 1).unwrap();
}

Dependencies

~3.5MB
~83K SLoC