Wi-Fi module Murata Type-1LV(CYW43012) does not boot with cypress's WiFi host driver

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NoKo_3612966
Level 1
Level 1
10 replies posted 10 sign-ins 5 replies posted

We design an IoT module using PSoC6(CY8C624ABZI-S2D44) and a Wi-Fi module(Murata Type1LV, which uses CYW43012).
Our board schematic and pin configuration are the same as the Cypress development kit(CY8CKIT-062S2-43012).

Environment
------------------


* ModusToolbox v2.2(same behavior with v2.3).
* Board
        + CY8CKIT-062S2-43012(works good)
        + Our board(same schematic and pin assign as CY8CKIT) -> has the issue as below
* Lot Number of Type1LV
        + SS9123002(on CY8CKIT)
        + SS0N18005(on our board)

Steps to reproduce the issue
---------------------------------------

* Create a project using `project-creator.exe` from `AnyCloud_MQTT_Client`.
* Set WiFi info(SSID and password) and MQTT broker info(IP etc.).
* Build, program, and run for each board(CY8CKIT and our board).

Behavior
------------

* On CY8CKIT
        + works good.
        + Capture_GOOD.PNG(the first image)
* On our board
        + Wi-Fi module initialize error on waiting F2 function.
        + This loop timeout. https://github.com/cypresssemiconductorco/wifi-host-driver/blob/19968e1b77db296b1be9f1352147f6152003...
        + Error in the line 475 is printed.
        + Please see the attached Capture_BAD.PNG(the second image)
                - Some additional printf() message are added.
                - The highlighted line is the error from the line 475 of WiFi_Host_Driver/src/bus_protocols/whd_bus_sdio_protocol.c

        + line 468 `whd_bus_read_register_value()` return 0 and `byte_data` value is always 8.
                - on CY8CKIT, `byte_data` changes to 6 after about 100 cycles.

Questions
-------------

* What is the possible cause which makes this difference?
        + I guess that `whd_bus_read_register_value()` reads the register value of the SDIO target(CYW43102).
        + Why the response is different between CY8CKIT and our board?
* How to solve this issue on our board(schematic or firmware)?

 

 

Capture_GOOD.PNG

  

Capture_BAD.PNG

0 Likes
1 Solution
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Closing this thread as the query is resolved via My case.

Thanks

Aditi

View solution in original post

0 Likes
8 Replies
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

The error "Timeout while waiting for function 2 to be ready" comes at 2 places in whd_bus_sdio_protocol.c file. One at line 475 and the other at line 1316. One statement is part of the function - "whd_bus_sdio_init" and other of "whd_bus_sdio_reinit_stats". I assume the function is "whd_bus_sdio_init" and that's why you've stated line 475. The function "whd_bus_read_register_value" at line 460 is trying to read register value of "SDIOD_CCCR_IORDY" which checks whether the I/O is ready or not.

It has Function 2 ready bit which is read-only. If this bit is clear to 0, Function 2 is not ready to operate. This bit has to be set before the SDIO host access Function 2. Otherwise, the sdio host gets an error response.

This can happen due to wrong NVRAM variables, so can you attach the "wifi_nvram_image.h" file. Also, do you have external LPO on your device and is it properly configured?

Thanks

Aditi

0 Likes

Hi Aditi,

I replied as a new comment, instead of replying to your comment.

Please check it.

Best regards,

0 Likes
NoKo_3612966
Level 1
Level 1
10 replies posted 10 sign-ins 5 replies posted

Hi Aditi,

I check that the message comes from `whd_bus_sdio_init` using debugger step by step run.

## `wifi_nvram_image.h`

Attached on last part of this post  is "..\mtb_shared\wifi-host-driver\latest-v1.X\WiFi_Host_Driver\resources\nvram\TARGET_CY8CKIT_062S2_43012\wifi_nvram_image.h"

I use the same files, the same project for CY8CKIT and our board.

 

## `LPO`

On our board, the EXT_LPO pin is driven by 32.768kHz oscillator(SIT1533AI-H4-D14-32.768E).

On CY8CKIT, '-DCC-' oscillator is used, but we can not procure '-DCC-' and then use '-D14-' configuration.

However, the same issue happen driven by SIT1533AI-H4-D14-32.768E or external function generator(32.768kHz, 1.8Vpp).

Best Regards,

