Wireless Connectivity Forum Discussions
Browse the Community
AIROC™ Wi-Fi and Wi-Fi Bluetooth Combos
AIROC™ Wi-Fi MCUs
AIROC™ Bluetooth
Featured Discussions
Hi
We recently started to play with the CYW20829 chip and are considering migrating a hardware application we originally built on the CYW20719B2 chip to it.
In porting code for a SPI NAND Memory chip over to the new 20829, we are having trouble mapping the WICED APIS to the CY_HAL API's and getting them to work.
We are not getting any errors from init, are using the default PINS on device configurator for the 20829, but we are getting fails on reading and writing using cy_hal_spi_slave_read, and cy_hal_spi_slave_write.
Here is a snippet from the 20719B2 Code that sets up the device and our attempt to migrate the equivalent code to 20829
Our code drives the CS pin High and Low before doing Read/Writes w/o issue on the 20719, but not sure we have the correct method figured out on the 20829
20719 INIT Code
wiced_hal_gpio_select_function(NAND_CS_PIN, WICED_GPIO);
wiced_hal_gpio_select_function(NAND_SCK_PIN, WICED_SPI_1_CLK);
wiced_hal_gpio_select_function(NAND_MOSI_PIN, WICED_SPI_1_MOSI);
wiced_hal_gpio_select_function(NAND_MISO_PIN, WICED_SPI_1_MISO);
wiced_hal_gpio_configure_pin(NAND_CS_PIN, GPIO_OUTPUT_ENABLE | GPIO_PULL_UP, GPIO_PIN_OUTPUT_HIGH);
wiced_hal_pspi_init(SPI1,FS_NAND_HW_SPI_CLK_FREQ / 2,SPI_MSB_FIRST,SPI_SS_ACTIVE_LOW,SPI_MODE_3);
20829 INIT Code
20719 Drive CS Up or Down
wiced_hal_gpio_set_pin_output(NAND_CS_PIN, GPIO_PIN_OUTPUT_LOW);
wiced_hal_gpio_set_pin_output(NAND_CS_PIN, GPIO_PIN_OUTPUT_HIGH);
20829 Drive CS Up or Down
We have tried both of these:
cyhal_gpio_toggle(CYBSP_SPI_CS);
or
cyhal_spi_slave_select_config(&mSPI,CYBSP_SPI_CS,CYHAL_SPI_SSEL_ACTIVE_LOW);
cyhal_spi_slave_select_config(&mSPI,CYBSP_SPI_CS,CYHAL_SPI_SSEL_ACTIVE_HIGH);
Our Read/Write Looks like this
20719
wiced_hal_pspi_rx_data(SPI1, NumBytes, pData);
wiced_hal_pspi_tx_data(SPI1, NumBytes, pData);
20829
cyhal_spi_slave_read(&mSPI,pData,&size,10);
cyhal_spi_slave_write(&mSPI,pData,&size,10);
Any help would be appreciated !!
Show Less
While running Hello World example in cyw920829m2evk-02 kit using Eclipse Modus Toolbox IDE the code sucessfully gets programmed but does not work. While analysing noticed that in cycfg_pins.h file, the configuration pins are disabled,tried out other examples similar issue is faced.
Show LessHi all.
I am trying to setup AP mode for 5GHz with channel 40MHz. Module 2BC from Murata
My config hostapd.conf:
interface=wlan0
ssid=CYW_4373
beacon_int=50
#ctrl_interface=/var/run/hostapd
driver=nl80211
max_num_sta=5
channel=36
wpa=2
wpa_pairwise=CCMP
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
hw_mode=a
ieee80211ac=1
ieee80211n=1
### IEEE 802.11ac
# VHT (Very High Throughput) 40
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]
vht_oper_chwidth=0
wmm_enabled=1
when I try to start hostapd, the point does not rise
What could be the reason?
Linux imx8mmea-ucom 6.1.1+gbe1f55631e33, module 2BC M.2
- Some of the logs are given below, complete in the file
....
hw vht capab: 0x1020, conf vht capab: 0x0
wlan0: interface state UNINITIALIZED->HT_SCAN
Scan for neighboring BSSes prior to enabling 40 MHz channel
40 MHz affected channel range: [5170,5210] MHz
wlan0: nl80211: scan request
nl80211: Passive scan requested
nl80211: Scan frequency 5180 MHz
nl80211: Scan frequency 5200 MHz
nl80211: Scan trigger failed: ret=-16 (Device or resource busy)
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Teardown AP(wlan0) - device_ap_sme=1 use_monitor=0
nl80211: Disable Probe Request reporting nl_preq=0x888822225d3e4c89
nl80211: Unsubscribe mgmt frames handle 0x888822225d3e4d19 (AP teardown (dev SME))
nl80211: Subscribe to mgmt frames with non-AP handle 0xaaaad5b6c590
....
wlan0: nl80211: scan request
nl80211: Passive scan requested
nl80211: Scan frequency 5180 MHz
nl80211: Scan frequency 5200 MHz
nl80211: Scan trigger failed: ret=-16 (Device or resource busy)
nl80211: Set mode ifindex 3 iftype 3 (AP)
nl80211: Unsubscribe mgmt frames handle 0x888822225d3e4d19 (start AP)
nl80211: Setup AP(wlan0) - device_ap_sme=1 use_monitor=0
nl80211: Subscribe to mgmt frames with AP handle 0xaaaad5b6c590 (device SME)
...
40 MHz affected channel range: [5170,5210] MHz
wlan0: nl80211: scan request
nl80211: Passive scan requested
nl80211: Scan frequency 5180 MHz
nl80211: Scan frequency 5200 MHz
nl80211: Scan trigger failed: ret=-16 (Device or resource busy)
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Teardown AP(wlan0) - device_ap_sme=1 use_monitor=0
nl80211: Disable Probe Request reporting nl_preq=0x888822225d3e4c89
nl80211: Unsubscribe mgmt frames handle 0x888822225d3e4d19 (AP teardown (dev SME))
nl80211: Subscribe to mgmt frames with non-AP handle 0xaaaad5b6c590
...
Proceed with AP/channel setup
nl80211: Set freq 5180 (ht_enabled=1, vht_enabled=1, he_enabled=0, bandwidth=40 MHz, cf1=5190 MHz, cf2=0 MHz)
* freq=5180
* he_enabled=0
* vht_enabled=1
* ht_enabled=1
* bandwidth=40
* channel_width=2
* center_freq1=5190
* center_freq2=0
nl80211: Failed to set channel (freq=5180): -95 (Operation not supported)
Could not set channel for kernel driver
Interface initialization failed
wlan0: interface state HT_SCAN->DISABLED
wlan0: AP-DISABLED
hostapd_interface_deinit_free(0xaaaad5b64a50)
hostapd_interface_deinit_free: num_bss=1 conf->num_bss=1
hostapd_interface_deinit(0xaaaad5b64a50)
wlan0: interface state DISABLED->DISABLED
hostapd_bss_deinit: deinit bss wlan0
wlan0: Deauthenticate all stations
nl80211: sta_remove -> DEL_STATION wlan0 ff:ff:ff:ff:ff:ff --> -22 (Invalid argument)
wlan0: AP-DISABLED
hostapd_cleanup(hapd=0xaaaad5b65dd0 (wlan0))
wlan0: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlan0 wasn't started
hostapd_interface_deinit_free: driver=0xaaaab34feb50 drv_priv=0xaaaad5b67430 -> hapd_deinit
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211: Disable Probe Request reporting nl_preq=0x888822225d3e4c89
nl80211: Remove monitor interface: refcount=0
nl80211: Remove beacon (ifindex=3)
netlink: Operstate: ifindex=3 linkmode=0 (kernel-control), operstate=6 (IF_OPER_UP)
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Teardown AP(wlan0) - device_ap_sme=1 use_monitor=0
nl80211: Unsubscribe mgmt frames handle 0x888822225d3e4d19 (AP teardown (dev SME))
hostapd_interface_free(0xaaaad5b64a50)
hostapd_interface_free: free hapd 0xaaaad5b65dd0
hostapd_cleanup_iface(0xaaaad5b64a50)
hostapd_cleanup_iface_partial(0xaaaad5b64a50)
hostapd_cleanup_iface: free iface=0xaaaad5b64a50
Greetings,
I am trying to integrate LBEE5PK2AE-564 WiFi/BT module with USB interface (using CYW4373E chipset) with imx8mm (Android) and want to test WiFi/BT in Android,
i have tested the WiFi successfully and now trying to integrate and test Bluetooth, but in order to test the Bluetooth we used a binary (brcm_patchram_plus_usb_64bit) to load the firmware in the Linux but in Android the binary does not work as it is different linker.
For Example:
This is the binary you have provided:
# file brcm_patchram_plus_usb_64bit
brcm_patchram_plus_usb_64bit: ELF shared object, 64-bit LSB arm64, dynamic (/lib/ld-linux-aarch64.so.1), BuildID=403983701e4aaf5728177f1e9b6e91db9354cdd1, not stripped
And this is present in our source for reference architecture:
# file cmd
cmd: ELF shared object, 64-bit LSB arm64, dynamic (/system/bin/linker64), for Android 30, BuildID=f97435a45132606a0c701ed5c1709bd5, stripped
And as you can see the dynamic lib linker is different. And when i execute the binary you have provided(given all permissions), I am getting the following error:
phyboard_polis:/vendor/bin # ./brcm_patchram_plus_usb_64bit
/system/bin/sh: ./brcm_patchram_plus_usb_64bit: No such file or directory
1|phyboard_polis:/vendor/bin #
1|phyboard_polis:/vendor/bin # ls -l brcm_patchram_plus_usb_64bit
-rwxr-xr-x 1 root shell 23840 2024-03-18 06:18 brcm_patchram_plus_usb_64bit
So I tried cross compiling by downloading the source code from GitHub but it throwing error. Please have a look at the error:
$ aarch64-linux-gnu-gcc -o brcm_patchram_plus_usb brcm_patchram_plus_usb.c -lbluetooth
brcm_patchram_plus_usb.c: In function ‘hci_send_cmd_func’:
brcm_patchram_plus_usb.c:311:9: warning: implicit declaration of function ‘writev’; did you mean ‘write’? [-Wimplicit-function-declaration]
while (writev(sock, iv, ivn) < 0) {
^~~~~~
write
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lbluetooth
collect2: error: ld returned 1 exit status
And there is no libbluetooth.so in our toolchain.
I request you to provide us with brcm_patchram_plus_usb_64bit binary which supports Android or please provide us with documentation or procedure to compile for Android or is there any another way to run the binary and flash the firmware.
Thanks.
Show Lesscat /proc/interrupts | grep -P "(wifi|oob)"; sleep 1; cat /proc/interrupts | grep -P "(wifi|oob)"
72: 219 0 stm32-exti-h 59 Edge WakeUp-wifi
77: 2067851 0 stm32gpio 12 Level brcmf_oob_intr
72: 221 0 stm32-exti-h 59 Edge WakeUp-wifi
77: 2088168 0 stm32gpio 12 Level brcmf_oob_intr
cat /sys/kernel/debug/pinctrl/soc:pin-controller@50002000/pinmux-pins | grep -P "(PG12|PI11)"
pin 108 (PG12): device mmc0:0001:1 function gpio group PG12
pin 139 (PI11): device mmc0:0001:1 function analog group PI11
...
# muxenab: 0x1 for UART enable, 0x10 for HOST WAKE INT enable, 0x11 for both enable
# Power cycle required if change
muxenab=0x11
...
sd_gpout=0
sd_oobonly=1
sd_gpval=1
wowl_gpio=0
wowl_polarity=1
/ {
...
brcm_pwrseq: brcm-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpioi 10 GPIO_ACTIVE_LOW>;
post-power-on-delay-ms = <100>; /* Tried this, but did not helped */
};
};
&pinctrl {
wifi_wakeup_pin: wifi-power-pin {
pins {
pinmux = <STM32_PINMUX('G', 12, GPIO)>;
bias-pull-up;
};
pins2 {
pinmux = <STM32_PINMUX('I', 11, ANALOG)>;
bias-disable;
};
};
...
};
&sdmmc3{
pinctrl-names = "default", "sleep", "opendrain";
pinctrl-0 = <&sdmmc3_b4_pins_b>;
pinctrl-1 = <&sdmmc3_b4_sleep_pins_b>;
pinctrl-2 = <&sdmmc3_b4_od_pins_b>;
bus-width = <4>;
vmmc-supply = <®_sdmmc3>;
no-sd;
st,neg-edge;
keep-power-in-suspend;
non-removable;
pm-ignore-notify;
cap-power-off;
mmc-pwrseq = <&brcm_pwrseq>;
status = "okay";
wakeup-source;
brcmf: bcrmf@1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&wifi_wakeup_pin>;
pinctrl-1 = <&wifi_wakeup_pin>;
reg = <1>;
compatible = "brcm,bcm4329-fmac";
wakeup-source;
interrupt-parent = <&gpiog>;
interrupts = <12 IRQ_TYPE_LEVEL_LOW>; /* WL_HOST_WAKE */
interrupt-names = "host-wake";
};
};
ifx-backports/v5.15.58-backports/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev)
{
...
if (pdata->oob_irq_supported) {
brcmf_dbg(SDIO, "Enter, register OOB IRQ %d\n",
...
} else {
brcmf_dbg(SDIO, "Entering\n");
sdio_claim_host(sdiodev->func1);
sdio_claim_irq(sdiodev->func1, brcmf_sdiod_ib_irqhandler);
sdio_claim_irq(sdiodev->func2, brcmf_sdiod_dummy_irqhandler);
sdio_release_host(sdiodev->func1);
sdiodev->sd_irq_requested = true;
}
return 0;
}
Thanks for all the help!
Hello,
We are using CYW43455 and its godzilla release on linux 5.15.71. Occasionally, when device comes back from deep sleep, CYW43455 shows its connected ( RSSI is being changed when getting closer or further to AP), IP address is there, but the network data doesn't come through. In addition it looks like that Rx counter showed in output of ifconfig command doesn't change when CYW43455 is in this state.
Can you please help solving this issue ? Is this a known issue, is there a patch for it ? Or we would need to come up with mechanism to detect this state and then try some recovery steps (reconnect, interface down/up, reassociate)?
Thanks,
Bogdan
Show Less目前平板用cyw43455,同时多台设备测试漫游切换功能,测几百次有个别设备会概率性的断线,驱动版本version 100.10.63 内核4.4,安卓8.1,附件是日志和固件,帮忙看看什么原因,会不会路由器同时处理不了那么多漫游设备,漫游切换的超时时间可以调整吗,漫游功能roam_off功能已经开了。
谢谢
Show LessHow many stations or connections can each WiFi silicon family support without major modifications?
What physical features may affect the number of stations or connections?
- Based on a previous post, available memory plays a role.
- https://community.infineon.com/t5/Wi-Fi-Combo/Looking-for-details-regarding-CYW43455-concurrent-Station-and-AP-operation/td-p/122651
Does Infineon have a table that lists individual capabilities of each WiFi silicon?
- When selecting the base silicon in a radio, understanding I'll be using a partner module, it would be helpful to know any limitations to the number of potential stations or connections.
Greg
Show Less