LimeSDR I2C Port Expander Usage

Dear Lime Team,

I have a question regards the I2C Port Expander. Maybe @Zack can help.

Originally I thought the port expander was utilized to generate additional I/O’s for the FX3. Looking over the schematics of the board I realized that the expander is e.g. used as the slave select for the FPGA flash memory (EXP_AS_SS). However, there is the non-fitted R72, which could connect the FX3 GPIOs (FX3_SPI_AS_SS). Is there a specific reason why the port expander has been used for this purpose?

Any help would be greatly appreciated.
Thank you very much!

Hi @Sombrero,

It looks like you have an old schematic. Actually, R72 is fit, while R74 - no fit in the current version.

Yes, it was a reason until we found solution. The problem was that we couldn’t control FX3 GPIO57 pin when FX3 was configured to 32 pin GPIF interface. And we were short of FX3 pins. Hence the solution was to use I2C port expander. Later we discovered that we can use GPIO57 if we change GPIF interface to 16 bit temporarily. Time duration, required for GPIF reconfiguration is shorter than controlling Flash SS line thru I2C expander hence in the current board version we do not use I2C expander for this functionality.

Hi @Zack,

thank you very much for your reply. Since I don’t need a USB capability for the specific application, I am targeting to eliminate unnecessary components.

Correct me if I am wrong, but the way I understand it, is that the port expander has than no other vital function left than triggering the FPGA Flash switch. Given that sufficient GPIOs are available in my design, I will go ahead and supersede it through an additional GPIO.

Thank you very much! :slight_smile:

Hi @Sombrero,

Not sure about your design - are you going to modify LimeSDR-USB board or are you designing your own.

Well, when FX3 is configured to 32 pin GPIF, some FX3 GPIOs becomes floating and makes nasty things to FPGA Flash memory. Forget it if yo uare designing your own board without FX3.