- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Welcome in the forum.
Try to set the SPIS Tx pin to High-Z before going to sleep.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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