I am trying to use parts of code from WICED SDK in my own project to use Murata's LBWA1KL1FX (CYW43364) module with STM32H743 MCU. My goal is to have an access point which could comunicate with PC or mobile apps via TCP and UDP packets. I have similar project working with Broadcom LBWA17DZX6 (SPI bus) and STM32H743, so I need to update it to work with CYW43364 (SDIO bus). I am using FreeRTOS.
All the read register functions as well as wwd_bus_write_wifi_firmware_image( ) function returns with response WWD_SUCCESS, so I assume this means my electrical connection of SDIO is working well.
But I am now stuck in initialisation of the chip, waiting for High speed clock (PLL as I understand) to start up: Code reads SDIO_CHIP_CLOCK_CSR (0x1000E) register from wifi chip and and waits for SBSDIO_HT_AVAIL (0x80) bit to become set, but it gets 0x40 until it times out. This is in a place where this comment is writen:
"If your system times out here, it means that the WLAN firmware is not booting.
* Check that your WLAN chip matches the 'wifi_image.c' being built - in GNU toolchain, $(CHIP) makefile variable must be correct."
I doublechecked my sources and I think I got the fw files right:
Firmware image is a byte array (size 383110 bytes) made from:
Chip constants file is copied from:
Nvram image (size 625 bytes) is from:
So my question is: what other things (aside from wrong fw image) might have gone wrong to get me in this place. For example:
1. Are there any other files I need to update when going from Broadcom LBWA17DZX6 (CYW43362 - SPI bus) to Murata's LBWA1KL1FX (CYW43364 - SDIO bus)?
2. Is there a diffece in firmware image or nvram image when using muRata vs Broadcom module with CYW43364?
3. Nvram image is stored as an array (static const char wifi_nvram_image). Is there any numbers that needs to be modified in that array before writing it to the chip?
4. What are minimal needed connections to get the module on Murata's evaluation board (LBWA1KL1FX-TEMP) up and running?
5. Is the sleep clock (LPO) mandatory to get the chip running? (I can't see how can it be accessed on Murata's i.MX Interconnect boards that I am using now)