2017-11-16 5 views
0

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에 대한

  1. 필수 명령. 우리는

답변

0

FT232H 대 "어댑터에 필요한 명령의"에 결론을 내릴 수있는 방법 FT232R 두 개의 서로 다른 칩입니다. FT232R에는 "MPSSE 엔진"이 포함되어 있지 않으므로 MPSSE i2c 마스터 기능에 의존하는 타사 코드 예제 나 FTDI appnote 255과 함께 사용할 수 없습니다.

관련 문제