We need a small chip with absolutely lowest power, so for the attiny4:
Top of the spec stated 200uA at 1MHz, but nothing about 125KHz.
Bottom of the spec has some chart of around 30uA at 125KHz. Can this be trusted? If so, why don't they say so at the top? I would think that's an important marketing data.
Usually these things are based on estimated characteristics, rather than being thoroughly statistically tested. They will typically pick a few fixed points (such as 1 MHz) and do full testing - lots of chips, lots of temperature ranges, lots of voltage ranges, and running different code - to get a figure they can guarantee. Then they will do spot tests combined with known characteristics to give estimates of the rest.
Are you sure you want to do that? In many cases, you will get lower average power by running fast for a very short time, and spending a larger proportion of the time in deep sleep.
I once made a system using an AVR Tiny (I can't remember which one, but it had no ram at all - it took a little fiddling to get gcc to compile code for it) that ran from the internal RC oscillator, mostly in power-down modes. I estimated that if the button cell that powered it were perfect, I would get a lifetime of around 200 years.
If that's not low enough power, then Atmel have a 4-bit series (MARC4).
One thing is for sure: it won't work reliable at 1.8V.
This seems a better choice:
formatting link
--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Can you write something more about it? Is it possible to write in C or C++ and compile with avr-gcc or avr-g++ for AVRs without a RAM-based stack? Are you able to use avr-libc with them?
I've noticed that gcc for AVR is very aggressive about inlining functions, to the point that small-ish ATMega** programs may not actually call functions at all. I help it out with `static inline` declarations, but I only started that after I inspected some code and found out what was happening.
Does the application allow/tolerate putting the uC to sleep (power down) often? I've played with ATtiny13 and the consumption goes down to less than one uA (I can't even measure it with my 4-digit multimeter on 4mA range setting). You just have to allow some time for it to wake up. The wake-up time shortens significantly if the chip is running on the internal
9.6MHz osc., so if it sleeps most of the time, you may not even need to use the slow clock speeds for the actual work it needs doing. It'll just complete the cycle quicker and go back to sleep.
Without knowing what the application needs to do, it's hard to tell if it's going to work but you can wake it up on external interrupt or internal watchdog timer. Again, the trick would be to make it sleep as much as the application would tolerate.
The application needs to monitor sensor pulses that can come in at any time. I don't think we can afford the sleep/wake delay.
Easy... put the TINY in sleep mode (1uA) and wake it up on the pulses using PCINT (Pin Change Interrupt, pos or neg edge, or both). Do your processing ASAP then go back to sleep. Simples :)
We probably need two sensors. A passive triggering sensor (very little current) to signal the controller and to turn on the measuring sensor (several mA).
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.