/*
* Copyright (c) 2019, Cypress Semiconductor Corporation, All Rights Reserved
* SPDX-License-Identifier: LicenseRef-PBL
*
* This file and the related binary are licensed under the
* Permissive Binary License, Version 1.0 (the "License");
* you may not use these files except in compliance with the License.
*
* You may obtain a copy of the License here:
* LICENSE-permissive-binary-license-1.0.txt and at
* https://www.mbed.com/licenses/PBL-1.0
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef INCLUDED_NVRAM_IMAGE_H_
#define INCLUDED_NVRAM_IMAGE_H_

#include <string.h>
#include <stdint.h>
#include "generated_mac_address.txt"

#ifdef __cplusplus
extern "C" {
#endif

/**
* Character array of NVRAM image
* Generated from cyw9cy8ckit_062S2_43012_P100_723349.txt
*/

static const char wifi_nvram_image[] =
"NVRAMRev=$Rev:723349$" "\x00"
"sromrev=11" "\x00"
"cckdigfilttype=4" "\x00"
"cckpwroffset0=2" "\x00"
"bphyscale=0x20" "\x00"
"boardflags3=0x40000100" "\x00"
"vendid=0x14e4" "\x00"
"devid=0xA804" "\x00"
"manfid=0x2d0" "\x00"
"prodid=0x052e" "\x00"
NVRAM_GENERATED_MAC_ADDRESS "\x00"
"mac_clkgating=1" "\x00"
"nocrc=1" "\x00"
"boardtype=0x0869" "\x00"
"boardrev=0x1102" "\x00"
"xtalfreq=37400" "\x00"
"boardflags2=0xc0000000" "\x00"
"boardflags=0x00000001" "\x00"
"etmode=0x11" "\x00"
"extpagain2g=2" "\x00"
"extpagain5g=2" "\x00"
"ccode=0" "\x00"
"regrev=0" "\x00"
"antswitch=0" "\x00"
"rxgains2gelnagaina0=0" "\x00"
"rxgains2gtrisoa0=15" "\x00"
"rxgains2gtrelnabypa0=0" "\x00"
"rxgains5gelnagaina0=0" "\x00"
"rxgains5gtrisoa0=9" "\x00"
"rxgains5gtrelnabypa0=0" "\x00"
"pdgain5g=0" "\x00"
"pdgain2g=0" "\x00"
"tworangetssi2g=0" "\x00"
"tworangetssi5g=0" "\x00"
"rxchain=1" "\x00"
"txchain=1" "\x00"
"aa2g=1" "\x00"
"aa5g=1" "\x00"
"tssipos5g=0" "\x00"
"tssipos2g=0" "\x00"
"femctrl=17" "\x00"
"subband5gver=4" "\x00"
"pa2ga0=-108,6062,-661" "\x00"
"pa5ga0=-82,6252,-698,-14,6722,-697,-92,6084,-710,-88,6465,-755" "\x00"
"pdoffset40ma0=0" "\x00"
"pdoffset80ma0=0" "\x00"
"lowpowerrange2g=0" "\x00"
"lowpowerrange5g=0" "\x00"
"ed_thresh2g=-63" "\x00"
"ed_thresh5g=-63" "\x00"
"swctrlmap_2g=0x10101010,0x20202020,0x10101010,0x442020,0x3ff" "\x00"
"swctrlmapext_2g=0x01000100,0x01000100,0x01000100,0x000000,0x301" "\x00"
"swctrlmap_5g=0x80808080,0x00000000,0x80808080,0x442020,0x381" "\x00"
"swctrlmapext_5g=0x01000100,0x01000100,0x00000000,0x000000,0x303" "\x00"
"ulpnap=0" "\x00"
"ulpadc=1" "\x00"
"ssagc_en=0" "\x00"
"ds1_nap=0" "\x00"
"spurcan_ch_list_MHz=2422,2427,2432,2437,2462,2467,2472" "\x00"
"spurcan_sp_freq_KHz=9000,4000,-1000,-6000,6400,1400,-3600" "\x00"
"spurcan_NumSpur=7" "\x00"
"epacal2g=0" "\x00"
"epacal5g=0" "\x00"
"papdcck=0" "\x00"
"epacal2g_mask=0x3fff" "\x00"
"maxp2ga0=74" "\x00"
"ofdmlrbw202gpo=0x0020" "\x00"
"dot11agofdmhrbw202gpo=0x6442" "\x00"
"mcsbw202gpo=0xCC864420" "\x00"
"maxp5ga0=70,70,70,70" "\x00"
"mcsbw205glpo=0xCC864220" "\x00"
"mcsbw205gmpo=0xCC864220" "\x00"
"mcsbw205ghpo=0xCC864220" "\x00"
"femctrlwar=0" "\x00"
"use5gpllfor2g=1" "\x00"
"pt5db_gaintbl=0" "\x00"
"muxenab=0x01" "\x00"
"txwbpapden=1" "\x00"
"wb_rxattn=0x0303" "\x00"
"wb_txattn=0x0203" "\x00"
"wb_papdcalidx=0x0808" "\x00"
"wb_papdcalidx_5g=0x00101010" "\x00"
"wb_eps_offset=0x01ba01a8" "\x00"
"wb_eps_offset_5g=0x01ba01bc" "\x00"
"wb_bbmult=0x2040" "\x00"
"wb_bbmult_5g=0x00303030" "\x00"
"wb_calref_db=0x1c2e" "\x00"
"wb_tia_gain_mode=0x0606" "\x00"
"wb_txbuf_offset=0x1e1e" "\x00"
"wb_frac_del=0x6991" "\x00"
"wb_g_frac_bits=0xab" "\x00"
"nb_rxattn=0x0404" "\x00"
"nb_txattn=0x0404" "\x00"
"nb_papdcalidx=0x1414" "\x00"
"nb_eps_offset=0x01d701d7" "\x00"
"nb_bbmult=0x5A5A" "\x00"
"nb_tia_gain_mode=0x0000" "\x00"
"AvVmid_c0=6,100,7,70,7,70,7,70,7,70" "\x00"
"tssisleep_en=0x5" "\x00"
"lpflags=0x0" "\x00"
"lpo_select=4" "\x00"
"paprrmcsgamma2g=450,500,550,600,675,950,950,950,950,950,950,950" "\x00"
"paprrmcsgamma5g20=450,500,550,600,800,950,1100,1100,1100,1100,1100,1100""\x00"
"swdiv_en=0" "\x00"
"swdiv_gpio=0" "\x00"
"swdiv_swctrl_en=2" "\x00"
"swdiv_swctrl_ant0=0" "\x00"
"swdiv_swctrl_ant1=1" "\x00"
"swdiv_antmap2g_main=1" "\x00"
"swdiv_antmap5g_main=1" "\x00"
"swdiv_snrlim=10000" "\x00"
"swdiv_thresh=3000" "\x00"
"swdiv_snrthresh=24" "\x00"
"lhlgpio_cfg=0x00000020,0x00000000" "\x00"
"\x00\x00";
#ifdef __cplusplus
} /*extern "C" */
#endif

