I used to bit-bang I2C on PC LPT printer ports, which are long obsolete.
A USB-to-I2C module allows me to talk to I2C devices again.
FTDI provide source-code libraries to talk to this module.
I gave it a try, and got it talking to a few simple devices.
After wading through documentation, this was very easy.
Some documentation said that all you need to do is plug the module in and Windows 10 would install the software. I didn't get the expected pop-up windows saying 'new device detected'.
Fortunately the documentation said you could install the drivers simply by running a single setup.exe program. I did this without problems.
The module is now visible in the device manager, as a USB device with two FT2223 ports.
for i in $(seq 0 8); do sudo i2cdetect -y $i ; done
The program 'i2cdetect'is currently not installed. You can install it by typing:
sudo apt-get install i2c-tools
This installation command worked. Tried to detect devices again, but got permission denied. Had to become a super user with the 'su' command. This allowed devices to be detected. I don't have any devices attached yet, so all I got was ten lots of this:
I checked that my video card has a VGA output, as these are going obsolete. Fortunately, mine does.
Time to look for an old VGA cable...
2020-11-17
Ordered two UMFT4222EV-D modules from Mouser. Despatched from Germany, they arrived 2 days later.
2020-11-22
Compiled and ran the example code that gets the hardware version from the module. Success!
The I2C master example writes and reads a serial EEPROM. I have one but VCC is 5V, not the necessary 3V3. That code would simply prove the interface works. I shall examine the code and see how I could get it talking to one of the I2C slave modules I have.
2020-11-23
I had expected my USB-to-I2C module to show up as an I2C bus in the Linux file system., and wondered why it did not. On my laptop, I listed the busses found like so:
None of these have FTDI in the name. There is one with vga in the name, and two with DDC in the name. I could scan those buses, then attach an I2C device to the VGA port, and see which bus had changed. The easiest way was to connect my laptop to the VGA port of my monitor. No soldering needed!
My laptop LCD panel blinked briefly. If I go to the system settings, it now knows it has two displays. Even if my desktop monitor is in use through its DVI port. I also see that devices appear at addresses 30, 37, 4a, 4b and 50 responded on i2c-7 (the DPDDC-A bus). 50 is the configuration ROM.