- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am developing a project with CY8CKIT-059. This project required to run up to 1 year.
I try to put the microcontroller into Sleep mode to reduce current consumption but until now, there is no luck.
When I put the CY8CKIT-059 into Sleep mode, the current I measured is always around 1mA.
However, the datasheet stated that the IC can consume only several uA during Sleep mode.
I try to slow down the CPU clock speed as well as turn off all other components, but the whole kit still takes 1mA of current.
Any idea how to get that mysterious value of several uA?
Solved! Go to Solution.
- Labels:
-
PSoC 5 Device Programming
-
PSoC 5LP
- Tags:
- cy8ckit-059
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A miracle happened.
After breaking the target board from the KitProg, I used the male header to connect the Kitprog and the board to program it.
As I expose the SWD interface, when I touch my finger to pin SWDIO, the current consumption suddenly drop to around 50uA.
Then I tried to pull down pin SWDIO using a wire. The desired sleep current was matched. Unfortunately, the board was not programmable as the SWD cannot be used. Instead of the wire, I used a 100k resistor and it worked like a charm.
Now, I am able to program the board and get the current I need.
However, I am looking for the explanation.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could be a silly question, but where are you measuring the current draw from and how are you measuring? Are you maybe measuring the current drawn by the attached KitProg on top of the current drawn by the PSoC IC?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually, I separated the KitProg from the target board and use the KitProg as power supply for the PSoC and I measured the current draws by the PSoC board.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you attach your project/source code for entering sleep mode?
In Creator:
Project > Archive Workspace/Project > Minimal
Make sure "Compress Archive (zip)" is checked. It will create a nice little zip file you can attach to a post.
This would also probably be a worthwhile read to make sure you're entering sleep as intended. There's also some example projects to demonstrate, but they would probably need to be modified for your kit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am pretty sure with the source code that I used. Here is the part that I put the PSoC into sleep mode. I use SleepTimer and PICU to wake it up. I have notice the current consumption different between active and sleep mode. However, the current can never reach several uA.
CyPmSaveClocks();
Opamp_Sleep();
BuzzerPWM_Sleep();
Filter_Sleep();
ADC_Sleep();
PGA_1_Sleep();
PGA_2_Sleep();
GND_DR |= GND_MASK;
CyPmSleep(PM_SLEEP_TIME_NONE, PM_SLEEP_SRC_PICU | PM_SLEEP_SRC_CTW);
CyPmRestoreClocks();
GND_DR &=~GND_MASK;
Opamp_Wakeup();
PGA_1_Wakeup();
PGA_2_Wakeup();
CyDelay(20);
ADC_Wakeup();
Filter_Wakeup();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Also, I have test the sleep mode with a blank project, the result is the same with 1mA sleep current.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A miracle happened.
After breaking the target board from the KitProg, I used the male header to connect the Kitprog and the board to program it.
As I expose the SWD interface, when I touch my finger to pin SWDIO, the current consumption suddenly drop to around 50uA.
Then I tried to pull down pin SWDIO using a wire. The desired sleep current was matched. Unfortunately, the board was not programmable as the SWD cannot be used. Instead of the wire, I used a 100k resistor and it worked like a charm.
Now, I am able to program the board and get the current I need.
However, I am looking for the explanation.