Are there any examples or guides for designing a system with a PSoC based BLE and a WiFi only CYWxx907 based radio module?
I'd like to pair either a PSoC 4 BLE or a PSoC 6 BLE to a CYW43907 based Murata Type 1GC WiFi module.
I'm specifically interested in methods to handle coexistence.
We are encountering random failures with products using the CYW43907 and WICED where the Reception of frames seems to be unhandled resulting in connectivity issues. From Wireless captures, everything is operating fine until application layer TCP packets stop being received and even 802.11 management and action frames appear to be missed. I have captured missed 802.11 action packets (bulk ack) being retried by the AP and even 802.11 deauth frames being resent by the AP. Since this is happening with 802.11 management and action frames, i am thinking this looks more like a WLAN core issue.
Our devices are stationary and had great RSSI prior to the issue, and no change in the environment so it isn't RF, like the station roamed out of coverage.
The network consist of Aruba AP's running an open network and DCHP.
Prior to the problem, per the wireless captures, there was no AP roaming, hand-offs, or DHCP renewals occurring.
Has anyone encountered this? These devices are running WICED 6.2.1.Show Less
To whom it may concern, I have recently purchased one fo your products - CYW43907 (dual-band Wi-Fi soC), and been testing its performanceon a dedicated kit -CYW943907AEVAL1F (as suggested on Infineon official website). I am writing to address several issues I encountered during testing the product's WLAN 2.4 GHz receiver performance which conflicts with the specifications started within the datasheet you provide.
In your datasheet (page 53) it is stated that the sensitivity (measuredon 8% PER) in 1 Mbps DSSS mode is typically -98.9 dBm (no maximum value provided). To test this, I used a CMW290 Functional Radio Communication Tester as an AP which sent data packets and calculated PER by counting ACKs (acknowledgements) received from the DUT (CYW43907). The DUT was connected to the CMW by RF cable which attenuation was considered during our testing. PER was calculated in various 2.4 GHz Wi-Fi channels as function of the input power. By examining the results, it appears that there are two unexplained phenomenons occuring in every channel. At input power level of -76 dBm there is a PER of 80%, which is 22 dB above the -98 dBm sensitivity stated in the datasheets.
In addition, below -76 dBm there are "spikes" of PER appearing every 1 dB drop in the input power level (I assume this can beas a result of an unstable feedback loop in the AGC).
I would greatly appreciate ifyou can address these issues in detail and suggested methods to fix them.
Using a CYW43907 based radio module; What is the proper way to add functions onto pins?
A) Drive the pin directly by first initializing then toggling it.
- Initializing and driving seems to work for several GPIO pins I tried including GPIO_0, GPIO_8, GPIO_10 and GPIO_12. I can initialize these pins, toggle them, then observe the output using CYW943907AEVAL1F kit. Disclaimer: I haven’t yet observed the toggling of GPIO_8 as that signal isn’t easy to probe before it goes through a switch chip at U15.
- Initializing fails for PWM_5. Starting with TCP_Server and CYW943907AEVAL1F, attempting to initialize PWM_5 hangs the code.
Following code added to TCP_SERVER Project main.c file for CYW943907AEVAL1F.
result = cyhal_gpio_init( PIN_GPIO_12, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, false );
if( result == CY_RSLT_SUCCESS )
printf( " PIN_GPIO_12 Initialization succeeded.\r\n" );
else printf( " PIN_GPIO_12 Initialization failed.\r\n" );
cyhal_gpio_toggle( PIN_GPIO_12 );
GPIOs 12, 10, 0 and 8 initialize and send text to terminal window on PC
Observed signals: GPIO_10 @ J12-4, GPIO_12 @ J12-5 and GPIO_0 @ J10-1 toggle as expected. I haven’t found an easy way to probe GPIO_8 before U15.
B) Drive a signal that can be multiplexed onto the pin
Since I can’t find what else is driving PWM_5, and I can’t reinitialize it, I’d like to try to multiplex onto it.
How can I re-assign PWM_5 to use it as a GPIO?
When the following code to initialize PWM_5 is active, the radio locks up. The code builds fine, programs and runs through the point where it prints “Ready to initialize PIN_PWM_5” to the terminal. Then appear to stop.
printf( " Ready to Initialize PIN_PWM_5.\r\n" );
result = cyhal_gpio_init( PIN_PWM_5, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, false );
if( result == CY_RSLT_SUCCESS )
printf( " PIN_PWM_5 Initialization succeeded.\r\n" );
else printf( " PIN_PWM_5 Initialization failed.\r\n" );
Is there an Application Note that describes the method to multiplex pins using ModusToolbox?
I'm using I2C on CYW954907EVAL1F as SMBUS
to comunicate with RRC2054: it is a smart battery.
The communication doesn't work.
I notice that I2C-DATA toggle when I2C-CLK has a falling edge:
does this lead to a misinterpretation at slave side ?
(E.g. can interpreted as I2C - START or I2C - STOP conditions ?)
Is there a way to configure the CYW954907EVAL1F microcontroller to force I2C-DATA to toggle when I2C-CLK is Low ?Show Less
How to download test.mfg_test to CYW43907 RAM and run without SFLASH.
By this we can set the OTP data independently .
No need download mfg_test to SFLASH to set OTP and then download the product's apllication.
Set SECURE_BIT in OTP then replance the application FW in SFLASH, it's high risk.
I try to understand the different command below and the mcs_data_rate_lookup_table.
The iperf example is used to validate the modifications of the parameters in measuring the datarate.
The goal is to understanding how to select the type of modulation (BPSK, 64 QAM, 128QAM) the number of wifi channel (20MHz, 40MHz, 80MHz).
The iperf program has been modified as below:
/* Bring up the network on the STA interface */
wwd_wifi_set_tx_power( 0 );
wwd_wifi_set_mcs_rate( WICED_STA_INTERFACE, 0, 0 );
wiced_network_up( WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL );
//wwd_wifi_set_preferred_association_band( WLC_BAND_2G );
bandwidth = wwd_wifi_get_bandwidth() ;
printf("Bandwidth: %lu \n", bandwidth);
result = wwd_wifi_get_ht_mode ( WICED_STA_INTERFACE, &test);
printf("htmode: %d \n", result);
printf( "iPerf app\n" );
/* Add iperf command to console */
command_console_init( STDIO_UART, MAX_LINE_LENGTH, line_buffer, MAX_HISTORY_LENGTH, history_buffer_storage, " " );
console_add_cmd_table( iperf_commands );
Two board are used one in AP, the other in STA. A loink is created between the two board in order to test the datarate.
No modification brings a change on the datarate value.
Does anyone have an operating example?
I have followed https://raspberrypi.stackexchange.com/questions/117238/connect-android-smartphone-with-wi-fi-direct-to-a-raspberry-pi for setting up the P2P connection on RPi.
I am able to connect both with "virtual_push_button" method when I initiate the connection from android device(i.e sent the connect request from android phone to RPi) and then accept the connect request on RPi using "p2p_connect
But I am not able to initiate the connection from RPi to android device. I should get the pop-up on android device when I try to connect to it from RPi using "p2p_connect
Here is the wpa_supplicant.conf file I am using:
When I try the same on my ubuntu laptop, I get the "P2P-DEVICE-FOUND" event on wpa_cli after I run the "p2p_find" command. And when I run "p2p_connect
But on RPi I don't see "P2P-DEVICE-FOUND" event after "p2p_find". However, near by wifi direct devices are listed when I run "p2p_peers" command on wpa_cli. I get this "P2P-DEVICE-FOUND" event on RPi only after I send the connect request to RPi from android.
Is there any configuration I am missing in wpa_supplicant?
Also I have followed https://raspberrypi.stackexchange.com/questions/45451/connect-to-raspberry-pi-3-over-wi-fi-direct to boot Pi3 with Arch Linux ARM in-case there is some configuration issue on RPi OS. I tried the same experiment on Arch Linux ARM. But here also I don't get the "P2P-DEVICE-FOUND" event after I run "p2p_find" on wpa_cli.
I tried with multiple wpa_supplicant version(2.6, 2.8 & 2.9) but this behavior is same.