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.

CDCEL925: Programming the CDCEL925 with USB2ANY

Part Number: CDCEL925
Other Parts Discussed in Thread: USB2ANY, , LMK03318

Tool/software:

Hi,

I would like to be able to program CDCEL925 using the the I2C protocol with the USB2ANY. I am using the USB2ANY since my end application uses the LMK03318 and CDCEL925. The LMK03318, I think, can be programmed with the TICS Pro. I have been told in a different thread that I may need to write my own software for programming the CDCEL925 with the USB2ANY. Can you please give me some pointers to get started?

Thanks. 

  • Hi,

    I reviewed the CDCEL925 EVM instructions. Looks like it should be possible to program the CDCEL925 on my PCB with the EVM board.

    Can you please confirm this?

    Prasoon

  • This wouldn't work as-drawn because the LMK03318 needs 3.3V I2C lines, while CDCEL925 needs 1.8V. You'd need to wire the 3.3V USB2ANY I2C bus to the on-board level shifter U21, and lift the FT2232 pins off the pads (FT2232 is QFP, I think this is sufficient). But with corrections made for the voltage level translation, I think you could control both devices from the same bus master.

    I think you will have trouble making the USB2ANY program the CDCEL925, unless you manage the bytes to be sent in software entirely separately from TICS Pro. USB2ANY software allocates handles to whoever requests the resource first; there's no way for TICS Pro + any other application to use the same handle at the same time. You'd have to have TICS Pro regularly release and re-acquire the handle, which can be done through automation APIs included with TICS Pro; but it's a lot of work and kind of a pain. You'd likewise need to acquire the handle, configure the I2C lines, manage the bytes and their ordering in the appropriate I2C APIs, and release the handle when done, entirely in separate software, for the CDCEL925 bus transactions.

    You could also elide TICS Pro entirely and program registers using purely custom software - this eliminates the need to release and re-acquire USB2ANY handles in whatever control software you plan to use. But that's a lot of work.

    Regardless of how you choose to approach the problem, I have a few examples of what needs to be done to get you started below; this assumes knowledge of the USB2ANY SDK and the API manual included with it:

    Example showing how to use SPI APIs (not exactly how I2C works, but it shows how to wrap APIs in python):
    https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1025934/lmx2594evm-serial-control-through-python 

    Deep Dive on I2C transactions in USB2ANY:
    https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1389829/faq-usb2any-multibyte-i2c-transactions 


  • Hi Derek,

    Thanks for the great explanation!!

    How about, in my end application, I provision for 2 separate I2C buses, one for the LMK03318 and one for CDCEL925. The I2C for LMK03318 works at 3.3V, whereas the I2C for CDCEL925 works at 1.8V. For programming the LMK03318 I use, either

    • LMK03318 EVM + TICS Pro, or,
    • USB2ANY dongle + TICS Pro

    For programming the CDCEL925, I use TI Pro Clock and CDCEL925 EVM and tap off the SDA/SCL as shown in the diagram above?

    Thanks,

    Prasoon

  • I think that would work.