I have an STM32F469 discovery kit that I'm trying to get to work with the WICED stack. There seems to be some limited support for the STM32F469_479 processor, but it doesn't seem to have been fully implemented. I am trying to add support, but have run into two problems:
1.) The PLL constants. Using a sample STM32F469 discovery program from ST, I determined that the PLL constants should be the following:
#define PLL_M_CONSTANT ( 8 )
#define PLL_N_CONSTANT ( 360 )
#define PLL_P_CONSTANT ( 2 )
#define PLL_Q_CONSTANT ( 7 )
#define PLL_R_CONSTANT ( 6 )
However, when I set PLL_M to 8, the board is very unstable and seems to crash after a couple of seconds. Setting it to 9 works, but then I suspect that system clock timing may be slightly off.
2.) The WIFI module I am using is an Inventek 43340 SDIO module that I am inserting into the microSD slot of the discovery board. Using the platform files from Inventek as a base (most of the GPIO pins are the same), I believe that I have all of the GPIO pins mapped correctly for this to work, but it gets stuck in this loop:
result = wwd_bus_sdio_download_firmware( );
if ( result != WWD_SUCCESS )
/* either an error or user abort */
/* Wait for F2 to be ready */
loop_count = 0;
while ( ( ( result = wwd_bus_read_register_value( BUS_FUNCTION, SDIOD_CCCR_IORDY, (uint8_t) 1, &byte_data ) ) == WWD_SUCCESS ) &&
( ( byte_data & SDIO_FUNC_READY_2 ) == 0 ) &&
( loop_count < (uint32_t) F2_READY_TIMEOUT_MS ) )
(void) host_rtos_delay_milliseconds( (uint32_t) 1 ); /* Ignore return - nothing can be done if it fails */
if ( loop_count >= (uint32_t) F2_READY_TIMEOUT_MS )
/* If your system fails here, it could be due to incorrect NVRAM variables.
* Check which 'wifi_nvram_image.h' file your platform is using, and
* check that it matches the WLAN device on your platform, including the
* crystal frequency.
WPRINT_WWD_ERROR(("Timeout while waiting for function 2 to be ready\n"));
/*@-unreachable@*/ /* Reachable after hitting assert */
That last if statement never actually runs; the system seems to crash before the loop_count can get high enough.
Any ideas? I have tried using both SDK 4.1 and 3.7, with no luck.