- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am debuging cyw43438 using SDIO, when downloading wlan firmware to cyw43438, I always met the error response form CMD53.
The response is 0x00002800, shows 'A general or an unknown errr ccurred during the operation' according to the SDIO Spec.
And the Data0 Line kept Low all the Time.
Does anyone know what caused this problem? And How to solve it.
Much Thx.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi GauravS_31,
We have solved the problem. Because the 26M cannot work, and we changed another oscillator. Then we can download the wlan firmware to the WIFI module.
But we met another porblem. When we want to read the data form cyw43438, we may meet the following problem:
CYW43438 may lost the start bit. We find that @CYW43438 @doesn't send read data with correct start bit (4-bit '0' which lasts one cycle followed by read data).
The overall signal is below:
The we find the start bit is a pulse:
We cannot capture the start bit:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which host processor is being used here? Do you see the SDIO clock on the logic analyzer? If this is in WICED SDK, did you configure the WL_REG_ON pin which maps to WWD_PIN_POWER in platform.c? Did you configure the variables in platform_config.h based on the host processor for synchronization?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, I cannot find how to attach the file needed, so I paste the picture and cmd list here directly.
The following picture shows that CYW43438 reponse the host with GOOD CRC Status, but it keep busy after that. We check the DATA sent, but nothing wrong has been found.
The following picture shows that the host send correct CMD and the device response good.
The cmd we have sent is blow. At the last cmd, the CMD/Response and data is showed before, and after that the DAT0 keeps busy:
/**************************************************/
IPERF example
************************************************
Please select WiFi operation mode:
a: Access point mode
c: Client mode
Enter mode: c
Initializing WiFi connection...
cmd idx: 0, argu: 0x00000000
resp = 00000000
cmd idx: 5, argu: 0x00000000
CMD5 resp = 0x20ff8000
cmd idx: 3, argu: 0x00000000
cmd idx: 0, argu: 0x00000000
resp = 00000000
cmd idx: 5, argu: 0x00000000
CMD5 resp = 0x20ff8000
cmd idx: 3, argu: 0x00000000
cmd idx: 0, argu: 0x00000000
resp = 00000000
cmd idx: 5, argu: 0x00000000
resp = a0ffff00
cmd idx: 3, argu: 0x00000000
resp = 00010000
cmd idx: 7, argu: 0x00010000
resp = 0x00001e00
resp = 00001e00
cmd idx: 52, argu: 0x80000402
resp = 00001002
cmd idx: 52, argu: 0x00000400
resp = 00001002
cmd idx: 52, argu: 0x00000e00
resp = 00001040
cmd idx: 52, argu: 0x80000e42
resp = 00001042
cmd idx: 52, argu: 0x80002040
resp = 00001040
cmd idx: 52, argu: 0x00002000
resp = 00001040
cmd idx: 52, argu: 0x00001000
resp = 00001002
cmd idx: 52, argu: 0x80002040
resp = 00001040
cmd idx: 52, argu: 0x80022040
resp = 00001040
cmd idx: 52, argu: 0x80042040
resp = 00001040
cmd idx: 52, argu: 0x80042200
resp = 00001000
cmd idx: 52, argu: 0x80000807
resp = 00001007
cmd idx: 52, argu: 0x00002600
resp = 00001001
cmd idx: 52, argu: 0x80002603
resp = 00001003
AsyncInterrupt is not supported
cmd idx: 52, argu: 0x00000600
resp = 00001002
cmd idx: 52, argu: 0x92001c29
resp = 00001029
cmd idx: 52, argu: 0x12001c00
resp = 00001069
cmd idx: 52, argu: 0x92001c00
resp = 00001000
cmd idx: 52, argu: 0x92001e00
resp = 00001000
cmd idx: 52, argu: 0x80000406
resp = 00001006
cmd idx: 52, argu: 0x8001e407
resp = 00001007
cmd idx: 52, argu: 0x80000805
resp = 00001005
cmd idx: 52, argu: 0x00000600
resp = 00001002
cmd idx: 52, argu: 0x92001818
resp = 00001018
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10700000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10700000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10900000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10900000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10900000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10900000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x90881003
resp = 00001003
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10881000
resp = 00001003
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x90900000
resp = 00001000
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x90881001
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 52, argu: 0x92001610
resp = 00001010
cmd idx: 52, argu: 0x10881000
resp = 00001001
cmd idx: 52, argu: 0x92001600
resp = 00001000
cmd idx: 53, argu: 0x95802004
resp = 0x00001000
cmd idx: 53, argu: 0x95808804
resp = 0x00001000
cmd idx: 52, argu: 0x92001800
resp = 00001000
xfer cnt: 0x0 , addr = 0x00000000
cmd idx: 53, argu: 0x9c000010
resp = 0x00001000
xfer cnt: 0x400 , addr = 0x00000400
cmd idx: 53, argu: 0x9c080010
resp = 0x00001000
xfer cnt: 0x800 , addr = 0x00000800
cmd idx: 53, argu: 0x9c100010
resp = 0x00001000
xfer cnt: 0xc00 , addr = 0x00000c00
cmd idx: 53, argu: 0x9c180010
resp = 0x00001000
xfer cnt: 0x1000 , addr = 0x00001000
cmd idx: 53, argu: 0x9c200010
resp = 0x00001000
xfer cnt: 0x1400 , addr = 0x00001400
cmd idx: 53, argu: 0x9c280010
resp = 0x00001000
xfer cnt: 0x1800 , addr = 0x00001800
cmd idx: 53, argu: 0x9c300010
resp = 0x00001000
xfer cnt: 0x1c00 , addr = 0x00001c00
cmd idx: 53, argu: 0x9c380010
resp = 0x00001000
xfer cnt: 0x2000 , addr = 0x00002000
cmd idx: 53, argu: 0x9c400010
resp = 0x00001000
xfer cnt: 0x2400 , addr = 0x00002400
cmd idx: 53, argu: 0x9c480010
resp = 0x00001000
xfer cnt: 0x2800 , addr = 0x00002800
cmd idx: 53, argu: 0x9c500010
resp = 0x00001000
xfer cnt: 0x2c00 , addr = 0x00002c00
cmd idx: 53, argu: 0x9c580010
resp = 0x00001000
xfer cnt: 0x3000 , addr = 0x00003000
cmd idx: 53, argu: 0x9c600010
resp = 0x00001000
xfer cnt: 0x3400 , addr = 0x00003400
cmd idx: 53, argu: 0x9c680010
resp = 0x00001000
xfer cnt: 0x3800 , addr = 0x00003800
cmd idx: 53, argu: 0x9c700010
resp = 0x00001000
xfer cnt: 0x3c00 , addr = 0x00003c00
cmd idx: 53, argu: 0x9c780010
resp = 0x00001000
xfer cnt: 0x4000 , addr = 0x00004000
cmd idx: 53, argu: 0x9c800010
resp = 0x00001000
xfer cnt: 0x4400 , addr = 0x00004400
cmd idx: 53, argu: 0x9c880010
resp = 0x00001000
xfer cnt: 0x4800 , addr = 0x00004800
cmd idx: 53, argu: 0x9c900010
resp = 0x00001000
xfer cnt: 0x4c00 , addr = 0x00004c00
cmd idx: 53, argu: 0x9c980010
resp = 0x00001000
xfer cnt: 0x5000 , addr = 0x00005000
cmd idx: 53, argu: 0x9ca00010
resp = 0x00001000
xfer cnt: 0x5400 , addr = 0x00005400
cmd idx: 53, argu: 0x9ca80010
resp = 0x00001000
xfer cnt: 0x5800 , addr = 0x00005800
cmd idx: 53, argu: 0x9cb00010
resp = 0x00001000
xfer cnt: 0x5c00 , addr = 0x00005c00
cmd idx: 53, argu: 0x9cb80010
resp = 0x00001000
xfer cnt: 0x6000 , addr = 0x00006000
cmd idx: 53, argu: 0x9cc00010
resp = 0x00001000
xfer cnt: 0x6400 , addr = 0x00006400
cmd idx: 53, argu: 0x9cc80010
resp = 0x00001000
xfer cnt: 0x6800 , addr = 0x00006800
cmd idx: 53, argu: 0x9cd00010
resp = 0x00001000
xfer cnt: 0x6c00 , addr = 0x00006c00
cmd idx: 53, argu: 0x9cd80010
resp = 0x00001000
xfer cnt: 0x7000 , addr = 0x00007000
cmd idx: 53, argu: 0x9ce00010
resp = 0x00001000
xfer cnt: 0x7400 , addr = 0x00007400
cmd idx: 53, argu: 0x9ce80010
resp = 0x00001000
xfer cnt: 0x7800 , addr = 0x00007800
cmd idx: 53, argu: 0x9cf00010
resp = 0x00001000
xfer cnt: 0x7c00 , addr = 0x00007c00
cmd idx: 53, argu: 0x9cf80010
resp = 0x00001000
cmd idx: 52, argu: 0x92001480
resp = 00001080
xfer cnt: 0x8000 , addr = 0x00008000
cmd idx: 53, argu: 0x9c000010
resp = 0x00001000
xfer cnt: 0x8400 , addr = 0x00008400
cmd idx: 53, argu: 0x9c080010
resp = 0x00001000
xfer cnt: 0x8800 , addr = 0x00008800
cmd idx: 53, argu: 0x9c100010
resp = 0x00001000
xfer cnt: 0x8c00 , addr = 0x00008c00
cmd idx: 53, argu: 0x9c180010
resp = 0x00001000
xfer cnt: 0x9000 , addr = 0x00009000
cmd idx: 53, argu: 0x9c200010
resp = 0x00001000
xfer cnt: 0x9400 , addr = 0x00009400
cmd idx: 53, argu: 0x9c280010
resp = 0x00001000
xfer cnt: 0x9800 , addr = 0x00009800
cmd idx: 53, argu: 0x9c300010
resp = 0x00001000
xfer cnt: 0x9c00 , addr = 0x00009c00
cmd idx: 53, argu: 0x9c380010
resp = 0x00001000
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi GauravS_31,
We have solved the problem. Because the 26M cannot work, and we changed another oscillator. Then we can download the wlan firmware to the WIFI module.
But we met another porblem. When we want to read the data form cyw43438, we may meet the following problem:
CYW43438 may lost the start bit. We find that @CYW43438 @doesn't send read data with correct start bit (4-bit '0' which lasts one cycle followed by read data).
The overall signal is below:
The we find the start bit is a pulse:
We cannot capture the start bit:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This appears to be a synchronization issue. Have you tried lowering the SDIO clock frequency to allow more time for the start bit to be sampled?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sir,
I use our own platform to communicate with CYW43438. The Module we use is Azurewave AW-NB197SM and it integrates the solutions of CYW43438_A1 SoC.
We control the PIN of WL_REG_ON, first pull down WL_REG_ON and then pull up it.
The problem is when we download the WLAN firmware, CYW43438 will stay busy on DAT0 at anywhere. We first analyze that the SDIO signal is somewhere wrong, so we slow down the SDIO Clock and check the signal using logic analyzer and oscilloscope, but nothing wrong has been founded.
The analyzer signal and the SDIO cmd List that has been sent to CYW43438 have been attached. Please help us to debug the problem.