SPI uart i2c external flash with BRCM20737 SoC

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi There,

     We are trying the 20737 SoC solution by now. According to the product design, we have to use all of the SPI1/SPI2/UART/UART2/I2C and external flash. The following picture is the pin assignment on the system.

    I have go through the following pages on this topic:

    BCM20736S I2C, PUART and SPI comms

    But the pin assignment seems complicated.Please help to review if it is doable.

    Another question is that, if we use 20737 SiP module, any possible to use the I2C interface?

  hw2-review.png

0 Likes
1 Solution
Anonymous
Not applicable

Yes on the SiP the i2c is available (on the BCM20736S and BCM20737S) for external use as well. There are different i2c addresses for the internal EEPROM v/s external devices.

View solution in original post

15 Replies
Anonymous
Not applicable

Any expert can help on this?

0 Likes
Anonymous
Not applicable

I'm not an expert. But I have a question about your schematic.

Is DEV4 master of SPI2?

The combination of P26, P24, P27 and P01 can be used for only slave mode.

I have another question about SiP module.

It has internal EEPROM. In this case, will you still use SFLASH?

0 Likes
Anonymous
Not applicable

Dmiya,

    All the dev here are slave mode which means that the 20737 working on master mode( uart/spi/i2c..)

    I am working on the SoC solution. We need the I2C bus to connect external components. The SiP module seems can't have the I2C interface since it is connect to the internal EEPROM directly.

0 Likes

Correct.  On the SIP module, the I2C bus is not available as it is dedicated to the internal EEPROM.

The Mass Market team in Asia will be helping you with the schematic related GPIO mapping/assignment questions.

boont roychang j.t

0 Likes
Anonymous
Not applicable

Thanks for the replay.

Just checked the wiced sense. It is strange that wiced sense use BCM20737s( Sip module). But it do use i2c but to connect the sensors. Do I missed something on this?  Since the doc said that the sip module can't use I2C bus.

0 Likes

I will ask one of the members on the WICED Sense design team to respond to how they enabled sensors on the I2C bus that is internally connected to the EEPROM on the SIP module.  They must be doing this using different I2C slave addresses?

j.t myliu nsankar

0 Likes
Anonymous
Not applicable

Yes on the SiP the i2c is available (on the BCM20736S and BCM20737S) for external use as well. There are different i2c addresses for the internal EEPROM v/s external devices.

Anonymous
Not applicable

Nsankar,

      From the wiced sensor code, only normal NVRAM interface called by bleprofile_WriteNVRAM and no special I2C address specified in it. And the I2C address is defined by the slave device but not the I2C controller.

     The sensor also didn't include the i2c patch to access the i2c device. It use normal cfa_bsc_OpExtended but not the i2cm_write and so on interface.

      I am confused on this.

      If 20737S ( with EEPROM inside) can use the I2C bus in application, It will more convent to design the product and save a lot of effort to try the gpio combinations for SPI2 and UART2.

0 Likes
Anonymous
Not applicable
read_status = cfa_bsc_OpExtended(data, numByteToRead, &regAddr, sizeof(uint8_t), HTS221_I2C_ADDRESS, I2C_SLAVE_OPERATION_READ);

From this example you can see that you can specify the i2c address in the API. Here the HTS221_I2C_ADDRESS is the i2c slave address that the HTS221 sensor is designed in the hardware to

0 Likes
Anonymous
Not applicable

Mwf,

     Thanks and will wait the response.

0 Likes

Nsankar just responded and confirmed

"Yes on the SiP the i2c is available (on the BCM20736S and BCM20737S) for external use as well. There are different i2c addresses for the internal EEPROM v/s external devices."

0 Likes
Anonymous
Not applicable

Mwf,

     Yes got the point but still have some confused point on this:

From the wiced sensor code, only normal NVRAM interface called by bleprofile_WriteNVRAM and no special I2C address specified in it. And the I2C address is defined by the slave device but not the I2C controller.

     The sensor also didn't include the i2c patch to access the i2c device. It use normal cfa_bsc_OpExtended but not the i2cm_write and so on interface.

0 Likes
Anonymous
Not applicable

I'm not tested but how about below?

- UART: P0(TX) and P2(RX)

- SPI2: P24(CLK), P4(MOSI), P25(MISO) and Pxx(CS)

For SPI2 master mode, any GPIO can be used as CS.

Anonymous
Not applicable

Dmiya,

     Really thanks. I missed the mast and slave mode. Your configurations seems reasonable. Will dig more detail in the doc and your configurations to know if it can work.

0 Likes

- UART: P0(TX) and P2(RX)

- SPI2: P24(CLK), P4(MOSI), P25(MISO) and Pxx(CS)

This configuration will not work as in WICED Smart™ Hardware Interfaces, it elaborates

SPIFFY2 signals and peripheral UART RX signal must be on the lower pad bank (P0 through P7) or on the upper pad bank (P24 through P39). Thus, SPIFFY1 or SPIFFY2, and peripheral UART RX, cannot be on two different pad banks.


When both PUART and SPI2 are used in application, you need to make sure they are in the same pad bank.