Interfacing External Flash with Broadcom BCM943341

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

cross mob
Anonymous
Not applicable

Hi.

I am trying to verify the external flash interfaced to the BCM943341 module (WICED 3.5.2).

Here is my pin configuration:

Module Pin 9 is SPI_MOSI

Module Pin 10 is SPI_MISO

Module Pin 11 is SCLK

Module Pin 12 is Chip Select

I have repurposed test/diagnostics/spi to read the JEDEC id. I also probed using the logic analyzer and I don't see SCLK out of pin 9.

I am thinking I am have messed up my SPI platform definitions. Please pass on any test application, debug, and platform files.

Thanks!

Regards,

Manish

This is in my platform.h header file:

/* SPI flash is present */

#define WICED_PLATFORM_INCLUDES_SPI_FLASH

/* SPI Flash. Implemented by Inventek Systems ... */

#ifdef WICED_PLATFORM_INCLUDES_SPI_FLASH

//#pragma message "SPI Flash included in platform"

//#define WICED_PLATFORM_INCLUDES_SPI_FLASH

#define WICED_SPI_FLASH_CS            ( WICED_GPIO_8 ) //( WICED_GPIO_21 )

#define WICED_SPI_FLASH_MOSI          ( WICED_GPIO_5 ) //( WICED_GPIO_18 )

#define WICED_SPI_FLASH_MISO          ( WICED_GPIO_6 ) //( WICED_GPIO_17 )

#define WICED_SPI_FLASH_CLK           ( WICED_GPIO_7 )//( WICED_GPIO_19 )

#endif

This is in my platform.c header file:

#ifdef WICED_PLATFORM_INCLUDES_SPI_FLASH

/* SPI peripherals.  Used for Serial FLASH */

const platform_spi_t platform_spi_peripherals[] =

{

    [WICED_SPI_1]  =

    {

        .port                  = SPI1,

        .gpio_af               = GPIO_AF_SPI1,

        .peripheral_clock_reg  = RCC_APB2Periph_SPI1,

        .peripheral_clock_func = RCC_APB2PeriphClockCmd,

        .pin_mosi              = &platform_gpio_pins[WICED_SPI_FLASH_MOSI],

        .pin_miso              = &platform_gpio_pins[WICED_SPI_FLASH_MISO],

        .pin_clock             = &platform_gpio_pins[WICED_SPI_FLASH_CLK],

        .tx_dma =

        {

            .controller        = DMA2,

            .stream            = DMA2_Stream5,

            .channel           = DMA_Channel_3,

            .irq_vector        = DMA2_Stream5_IRQn,

            .complete_flags    = DMA_HISR_TCIF5,

            .error_flags       = ( DMA_HISR_TEIF5 | DMA_HISR_FEIF5 | DMA_HISR_DMEIF5 ),

        },

        .rx_dma =

        {

            .controller        = DMA2,

            .stream            = DMA2_Stream0,

            .channel           = DMA_Channel_3,

            .irq_vector        = DMA2_Stream0_IRQn,

            .complete_flags    = DMA_LISR_TCIF0,

            .error_flags       = ( DMA_LISR_TEIF0 | DMA_LISR_FEIF0 | DMA_LISR_DMEIF0 ),

        },

    }

};

#endif

0 Likes
1 Solution
Anonymous
Not applicable

This is resolved now and I can read the JEDEC.

View solution in original post

0 Likes
1 Reply
Anonymous
Not applicable

This is resolved now and I can read the JEDEC.

0 Likes