BCM43438 pll not starting

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

cross mob
ivly_2140721
Level 1
Level 1

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.

0 Likes
5 Replies
DaBa_2244756
Level 5
Level 5
25 likes received 10 likes received 10 likes given

Hi.

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

BR

Darius

0 Likes

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

0 Likes

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

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.

0 Likes

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 */

0 Likes