LMS7002M custom board bring-up

Hello,
We have built a custom board with the LMS7002M chip and are trying to establish SPI communication with the chip.
For the same we are using the drivers provided on git. The SPI interface is running at around 8MHz and has been validated independent of the LMS interface.
The chip version is being read as the first step. The procedure we are following is:

  1. LMS_RESET (low followed by high)
  2. read 0x002F register
    We are unable to read anything.
    Questions:
  3. Any help on getting this first step going
  4. We are feeding a 50MHz clk on the rx_pll_clk pin of the LMS. Is the clock supposed to be fed on some other line? How does the LMS chip choose this clock for the uController running the SPI interface
  5. How is the 3 wire or 4 wire interface chosen?

Thank you for time,

We are facing similar issues . Use LMS7002M_set_spi_mode(lms,4);
to select 4 wire mode .

Hi @EnthuMan,

SPI is 4 wire after reset.
I would suggest to refer to LimeSDR-USB or LimeSDR-Mini schematics.
Clock should be fed to xoscin_tx (E5) and xoscin_rx (AM24) pins.
What is CORE_LDO_EN (pin U33) level?

Could you paste SPI bus waveform with SCLK, SDIO, SDO SEN signals captured, please.

Hello Zack,
Thank you for your help.
The waveforms as measured on the board are as follows:
Legend:
CH1 (yellow) is chip select
CH2 : nothing
CH3 (green) is MOSI
CH4 (purple) is SCLK


The above image is the capture of the complete communication (lms_reset, lms_set_spi_mode and lms_spi_reg_read with the individual sections enclosed in red, blue and mustard rectangles respectively).
We zoomed in and verified that the SPI settings were (mode 0) correct. Please ignore the difference in voltage levels (they are before and after a level shifter). As of now we are feeding a 50MHz clock (2.5V level) to the xoscin_rx only (we understood that internally the clock can be shared with tx).
The SDIO line remains high all the time.

The zoomed waveforms are the following:
lms_reset and lms_set_spi_mode
IMG_20190412_190503%20(Small)

lms_spi_read_reg(0x002f) is three instructions (3 x 32clock cycles)
the first two
IMG_20190412_190517%20(Small)

the last one being
IMG_20190412_190528%20(Small)

Our VDDIO_LMS is set to 2.5V and CORE_LDO_EN is pulled high and set to 2.5V.

Question: What should be the current consumption of the LMS the first time without any programming or any EEPROM or anything at all? We are seeing close to zero current (read as: very little)

Thanks again,

It should consume in tents of mA. So, it looks like this is your issue. Are you sure LMS7002M is soldered properly?

You were right, there was a soldering problem. Thanks for your help.