8 Replies Latest reply on Sep 30, 2016 4:43 PM by mifo

    snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure

    kjensen

      I am using WICED 3.5.2, with the matching muRata patch from https://my.murata.com/en/web/wifi_sn8000/home applied in the WICED Eclipse IDE.

       

      My target is a standard muRata SN8000UFL EVK board with the STM32F205 based host and an SN8000UFL module ( mounted to the eval board with one end in the shape of an SD card).  The additional ribbon cable between this board and the STM32F205 host board is installed.

       

      Creation of a make target called "snip.scan-SN8000x-ThreadX-NetX-SDIO download run" seems to build and run correctly.  Virtual serial port output of this code running on the STM32F205 board seems to indicate proper operation and can see the various hot spots near my office. This output is shown below:

      SN8000EVK-SDIO.png

      So far, so good.

      However, if I create and try to deploy a make target on the same hardware called "snip.scan-SN8000x-ThreadX-NetX-SPI download run", I get a successful build and download, but it looks like the code fails to initialize the WiFi module.  Virtual serial port output of this code is shown below:

       

      SN8000EVK-SPI.png

      No further output is seen on this serial connection.

       

      Does anybody know if this is normal expected behavior when using SPI instead of SDIO for this EVK hardware, or is this perhaps a bug in the WICED example code?  I'd really like to get SPI working, as that is how I'd like to talk to the module in the pin-constrained design we eventually want to use the WiFi module in.

       

      Thanks!

      -Kurt

        • 1. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
          rash

          In order to enable the SPI interface on the radio, pin stripping needs to be setup correctly at reset.

          Please check the schematics of BCM94343W_AVN for availability of setting the SPI interface on BCM94343W radio.

          We encourage SDIO interface to be used since the SDIO interface is mainly used on SVT testing.

          • 2. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
            kjensen

            Thank you for your kind reply.  This does help me but does not quite answer my question.

             

            I have done some looking into this myself.  Here is what I have found so far:

             

            The pin assignments for the muRata SN8000 module in gSPI mode are clearly shown in the data sheet for that module:

            SN8000gSPI.PNG

             

            The BCM43362 data sheet indicates that strapping the GPIO_0 pin to a high level is needed to use the gSPI interface.  This is driven by the STM32F205 PB0 pin on the SN8000EVB.

             

            Looking at the schematic of the SN8000SDIOEVB and the SN8000SDIO Card containing the WiFi module, I find the following connections between the module and the host STM32F205:

                                                                                                        

            SDIO mode Pin LabelSPI mode Pin LabelSN8000 Pin numberSTM32F205 Port/Pin
            DATA_0MISO35PC8
            DATA_1IRQ34PC9
            CLKSCLK36PC12
            DATA_3CS38PC11
            CMDMOSI37PD2
            GPIO_0GPIO06PB0

             

            However, if I have a look in WICED-SDK/platforms/SN8000x/platform.c you see the following definitions for the pin mapping:

            /* Wi-Fi gSPI bus pins. Used by WICED/platform/STM32F2xx/WWD/wwd_SPI.c */ const platform_gpio_t wifi_spi_pins[] = {     [WWD_PIN_SPI_IRQ ] = { GPIOC,  9 },     [WWD_PIN_SPI_CS  ] = { GPIOC, 11 },     [WWD_PIN_SPI_CLK ] = { GPIOB, 13 },     [WWD_PIN_SPI_MOSI] = { GPIOB, 15 },     [WWD_PIN_SPI_MISO] = { GPIOB, 14 }, };

            Here, you can see that the pin mapping in this patch of the SDK code does not match the pin mapping on the SN8000SDIOEVB for the CLK, MOSI, and MOSI pins.  The strap pin GPIO0 appears to me mapped correctly:

            /* Wi-Fi control pins. Used by WICED/platform/MCU/wwd_platform_common.c  * SDIO: WWD_PIN_BOOTSTRAP[1:0] = b'00  * gSPI: WWD_PIN_BOOTSTRAP[1:0] = b'01  */ const platform_gpio_t wifi_control_pins[] =     {     [WWD_PIN_POWER      ] = { GPIOC,  2 },     [WWD_PIN_RESET      ] = { GPIOC,  1 }, #if defined ( WICED_USE_WIFI_32K_CLOCK_MCO )     [WWD_PIN_32K_CLK    ] = { GPIOA,  8 }, #else     [WWD_PIN_32K_CLK    ] = { GPIOA, 11 }, #endif     [WWD_PIN_BOOTSTRAP_0] = { GPIOB,  0 },     [WWD_PIN_BOOTSTRAP_1] = { GPIOB,  1 }, };

            Next I will try changing these pin assignments in the code to match the SN8000 EVB and see if I have any success.

            • 3. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
              mifo

              Thanks for the help rash

               

              I am also adding ghouse from Murata as someone from his team may be able to assist as well.

              • 4. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
                kjensen

                Looking at the STM32F20xxx data sheet, it seems that this mapping on the EVK board supports the alternate function mapping for SDIO, but not for SPI.  Looks like if I want to make this work I will need to get my knife and soldering iron out and do some cut and jumper work.

                • 5. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
                  ghouse

                  rash is correct, Although SPI pins are brought out we don't recommend to use those as base interface. We recommend that you switch to SDIO interface. We apologize about the inconvenience with this issue.

                  1 of 1 people found this helpful
                  • 6. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
                    kjensen

                    Unfortunately, I do not have an SDIO port available in my end application design, but there is SPI available.

                    Even though you may not recommend SPI, the SN8000 data sheet does advertise this in section 3.5 as a supported interface.

                    So, is it fair to say that this SPI interface to this module is supported, but not recommended?

                     

                    rash mentions that SDIO is preferred because of some test coverage, presumably in module production.  Is it correct to say that the SPI interface is untested, or is it just tested to a lesser degree than the SDIO interface?  Please elaborate regarding the test coverage of these two interfaces.

                     

                    -Kurt

                    • 7. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
                      kjensen

                      Success!!  I just got the snip.scan-SN8000x-ThreadX-NetX-SPI-debug download run make target to work properly with this hardware using the pin assignments that came with WICED-SDK/platforms/SN8000x/platform.c without modification.  Three trace cuts and 3 jumpers for MOSI, MISO, and SCLK signals were required as seen in the photo here:

                      SN8000EVK SPI Connection.jpg

                       

                      1 of 1 people found this helpful
                      • 8. Re: snip.scan-SN8000x-ThreadX-NetX-SPI download run ... Failure
                        mifo

                        Thanks for sharing your work around with the community kjensen !

                         

                        ghouse