I'm using a UM220XB development module to breadboard the FT220X.
My design uses the FT220X to connect my microcontroller to a PC via SPI. My circuit design has 2 SPI slaves and 1 SPI master on the bus.
This is my problem: The FT220X, by default, drives MISO and MOSI even when #CS is not active. This causes bus contention if there are multiple SPI slaves on the bus.
These FTDI chips have onboard EEPROM that can be used to configure them. You can use a utility called FT_PROG.
The datasheet claims that FT220X supports multi-slave SPI bus. It claims I can reconfigure the EEPROM to change the behaviour of MISO and MOSI. Supposedly, you can use FT_PROG to make these lines IDLE for use with another slave on SPI bus.
Here is the quote from the datasheet (page 14):
Additionally, the FT1248 slave block supports multiple slave devices where a master can communicate with multiple SPI slave devices. When the slave is sharing buses with other SPI slave devices, the write and read buffer status cannot be reflected on the MIOSIO and MISO wires during CS# inactivity as this would cause bus contention. Therefore, it is possible for the user to select whether they wish to have the buffer status switched on or off during inactivity. (This setting may be applied in the internal MTP memory with FT_PROG at the same time as selecting FT1248 mode).
I am able to successfully read and program the device EEPROM with FT_PROG. The PC detects the module and assigns a VCP. I have been through the FT_PROG menus, the FT_PROG user manual, the UM220XB manual, and the FT220X manual. But I cannot figure out how to change this setting. Nowhere in FT_PROG can I find a setting like this. Help please!