You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 4 ports of FT4232H are configured as below and the configuration is saved to EEPROM,
Port A: VCP
Port B: D2XX
Port C: VCP
Port D: VCP
Next, port B is configured as I2C master using pyFTDI. However, doing so makes the other UART ports (port A, C & D) unresponsive. The chip needs to be powered cycled to get back the UART ports.
Below is the code used to configure port B as I2C master,
Instantiate an I2C controller
i2c = I2cController()
Configure the first interface (IF/2) of the FTDI device as an I2C master
i2c.configure('ftdi://ftdi:4232/2')
What could be the issue?
The text was updated successfully, but these errors were encountered:
I think I never tried to share the same device across the kernel boundary, i.e. one interface being handle by user-side libusb and the other interfaces still being handled by the kernel-side serial drivers. There may be several issues such as:
being sure that neither of pyftdi, pyusb, libusb claims more than one interface, and the kernel being able to only releasing one interface of a device and keeping its serial driver to manage the other interfaces (I'm not sure if it is even safe as some features are actually shared across the different interfaces)
being sure that pyftdi does not perform a full device reset, only an interface reset
tracking if selecting a USB device configuration from pyftdi/pyusb does not impact the other interfaces of the same device (no idea about this one to be honest)
i.e. I never exercised this use case, there maybe some invalid USB call somewhere. I do share the serial port and I2C/SPI port of FT4432H, but only from user-side libusb calls (i.e. several pyftdi instances at once using the same FT4232 device)
Side note: except maybe on Windows, there is no need to configure the EEPROM to enable MPSSE mode along with serial mode, e.g. I2C + "VCP".
The 4 ports of FT4232H are configured as below and the configuration is saved to EEPROM,
Port A: VCP
Port B: D2XX
Port C: VCP
Port D: VCP
Next, port B is configured as I2C master using pyFTDI. However, doing so makes the other UART ports (port A, C & D) unresponsive. The chip needs to be powered cycled to get back the UART ports.
Below is the code used to configure port B as I2C master,
Instantiate an I2C controller
i2c = I2cController()
Configure the first interface (IF/2) of the FTDI device as an I2C master
i2c.configure('ftdi://ftdi:4232/2')
What could be the issue?
The text was updated successfully, but these errors were encountered: