You are here

CY8CKIT-042,BLE&SPI slave communication,How can i reduce the power consumption? | Cypress Semiconductor

CY8CKIT-042,BLE&SPI slave communication,How can i reduce the power consumption?

Summary: 3 Replies, Latest post by Bob Marlowe on 04 Nov 2016 05:59 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
plingx_1533381's picture
User
2 posts

In the project,I use BLE Component on CY8C4247LQI-BL483 and the board runs in deepsleep mode that refer to the application note(AN92584 Designing for Low Power and Estimating Battery Life for BLE Applications),when BLE is not advertising ,the current of the board(4247LQI-BL483) is 2uA(enter into deepsleep mode,advertisement interval is configured to 3s).

but when added SPI(slave mode) commponent and there is no SPI communication on the bus,the current of the board is increased to 300uA.

In the project code :

(1) initializatin:call SPIS_Start()

(2) before and after calling CySysPmDeepSleep():call function SPIS_Sleep() and SPIS_Wakeup() 

so,what do i need to do to reduce the current when run the SPI slave communication?

Thanks.

user_1377889's picture
User
9596 posts

Welcome in the forum.

Try to set the SPIS Tx pin to High-Z before going to sleep.

 

Bob

plingx_1533381's picture
User
2 posts

Thanks for your reply.
According to your suggestion,i added the related code(as shown below) in my project,but there is just a little change in the current of board(200uA).

(1)Is there any error in the code?

(2)And after wakeup , what do i need to do to recovery the SPI Slave communication,just to reconfigure the spi interface?
//=================================================//
SPIS_Sleep();//SPIS_Stop();
SPIS_miso_s_SetDriveMode(SPIS_miso_s_DM_ALG_HIZ);
SPIS_mosi_s_SetDriveMode(SPIS_mosi_s_DM_ALG_HIZ);
SPIS_sclk_s_SetDriveMode(SPIS_sclk_s_DM_ALG_HIZ);
CySysPmDeepSleep();
SPIS_Wakeup();//SPIS_Start();

user_1377889's picture
User
9596 posts

I would try the sequence (it's just a try)

SPI_Stop(),sleep,set the pins to Pin_DM_DIG_HIZ (not analog), deep sleep

and when woken up the reverse direction

SPI_Wakeup(), SPI_Init(), SPI_Start. The pins should be set by the Init API-

When still not working, I would suggest you to get in contact with Cypress directly: At top of this page select "Design support -> Create a Support Case" and ask your question. You will be helped by a Cypress engineer.

 

Bob

Log in to post new comments.