I have an application based on SI4463 chip. It works about 1 second, then CPU is halted unless it wakes-up and starts main loop again.
When I powerup the device, and configure si4463 by power_up command etc. everything works fine, and I have about 7mA consuming.
Then shutdown happens, main CPU is halted, shutdown pin hold high (0mA consuming).
But after CPU wakes up, and makes all the same commands (power_up, etc.) the consuming becames two times higher (about 14mA).
It seems that si4463 was not fully powered down by shutdown pin and then works in the other mode.
How this can happen? And is there any solution in such case?
First-of-all, as I understood, you don't believe that this IC can get different consumption after SDN pin is up and all configs are sent again, aren't you?
Yes, the device works as expected. But the consumption is high priority in this project. We have project based on SI4430 and its 7mA always.
Yes, the device sends and receives packets. But the logic is set to receive only in passive mode (where I measure). This mode is most sigificant for us, because the device works in this mode 98% of time.
(I measure the whole consumption, not this IC only)
1) Power up the device by giving 3.3 Volts to the board
2) Under debugger we go to the line, where Config settings are send via SPI (POWER_UP etc. as follows).
3) After that line and later consumption is gets about 7mA
4) Then time (about 1 second) pass, and SDN pin is UP, quartz is disabled, MCU sets HALT
5) Consumption is now about 0mA
6) Wakup (7secs) - the cycle goes again, we stand again at the line where Config settings are applied
7) After step over - consumption is now 14mA
And everything goes the same all the time from that moment.
measurement resolition is 0,01 mA
I can't give you schematics, because I'm a software developer, I'm not developer of schematics - It's some kind of ready board, I just change software.
Thanks for your information about startup sequence, but I'm talking about the logic of the work.
All the same conditions, but different consumption. I can't understand that. The only thing that I can suppose, that even when SDN is up, smth. still is stored in IC. But I never found that info in IC documents.
Many thanks for your quick reply.
many thanks for your answer.
I'm not sure that I've understand you correctly, but I'm not working with VDD pin, hardware designed so, that it is powered up from general source. I can work only with SDN pin, so I'm interested, when SDN is high, it's not a full shutdown?
As I mentioned above, I have similar device (different hardware design, but close) based on si4430 IC, and it has similar characteristics on consumption etc., it also consumes 7mA and has the similar way of main loop, absolutely the same CPU (STM8L151G). And this pcb works fine, and consumes always the same value.
My device, based on si4463 works fine only at the very first loop cycle (7mA), then consumption became much higher.
I will partly answer your questions because now I'm away from the lab.
1) Yes, I'm sure, this is a loop
C. [listen RX]
D. [nothing - sleep]
E. --> goto A
All configuration, including GLOBAL_CONFIG applied on step B.
2. This what I got there. For both devices;
3. I have several variants of how to get RX info (Interrupt or readRxState), currently I use readRxState - it works more stable for my needs.
I can change this but I don't think smth. would alter
4. For more precision I need to use oscilloscope. If it helps - I will;
5. I based my project on a previous one. So if smth. is wrong with Hardware design - I don't know, but software is very close to the original. Original, as I said earlier, works fine in all cases. But ICs are very different, SPI protocol sequense was changed dramatically, so there may be bugs. I'm really sure that there are bugs, but I don't understand how to find them.
I'll give you one bug example.
I found out that consumption when device sleeps, gets about 20mA, and when it works only 14mA, that was strange... The problem was that SDN pin was not high when device goes into sleep mode (actually all pins were low). When I fixed that problem, sleep consumption became near 0mA, but even though I can't imagine how the sleeping mode could consume even more then active mode?
First of all, thanks for your help.
And sorry for wasting your time.
The problem now localized and it's not in si4463.
The problem is in wake-up of stm8.
If I'm looping the cycle - the subject of conumption exists.
I've changed to reset CPU - and everything is fine now. So the problem is really in wake-up sequence of the CPU itself.
P.S.> Additionaly have to say it was a GPIO state problem. Some pins (CTS etc. ) that must be Input were set to OUTPUT LOW, and that caused the problem.