ULPNode Low Power Secret Revealead
drogus last edited by
Thanks for this post, it's very informative!
One thing I don't get is that in one of the other posts you mention that ULPNode wakes up every 30 seconds and in this post you say that it wakes up every 100 seconds. Is 100 seconds sleeping time just for prototyping purposes? I'd imagine that you can change that time by changing the value of a capacitor and for a final version you would use a capacitor that will discharge in 30 seconds. Is that correct?
Charles last edited by
Thanks for your comment,
Well As far as I remember 30s was an example for calculation, but with proto boards and default caps, yes it's about 100 sec, that will be the values on production boards. It can be changed adding/removing capacitor.
I was reading your article "ULPNode Low Power Secret Revealead" which sounds great, but I watched schematics on gtihub and I cant find your solution MCP1640 + NCP302LSN20T1.
First question is ;-) did you stuck with some problems during tests? I would like to build this part of powering the board and test it. Can you provide information about capacitor and resistor which gives you 2V limit ?
According to http://ww1.microchip.com/downloads/en/DeviceDoc/22234B.pdf you picked "MCP1640" (without B/C/D) as it has "true disconnect" and PWM/PFM features. In chapter 5.2 and 5.4 I can get equation to calculate resistor and capacitor but... did you use any inductor to minimize noise and did calculated values fit your live tests?
Sorry being so lazy and for direct asking ;-) but I would like to use your experience and make big step forward ;-)
scalz last edited by
@mj : hi. I will let Charles answer but if it can help, as I have studied this very nice article too, and made my node myself. It was some work to understand and make it but was a very interesting learning curve :)
- In chapter 5.2 and 5.4 of MCP1640 datasheet, resistors and capacitor values are for Vout as MCP1640 is adjustable. Nothing to do with ulpnode, this is common to every adjustable Vout switching/LDO regulators.. where you can set Vout (output) to the voltage you want (says 3.3v if you need 3.3v vcc for your circuit, or 2.9, 3.6v...).
- So if you look at Charles article, the 2V limit is not a matter of resistor or capa. Charles disable the mcp1640 then voltage falls to a 2v limit. and then he enables it again...we can call this a power sequence. So, the 2V limit is managed by the NCP302LSN20T1 supervisor. I suggest you to look at mcp1640 and ncp302 datasheets and appnotes ;)
I have read a little bit and... I'm a little bit wiser ;-)
As I understand schema from https://hallard.me/ulpnode-low-power-secret/ atmega 328p must be on in deep sleep mode and monitor "Wake" pin. When NCP302 will turn PIN1 (Reset Output) to ground:
- atmega will wake up
- booster will charge capacitor
- atmega will measure battery voltage (make some more operations like send info with NRF or aoter device*) and go to deep sleep again
- meanwhile booster will charge capacitor and after reaching 3,6V NCP302 will disconnect it.
`* this operation can be done after "n" wake-up cycles according to eeprom saved information
Did I get it right?
Second thing about NCP302.
As I understand schematic ;-) there are two mosfets N and P just before PIN1. One is turning of booster (P) and the second (N) is touching to the ground the pin from atmega 328?
Ok, I tried to draw this in eagle but I'm missing few things...
First I redraw input to get 3.3V as on picture below
According to point 3.4 Enable Pin (EN)
The EN pin is a logic-level input used to enable or
disable device switching and lower quiescent current
while disabled. A logic high (>90% of VIN) will enable
the regulator output. A logic low (<20% of VIN) will
ensure that the regulator is disabled.
So my NCP has to enable booster by applying >90% of Vin - which for 1,5V AA battery = >1,35 V to enable the booster which is easy while we still have 2V limit from the NCP302. But to turn it off I need less then 20% of Vin which is <0,3V.
So my question is how to use NCP302 RST pin 1 to pass those two outputs ? 2V and <0,3V ?
Second thing is what capacitor should i use between MCP1640 and NCP302 ?
Can you point me to the right direction because I stuck on this:
scalz last edited by scalz
@mj : oki I see. So few things :
- drive you booster EN with ncp RST with mosfet.
- drive ncp CD with arduino. vin ncp to vin.
- for capa storage, it depends of your circuit,47 to 100uf for instance...
but to have the whole thing ultra low power there are lot of other tricks to do. schema is a little bit more complicated. Maybe you should wait a little bit. I think Charles is working hard to publish all his work ;) I will publish my work soon, this month I think, I am working on others projects actually but I will try to take some time...
Thanks for answer.
Eeee waiting for other people solution is good for business ;-) and this is my fun to find the solution ;-)
So first of all I bought those parts NCP and MCP :-) but I had to look for those in china ;-) because in Poland no one would like to sell me 3-5 pcs. I could buy 100 or 50 pcs. ;-) which is a way to much.
So I have a week to reorganize my schem and think about other "tricks". Of course It would be the best to touch those components and try a few things... but I'll have to wait.
I'll try to update my schema and then we can talk further.
finaly I have all needed parts and I started to build my own ULPNode.
and SiSS23DN with p-channel (Rds(on) (-1,8V - ~11,5 mOhm)
Did anyone found something better than this?
I have finaly build (recreated) what Charles showed...
I have one problem now. How to turn MCP for the first time battery is inserted.
Can someone show me how he did it?
My schema looks like this and is EN by low state from voltage supervisor.