This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/MSP430F5528: Miltiple I2C devices (FDC2214EVM) application

Part Number: MSP430F5528
Other Parts Discussed in Thread: FDC2214, FDC2214EVM

Tool/software: Code Composer Studio

Hello,

I am going to use a MSP430F5528 to control multiple FDC2214EVM, each FDC2214EVM has a MSP430F5528 controller, the FDC2214EVM is a breakable board that can be separated into a MSP430 controller board and a FDC2214 board. I am thinking to use only one of the separated-MSP430 controller board to control 8 separated-FDC2214 boards to build a prototype. I went through the MSP430 user guide(SLAU208Q) and noticed that the MSP430 has only 2 addresses for I2C interface, it also shows that it can  handle many I2C devices as slaves (see page 997).

Could someone tell me how to address to the 8 separated-boards for data communication?   Also please specify the maximum number of FDC2214 can be used with the SMP430 without using an external power supply? I noticed that each FDC2214 consumes 2.1mA at active status. What is the maximum current draw allowed from a SMP430? and what external power supply can you recommend if an external one must be used?

Thanks,

Gu

  • One thing I expect you'll bump into: Per Data Sheet (SNOSCZ5A) Sec. 9.5.1, there are only two possible addresses, based on the ADDR pin.

    In some devices like this, you can get away with wiggling the ADDR pin to act as a form of Chip Select, but that requires that the device sample that pin at every request. In this device (Sec. 9.5.1 again) the ADDR pin is only sampled as it comes out of Shutdown mode, which limits your ability to wiggle it.
  • Hello Guoxing,

    As for the power, I don't have an exact answer for you. The devices shouldn't be powered directly by the MSP430 MCU, so it's more a question of how much power can be delivered by the onboard power management circuit. I image 30-50 mA is fine in most systems.

    As for the I2C question, The MSP can support many slave devices. The slave address register would just need to be updated in between communication with each slave, so this 1 register can support potentially dozens of slaves.

    The issue you will run into is that the FDC2214 only offers 2 different Slave addresses. So, more than 2 of these devices on the same I2C line will cause collisions and inhibit communication. You would have to work with some sort of enable like Bruce suggested.

    Thanks,
    JD
  • Hi JD,

    Thank you very much for the reply.

    For the power supply, my thought was that I would use the power supply from the MSP430 MCU if the MCU can deliver more than 20 mA, which will simplify its circuit.  Each FDC2214 consumes 2.1 mA, 8 FDC2214s require 16.8 mA, less than 20 mA. 

    As for the number of I2C devices (FDC2214) that can be put on the MCU's I2C bus, I spent a good time on the subject and studied both the FDC2214 and the MCU datasheets. My understanding is that the MCU is capable of handling 8 FDC2214 theoretically without problem.  The FDC2214 has 7-bit slave address plus an 8-bit pointer register  for setting the register addresses, meaning it has 15-bit address capability. The FDC I2C address (0X2b) is a base address when ADDR pin on high. The MCU can use 0X2b as a base address and the 7-bit slave address as an offset address to communicate with 128 FDC2214s. 

    This is my first time to program in address level to use one USB MCU to control multiple devices, so my understanding could go wrong.  I do have some LabVIEW experiences in synchronizing multiple devices, e.g. motors, valves and VFDs. I could use LabVIEW to synchronize the 8 FDC2214EVMs by directly using the 8 USB MCUs rather than 1 separated-USB MCU to control 8 separated-FDC2214s, this can be done by hooking up the 8 USB MCU to a USB HUB and then use a computer to control the 8 FDC via the USB HUB. However, I would like to try 1+8 option this time for a better control practice. 

    Any further suggestions are welcome.

    Regards,

    Gu

  • I'm not going to discourage anyone from experimenting, but I suggest you draw this out on paper before building anything. Consider: What (addressing) bit string will you send on the I2C bus to set the CONFIG register for device #3? (Hint:It probably looks identical to what you would send to #1, #5, and #7.)

    The F5528 does supply 2x I2C buses, so (2x2) devices is not difficult. You can also implement I2C in software (not easy, but do-able) to provide many more buses at 2x devices each.

    If you don't need your data very fast, you can use the Shutdown (SD) pin as a form of Chip Select. It takes 2ms to come out of Shutdown mode (Sec 8.6), plus you have to re-configure the device each time. Data sheet Sec 10.2.5 describes some of the timing.

    Maybe you mean something different saying "power supply from the MSP430 MCU", since the MCU chip is not normally considered a "power supply". It is possible to power certain devices from a GPIO pin, though 20+mA total is near the limit. I suspect it will actually be simpler logistically to run all the devices from the board power supply rail (the same one powering the MCU). 8x devices + MCU is well within USB power limits.

    [Edit: Clarified question.]

  • Hi Bruce,

    Thank you for your suggestion.

    For the single MSP430F5528 to control multiple FDC2214, yes, it is a good idea to draw it out on paper before building it, will do 

    I need fast data collection, which is the main reason that I want just use single channel from each FDC2214 and use 8 FDC2214s to make 8 differential channels. A shutdown mode will not be an option. 

    For the power supply, FDC needs 3.3V, USB is 5V, a power regulator and decompiling circuit are required for using USB or a separated power supply to power the FDCs. using the 3.3V can be easier for a prototype.

    Best regards,

    Gu

**Attention** This is a public forum