5 Replies Latest reply on Jun 20, 2017 1:31 AM by DaBa_2244756

    BCM43438 pll not starting

    ivly_2140721

      We are developing custom board with STM446 and BCM43438. Use WICED SDK v5.0.0.
      Device initialization starting, backplane regs write/read succefuly, ALP starting, firmware download process ok, and PLL do not starting.
      Process run in loop waitnig for PLL status bit is set, but this does not happen. Is it becouse BCM43438 firmware don't started after downloading?

       

      Any answer is welcome!

       

      Thanks in advance,

      Best regards.

        • 1. Re: BCM43438 pll not starting
          DaBa_2244756

          Hi.

          First must ensure firmware data sent OK.  Find wiced debug code to read saved data and enable it.

          BR

          Darius

          • 2. Re: BCM43438 pll not starting
            ivly_2140721

            Thanks Darius!
            Where can I find wiced debug code to read saved data and enable it?

            • 3. Re: BCM43438 pll not starting
              DaBa_2244756

              It in same place, where writing. Sorry currently I cant tell you this place, not have wiced sdk.

              Try find in forum with similar problem.

              BR

              Darius

              1 of 1 people found this helpful
              • 4. Re: BCM43438 pll not starting
                ivly_2140721

                Use SPI interface.
                I wrote a test function that writes about 10000 times to registers 0x18-0x1B (write uint32_t value with +=0x11111111 increment) and reads the value back. It works correctly, no faults.

                • 5. Re: BCM43438 pll not starting
                  DaBa_2244756

                  if actual, this function

                  static wwd_result_t download_resource( wwd_resource_t resource, uint32_t address )

                   

                   

                  This test code from older sdk

                  #if 1

                          {

                              /* TODO: THIS VERIFY CODE IS CURRENTLY BROKEN - ONLY CHECKS 64 BYTES, NOT 16KB */

                              /* Verify download of image data */

                              //uint8_t tmpbuff[64];

                              uint8_t tmpbuff[WWD_BUS_MAX_TRANSFER_SIZE];

                              memset(tmpbuff, 0, WWD_BUS_MAX_TRANSFER_SIZE);

                              if ( WWD_SUCCESS != ( result = wwd_bus_transfer_bytes( BUS_READ, BACKPLANE_FUNCTION, address & BACKPLANE_ADDRESS_MASK, transfer_size, (wwd_transfer_bytes_packet_t*)tmpbuff ) ) )

                              {    free(ram_buff);

                                  return result;

                              }

                              if ( 0 != memcmp( tmpbuff, ram_buff, (size_t) transfer_size ) )

                              {

                                  /* Verify failed */

                                  WPRINT_WWD_ERROR(("Verify of firmware/NVRAM image failed"));

                              }

                          }

                  #endif /* if 0 */