#else /* ifndef INCLUDED_NVRAM_IMAGE_H_ */

#error Wi-Fi NVRAM image included twice

#endif /* ifndef INCLUDED_NVRAM_IMAGE_H_ */

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Thanks for the update. Can you provide what's the difference between the lot no. here ->  SS9123002(on CY8CKIT) SS0N18005(on our board)? Also, can you provide the firmware file(.bin) as well?

Thanks

Aditi

0 Likes

Hi Aditi,

Thank you for reply.

 

Can you provide what's the difference between the lot no. here -> SS9123002(on CY8CKIT) SS0N18005(on our board)?
=> That is my question.
SS9123002(on CY8CKIT) works, but SS0N18005(on our board) does not work.
PSoC6 firmware and pin connection between PSoC6 and Type1LV module are the same.

Also, can you provide the firmware file(.bin) as well?
=>firmware is downloaded from Cypress GitHub repository.
https://github.com/cypresssemiconductorco/wifi-host-driver/tree/19968e1b77db296b1be9f1352147f6152003...
Before the error of line 475, firmware is downloaded successfully(line 444).

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Thanks for the update. So, I believe from your response that the WLAN firmware, clm_blob, NVRAM, pinouts, pin connection are the same in both the lot no.. We can consider comparing the OTP map for both lots. Can you provide the OTP map for both lots?

For this, you need to download mfgtest firmware onto both kits. After that, you can test the command "wl cisdump" and share with us the results.

Thanks

Aditi

0 Likes

Hi Aditi,

Our firmware can not see booting of F2 function of the module.

Therefore, clm_blob is not downloaded yet.

Download firmware(including nvram) -> F2 does not become ready.

 

How to check OTP map?

The wifi module is soldered to the PSoC board.

The PSoC firmware is run based on FreeRTOS.

I guess "wl cisdump" is linux command.

How to do this?

From where can I download mfgtest firmware?

 

 

 

 

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Closing this thread as the query is resolved via My case.

Thanks

Aditi

0 Likes