Wi-Fi Combo Forum Discussions
Is There any tutorial explaining to do that?
Hallo,
The following is our developmenet environment:
Hardware:
Board: STM32F769 Discovery
WiFi Module: Murata-1DX (CYW4343w)
Software:
IDE: Eclipse + CubeMX
WiFi Driver: WHD (Wi-Fi Host Driver (WHD): Main Page)
The Problem:
Command response timeout for both CMD3 and CMD52 (have not tried other commands).
My diagnosis at the moment is that the SDIO card is not properly initialized because the codes generated by CubeMX sends CMD0, CMD8, CMD55, then ACMD41. It can initialize a memory card but not the SDIO card. E.g, the CMD5 it not sent to the SDIO card.
I did not find the implementation of the Init Sequence in WHD. but I have found in the WWD the host_platform_sdio_enumerate () and also the initialization flow in the SDIO spec. The sequence in the flow seems much more complicated than the SDIO enumeration in WWD. My question is which one I should use as reference for implementation? In below, I will post both the flow in WWD and in Specs.
Init flow in WWD (CMD0 => CMD5 =>CMD3 => CMD7)
{
wwd_result_t result;
uint32_t loop_count = 0;
uint32_t data = 0;
do
{
/* Send CMD0 to set it to idle state */
host_platform_sdio_transfer( BUS_WRITE, SDIO_CMD_0, SDIO_BYTE_MODE, SDIO_1B_BLOCK, 0, 0, 0, NO_RESPONSE, NULL );
/* CMD5. */
host_platform_sdio_transfer( BUS_READ, SDIO_CMD_5, SDIO_BYTE_MODE, SDIO_1B_BLOCK, 0, 0, 0, NO_RESPONSE, NULL );
/* Send CMD3 to get RCA. */
result = host_platform_sdio_transfer( BUS_READ, SDIO_CMD_3, SDIO_BYTE_MODE, SDIO_1B_BLOCK, 0, 0, 0, RESPONSE_NEEDED, &data );
loop_count++;
if ( loop_count >= (uint32_t) SDIO_ENUMERATION_TIMEOUT_MS )
{
return WWD_TIMEOUT;
}
} while ( ( result != WWD_SUCCESS ) && ( host_rtos_delay_milliseconds( (uint32_t) 1 ), ( 1 == 1 ) ) );
/* If you're stuck here, check the platform matches your hardware */
/* Send CMD7 with the returned RCA to select the card */
host_platform_sdio_transfer( BUS_WRITE, SDIO_CMD_7, SDIO_BYTE_MODE, SDIO_1B_BLOCK, data, 0, 0, RESPONSE_NEEDED, NULL );
return WWD_SUCCESS;
}
Init flow in SDIO specification
Show LessIn WICED/platform/MCU/STM32F4xx/platform_init.c:
The code in platform_init_mcu_infrastructure() is very strange.
platform_rtc_init() is guarded by #ifndef WICED_DISABLE_MCU_POWERSAVE,
which means RTC is not initialized if define WICED_DISABLE_MCU_POWERSAVE.
i.e Define WICED_ENABLE_MCU_RTC does not work if WICED_DISABLE_MCU_POWERSAVE is set.
This looks like a bug.
Show LessWe are using a BCM943907 NetX Duo (basically a N07 module containing the BCM943907 and a BCM20707) and have problems when obtaining a DHCP from an external DHCP server.
We used the snip.http_server_sent_events, modified the SSID and the PSK to match our access point and added a wiced_framework_reboot() after wiced_network_up(). So the app boots up, joins the SSID, obtains the IP address and then reboots again.
With SDK 4.1.0 everything works well and the typical time it takes to get an IP address from the external DHCP server is about 1 to 2 seconds.
With SDK 6.1.0 and 6.2.1 it never takes less than 5 seconds and even worse it sometimes takes 15 seconds or longer. Since the default timeout is 15 seconds it often cannot get an IP address. Even increasing the timeout to 30 seconds sometimes lead into not getting an IP address.
Our suspicion is that the newer SDKs introduced some network instability because we do see networking issues even after getting an IP address.
Since this worked really well in SDK 4.1.0 there has to be a software fix for this.
Can anyone help us out here?
Thanks,
Stefan
Show LessHi.
We need to develop our own custom WiFi stack for a specific security application. We need to be able to bypass the WiFi stack and interface directly with the transceiver to do the following:
>> Send and receive raw data frames (we will create our own MAC headers).
>> Change channels.
>> Change data rates.
>> Setup Rx packet filters.
We believe that the CYW43340, CYW43012 and CYW4373E will fit our requirements (we also need Bluetooth BR + EDR + BLE),
We can see in the “snip.packet_filter” example code with some basic function for receiving Layer 2 frame data, but there aren’t any examples on how to send data in transceiver/monitor mode.
Can you please send me the reference manual with the SDIO commands that we can write our own functions with the above modules on our own microcontroller? These modules appear to meet our low power requirement and we will be ordering high volumes.
Kind regards,
Andrew
Bluetooth (BR + EDR + BLE),
Show LessThere is the following description on the third page of WICED-Resource-Filesystem.pdf
"It is expected that the data stored in the filesystem is not to be changed over the lifecycle of the device."
Is it okay to think that there is no change due to the vulnerability in Resource Filesystem (filesystem.bin)?
*"Resource Filesystem" is recognized as "filesystem.bin", but if it is incorrect, please point it out.
Show LessHello,
We are in the bringup process of a new design.It is based on Laird EWB module - STM32F412 + CY4343W architecture.
Everything works well on the dev kit, however on the actual platform, access to the 'WiFi part' of the 4343 either hangs or returns error code.
e.g. - a call to wwd_wifi_get_mac_address() fails.
Tracing the code wwd_wifi_get_mac_address() --> wwd_sdpcm_get_iovar_buffer() -> internal_host_buffer_get() shows that the problem is with some allocation in the following command:
status = nx_packet_allocate( pool, nx_buffer, 0, timeout_ms ); // wwd_buffer.c, line 148 (SDK 6.4)
it returns status==7 which translates to NX_PTR_ERROR.
The very same code works on the dev kit....
One other thing worth to mention - 'BLE part' of the 4343W works flawlessly.
What can be the reason/s for the failure of all 'WiFi calls' on the proprietary hardware??
Thanks for any advice.
I've got a Raspberry Pi 4B whose Bluetooth chip is CYW43455 I think.
Now the problem is when I try to pair the Raspberry Pi,
I just cannot find its Bluetooth through settings->Bluetooth of iOS,
however, it works all well with Android.
PS, I can see the Bluetooth of iOS in the Raspberry Pi's device list,
also I can connect to iOS successfully.
So, Why I can not see the Pi's Bluetooth in iOS?
Is CYW43455 designed to be not discoverable to iOS?
Show LessHi,
I was trying to change flash memory layout for platform MurataType1LD and flash it using sflash_write to external flash.
Earlier, I have done the same for CYW943907AEVAL1F and didn't face any issue. So, following the same approach I did changes for MurataType1LD.
I created normal_image_defines.mk at location "43xxx_Wi-Fi/platform/MurataType1LD/", containing all the addresses for the components
(bootloader, DCT1, DCT2, LUT and APPS) and did changes in wiced_apps.mk in order to get the new SECTOR_ADDRESS, SECTOR_START and SECTOR_COUNT
for writing them using the "sflash_write_file" command.
Also I found that MurataType1LD is using standard_platform_targets.mk for flashing the image to target and it already has some target definitions for
packaging and downloading bootloader, DCT and application to some predefined address (addresses referenced from WICED/platform/MCU/STM32F4xx) and not
using sflash_write. I tried replacing those target definitions with some custom target definitions which I created using sflash_write. But this fails
to download the image.
Can you please suggest some way to make it work? Is there something wrong in the approach?
Few more queries:
1) Is the predefined addresses corresponds to Internal flash?
2) If yes, how can I write bootloader, dct and all other apps it to external flash (using sflash_write?)
Show LessHi,
We have ported 43455 WICED SDK to NXP FRDM-K64 platform taking NXP's port for IMXRT1020 as a reference. Using LWIP as TCP/IP stack and running Amazon FreeRTOS.
Our use case is as follows:
- Device configures it self as an open AP on channel 1.
- Device starts a DHCP server.
- An Android or IOS mobile connects with the device AP.
- Data exchange takes place
- Device turns off the AP mode and moves to Station mode.
We are observing the following issue:
- After device is configured as open AP on channel 1, mobile tries to join the network. Network join is successful and mobile gets IP address from the Device.
- Mobile after a few seconds, drops the connection by itself and then reconnects with the AP. This loop goes on for ever.
- This issue is not reproduced on all mobile variants, Older phones (moto g series, Nokia 6.1 plus etc) seem to be having this issue but not phones like Samsung M31s or VIVO/Oppo/RealMe.
- On the mobile phones that do have this issue we tried forgetting all the known APs so that the Mobile does not disconnect because of availability of better network, but that did not fix the issue.
- The issue is not produced when working on Linux or windows system.
Is there any possible missing configuration on 43455 side or on Network stack side that might be causing this issue?
Show Less