I2C 통신으로 데이터를 송수신하는 센서를 인터페이스하려고합니다. 필자는 센서를 I2C 변환기에 FT232H USB 인터페이스로 연결하고 PC에 연결했습니다.Linux 가상 컴퓨터에서 I2C 장치를 FT232H에 연결할 수 없습니다.
[ 518.172735] usb 1-3: new full-speed USB device number 4 using xhci_hcd
[ 518.306677] usb 1-3: New USB device found, idVendor=0403, idProduct=6001
[ 518.306686] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 518.306689] usb 1-3: Product: FT232R USB UART
[ 518.306692] usb 1-3: Manufacturer: FTDI
[ 518.306695] usb 1-3: SerialNumber: AK04P01W
[ 518.309382] ftdi_sio 1-3:1.0: FTDI USB Serial Device converter detected
[ 518.309442] usb 1-3: Detected FT232RL
[ 518.309445] usb 1-3: Number of endpoints 2
[ 518.309448] usb 1-3: Endpoint 1 MaxPacketSize 64
[ 518.309450] usb 1-3: Endpoint 2 MaxPacketSize 64
[ 518.309453] usb 1-3: Setting MaxPacketSize 64
[ 518.309771] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
을 내가는/dev/ttyUSB0를 장치를 얻을 수 있었다 - 다음과 같이
내가 메시지는 dmesg 출력을 얻을. 나는 다음과 같은 링크에 주어진 샘플 파이썬 기반 응용 프로그램을 실행 한-
https://learn.adafruit.com/adafruit-ft232h-breakout/i2c
다음과 같이 내가 사용 된 코드입니다 -
import Adafruit_GPIO.FT232H as FT232H
# Temporarily disable FTDI serial drivers.
FT232H.use_FT232H()
# Find the first FT232H device.
ft232h = FT232H.FT232H()
# Create an I2C device at address 0x70.
i2c = FT232H.I2CDevice(ft232h, 0x70)
을하지만, 항상 얻을 다음 줄에 달라 붙음 -
ft232h = FT232H.FT232H()
나는 그 기능에서 나올 수 없다.
따라서, 예를 들어, 버전을 읽을 수 - 그것은 다음과 같은 예를 보여줍니다 위의 링크에서
https://unix.stackexchange.com/questions/340789/enabling-i2c-on-debian-i2cdetect-doesnt-show-device
-
나는 다음 또한 링크에 주어진 단계를 따라했습니다 , 레지스터 00에서 01 바이트를 읽어야하고, 기본 칩 주소는 E0이고, LSB는 R/W 비트이므로 E1을 주소로 사용하고 USB-I2C 어댑터에 필요한 명령은 55입니다. 따라서 시리얼을 통해 전송할 전체 시퀀스는 55 E1 00 01이며, 1 바이트를 대답으로 읽습니다.
나는 다음과 같은 데이터의 값을 선택하는 방법을 얻을 수 아니에요 - I2C 어댑터 - USB에 대한
- 필수 명령. 우리는