328P sleep current wildly different between two copies

Go To Last Post
121 posts / 0 new

Pages

Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Last year I bought an Arduino Pro Mini clone, 3.3V 8MHz, and removed the voltage regulator and power LED resistor.   In PWR_DOWN sleep mode it draws less than 1uA, which is what I need for battery power, and that's what the datasheet suggests it should be.

 

Last week I received two new Minis from a different source, and performed the same modifications to them.  But both of them draw 150uA in sleep when powered at 3.3V, or 330uA at 5V.  So far as I can tell, everything is the same between old and new.  That includes the boards, the modifications, the test sketch, the bootloaders, and the fuse settings.  So it's hard to see what could cause this difference unless the MCUs are different in some way.

 

The new ones have these markings:

 

Atmel
MEGA328P
U-TW
35473D
1947X5N

and
1936S2P

The old one is:

Atmel
MEGA328P
U-KR
35473D
1829R5G
 

Notice that the 330uA current at 5V is greater than you would expect if the problem is some kind of resistive leak.  And since there's almost nothing left on the Mini board but the processor, it seems that almost has to be the cause of the problem.  But I've looked through the datasheet, and don't see any version information that would account for this.  In case it matters, the new ones both had daubs of white paint covering the markings.  I don't know if that means anything.

 

If anyone has an idea about what's going on here, I'd like to hear it.  Or even an idea about how to find out where the problem lies.  I want to be able to use Pro Minis in direct battery powered situations where the processor sleeps a lot.  But it needs to sleep at 1uA, not 150.  So I need to find a resolution to this.

 

Here's my test sketch.  Thanks very much for any help.

#include <avr/sleep.h>
#include <avr/wdt.h>
int i;

void setup(){

  for (i = 0; i < 20; i++) {          // all pins to one rail or the other
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW);
  }
  ADCSRA = 0;                         // disable ADC for power saving
  wdt_disable();                      // disable WDT for power saving
  set_sleep_mode (SLEEP_MODE_PWR_DOWN); // Deep sleep
  sleep_enable();
  sleep_bod_disable();                // disable brownout detector during sleep
  sleep_cpu();                        // now go to sleep

}

void loop(){
}

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One other piece of information.  I rigged up my meter to measure the low side current from the Mini, then at the end of the test I grounded the Reset pin directly to power supply ground so the current flowing through the pullup resistor on Reset wouldn't be included in the current measurement.

 

Current during reset (excluding pullup resistor current):

 

New Minis - 1.15mA

Old Mini  -   0.7mA

 

That indicates to me that there is indeed a difference in these chips.  It's possible something is wrong with the new ones, or I guess they could even be mis-marked 328 parts instead of 328P.  Would that account for this difference?

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Are there any resistors anywhere else?  Even 50k will blow you away (5V @50K is 100 ua).

 

Are the fuses set exactly the same in all units? Double check!

 

capacitor leakages?

 

crystals?  resonators? they can have loading differences

 

what other components are on these boards (provide a board link) 

 

Pullups?

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Sun. Jul 12, 2020 - 11:01 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:

Are there any resistors anywhere else?  Even 50k will blow you away (5V @50K is 100 ua).

 

Are the fuses set exactly the same in all units? Double check!

 

capacitor leakages?

 

crystals?  resonators? they can have loading differences

 

what other components are on these boards (provide a board link) 

 

Pullups?

 

 

 

The remaining resistors are the pullup resistor on the Reset pin and the resistor for the LED on D13 (but D13 is OUTPUT LOW).

 

The fuses, bootloader and sketch are identical on all units.  I used AvrDude to read everything out.

 

The capacitors on Vcc remain.  But I think it's unlikely the two separate copies would leak in exactly the same way.

 

It has an 8MHz resonator.  There are no separate loading capacitors.  But during the test all oscillators are turned off.

 

Here's a link to what I bought:

 

https://www.ebay.com/itm/203019631067

 

This board has a regulator and a power-on LED, both of which I have removed.  And it has an LED on D13 like most Arduinos.  It does not have a USB-to-UART chip.

 

I'm beginning to wonder if, despite the markings, these are really 328, and not 328P.  That might account for the difference in current draw.  But the markings clearly say 328P.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

Oh here is a big one...floating inputs are very bad, and can draw a lot of current...be sure to configure all of your pins as outputs...does that help?

Do not allow any input to float!!  In the olden days, this could almost "burn up" some gates!

 

Try ditching the tanatalum/electrolytic caps from the failing board, they can be cheap and crappy.  Ceramics are somewhat less likely to have big leaks/.  Lots of tantlum end up failing as a total short....maybe these are on the way.

 

But I think it's unlikely the two separate copies would leak in exactly the same way.---if parts are from athe same batch of 50000, it could very well be a match.

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My test code shown in my first post sets all IO pins to OUTPUT, LOW.

 

I replaced the remaining large capacitor - the one on Vcc - and nothing changed.  Sleep current is still 150uA.   So it wasn't leaking.

 

I posted here in the hope that someone would know something about the 328P revisions, design changes, eratta, counterfeits or whatever that might explain this problem.  It seems pretty clear that the processor is at fault.  It works ok, but just draws too much current doing so.  But if nobody has an explanation along those lines, I'll just order some from another source.  I assume as a practical matter it would be pointless to try to ask Microchip about this.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Try flashing them using ICSP instead of the bootloader.  If it doesn't work, they might actually be LGT8F328 parts.  They use SWD for programming and don't support ICSP.

 

p.s. The LGT8F328 board I bought from Electrodragon has no markings on the chip (aside from the pin 1 dot in the corner).  I bet this is intentional so that it is easy to label the chip as an Atmel part and sell it as such to unsuspecting consumers.

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

Last Edited: Mon. Jul 13, 2020 - 11:00 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Best option is to buy from a reputable source!  Yes, a M328 will draw more power then the pico power version M328P.   Who knows what a china cloan will do?

Some solder fluxes (water soluble) will be conductive, so must be carefully cleaned after reflow, or leakage across pads will happen.  It does not take much leakage to raise your current consumption.

It takes very careful design and construction to get low micro current operation!

 

Jim

 

 

(Possum Lodge oath) Quando omni flunkus, moritati.

"I thought growing old would take longer"

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And it has an LED on D13 like most Arduinos

Did you say you removed this LED? You only mention removing the power LED....if not remove it.  Even though you set to output & set it low (to nearly zero volts), the LED could have some leakage (though I'd think it would be a few ua at most).   

This is really grasping at straws, but hey, what else do you have to lose?

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The LED is connected to ground, so when the AVR pin is low, there cannot be any leakage.  Even if it was an open-drain setup, the leakage would be limited to the AVR input pin leakage, which is in the picoAmp range.

 

I have no special talents.  I am only passionately curious. - Albert Einstein

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The LED is connected to ground, so when the AVR pin is low, there cannot be any leakage.  

That is what you'd hope and expect, but there can be some changeover leakage in the avr driver stage, so that it puts out a low, non-zero, low voltage (say for grins it were a sloppy 20mv), then a 10k leaky led, could draw a 2ua leakage, very low, and probably even that is extreme.  Note they specify only the low output sink current (which is typically what 99.99% of people need).

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:

capacitor leakages?

+1

 

Peabody wrote:
The capacitors on Vcc remain.  But I think it's unlikely the two separate copies would leak in exactly the same way.

Quite the opposite - if you buy 2 at the same time, it is quite likely that they will have come from the same batch.

 

Capacitors do have to be carefully selected for low leakage; so it is certainly possible that these 2 new ones just used cheap capacitors - and they have higher leakage.

Or they just came from a "poorer" batch.

 

ki0bk wrote:
Best option is to buy from a reputable source! 

Absolutely!

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Tue. Jul 14, 2020 - 12:20 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I burned the "breadboard" version of the bootloader to one of the new Minis, which makes the chip use the 8MHz internal oscillator instead of the external resonator, then reflashed the sleep current test sketch.  It still drew 150uA.

 

So then I began removing everything from the PCB, testing again after each removal.  The last thing to go was the resonator.  So now with only the processor remaining on the board, I still get 150uA of sleep current.

 

I'm pretty satisfied with the explanation that something is wrong with these two chips.  I don't know if they are defective, or mis-marked, or what, but there appears to be nothing I can do to fix the problem.  While I guess I could go on to remove the processor from the board, I don't think that's going to give me any more information.  Meanwhile, I've ordered another bunch of Minis from a different source, and will see how they turn out.

 

I just hope the explanation isn't that Microchip has made a change they haven't told us about.  These chips appear to work fine except that they draw too much current in sleep mode.  The additional 150uA might also be there in active mode, but might not be noticeable.  But of course the sleep current would make a difference in battery life.  If anyone else does the Mini conversion to low power (removing the regulator and power LED), or sets up a breadboard Arduino with a PU part, you might want to try running my test sketch (in my first post) and see what you get for sleep current.  The datasheet is pretty clear that it should be in the ballpark of 1uA.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I guess it's possible that they are "grey market" chips - factory floor sweepings, or test fails, or suchlike ...

 

I guess I could go on to remove the processor from the board, I don't think that's going to give me any more information.  

It would tell you if there's some leakage in the PCB itself ...

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

floating pins. I see it has been said, but... update: never mind I see pins are all low

my projects: https://github.com/epccs

Debugging is harder than programming - don’t write code you can’t debug! https://www.avrfreaks.net/forum/help-it-doesnt-work

Last Edited: Wed. Jul 15, 2020 - 11:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I didn't see the comparator mentioned....how about:

 

When entering Idle mode, the Analog Comparator should be disabled if not used. When entering ADC Noise
Reduction mode, the Analog Comparator should be disabled. In other sleep modes, the Analog Comparator is
automatically disabled. However, if the Analog Comparator is set up to use the Internal Voltage Reference as
input, the Analog Comparator should be disabled in all sleep modes. Otherwise, the Internal Voltage Reference will
be enabled, independent of sleep mode. Refer to ”Analog Comparator” on page 239 for details on how to configure
the Analog Comparator.

 

ACSR:

When this bit is written logic one, the power to the Analog Comparator is switched off. This bit can be set at any
time to turn off the Analog Comparator. This will reduce power consumption in Active and Idle mode.

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Thu. Jul 16, 2020 - 03:05 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I ordered another batch of Pro Minis from a different source, and they arrived today.  Unfortunately, they behave exactly like the other new Minis - they sleep at 150uA rather than the 1uA shown in the datasheet.

 

So I have a situation where the old Mini (date code 2018) operates properly and sleeps at 1uA, whereas all the new Minis (date code 2019) sleep at 150uA.  So it seems to me that either all the new Minis have counterfeit processors, or there has been a recent change in the 328P that's not reflected in the datasheet.

 

Does anyone from Atmel/Microchip participate here?  If not, is there any way I could contact someone at the company to officially report this problem and possibly find a solution?

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Do you try turning off the comparator?  It is on by default (see #16)

 

Have you gone back to your working board to verify you still read 1 ua?...It would be a mess to find out something happened to your meter & you were chasing a ghost.  Go back and verify!

 

Also how much current do the stripped down boards (working and failing) draw when they are just looping or delaying prior to going to sleep...do those board currents even compare?  I'm wondering if the failing board is even going to sleep--- how much current change do you see between run mode and sleep mode?  You've never stated that.

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Tue. Jul 21, 2020 - 07:41 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Late to the party but maybe something, here.

 

1. The fact that some chips were painted means that they have been somewhere else than straight from the factory to the distributor.

 

2. I saw no list of the fuses for the two sets of chips. Fuses are ONE big thing that could be a relic of a former life. Another could be pin damage (by excess voltage or current).

 

3. Are you certain that the clock frequencies are the same? That could lead do different current draws in normal operation. This is set by fuses, so there is another reason for a table of fuse settings.

 

4. In reset, all the pins are set to floating inputs. Thus, presence of external load resistances to Vcc or Gnd should have no bearing. Not so in sleep.

 

5. Which sleep is being used? Different sleeps enable or disable various clocks and peripheral modules. If the code is identical, then there should be no differece.

 

6. It sounds like some chips might have been true Atmel and newer ones from the Microchip fab. There may be some process differences. An important question is whether or not the higher current ones are actually in-spec or out of spec. If the newer ones have higher current but are still in spec, then there isn't much to be done.

 

Cheers

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

And don't discount leaky caps. I've been fixing some synthesizers recently which have had random dud ceramic caps. It's a warranty nightmare.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Again, buying cheap Chinese stuff, you're stuck with whatever they send you.

 

One of the key reasons they are cheap is because you get no support, no guarantees, no continuity of supply, etc.

 

You gets what you pays for

 

There is no such thing as a free lunch.

 

https://www.avrfreaks.net/commen...

 

Have you tried some genuine  Pro Minis ?

 

Peabody wrote:
is there any way I could contact someone at [Microchip] to officially report this problem and possibly find a solution?

You'd have to raise a support ticket - see: https://community.atmel.com/comm...

 

You'd really need to take (at least one of) the chips off the board to be sure that it isn't anything due to the board

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, we seem to be going over the same ground again and again.  The situation is that two new batches of Minis from different sources, using different parts, and with different markngs on the processor (but all 328P of course), all go into Power Down sleep at 150uA, which is two orders of magnitude higher than the datasheet spec.  But an older Mini sleeps at less than 1uA, which is within spec.  The old and new have in common the same board, the same bootloader, the same fuse settings, and the same test sketch.  The date code on the older part appears to be 2018, which matches when I bought it, and the date codes on the new parts are all 2019.

 

Since I removed *ALL* of the parts except the processor from one of the new Minis, and still got 150uA sleep current, we know it's not leaky capacitors or something similar.  When I raise Vcc from 3.3V to 5V, the sleep current rises to 330uA, which is not a linear change.  The problem is clearly in the processor, not the board or the other parts. 

 

It seems to me there are two possibiities that make any sense at all.  The first is that all of the new Minis have counterfeit processors on them.  The second is that there has been a recent change to the 328P by Microchip that is not documented but which causes this problem.  I guess I could order a new 328P from Digikey, which would presumably be genuine, but I can't specify a date code on the part Digikey sends me.  If they send me a 2018 code, and it works fine, that tells me nothing I don't already know.

 

Even if there has been a silicon change that caused this, I keep hoping there is a software solution that would fix it - something that I havent turned off that now needs to be turned off.  But I haven't found anything like that in searches, and apparently nobody here knows of anything like that.

 

I guess I will try to open a ticket, but I'm just a hobbiest, and they aren't going to take me seriously.  I'd be happy to send them one of the Minis that's misbehaving if that would help.  But for the moment I have to conclude that using the Pro Mini as a very low sleep current option for battery powered projects just doesn't work anymore. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Peabody wrote:
Well, we seem to be going over the same ground again and again

indeed

 

two new batches of Minis from different sources

Well, from differenent resellers - how do you know they're actually from different sources (ie, manufacturers)?

 

The old and new have in common the same board

Again, how do you know that?

 

It might look similar, but ...

 

I removed *ALL* of the parts except the processor from one of the new Minis, and still got 150uA sleep current, we know it's not leaky capacitors or something similar

Again, there is still the question of the PCB itself.

 

The problem is clearly in the processor, not the board

Hmmm - I think that remains unproven ...

 

It seems to me there are two possibiities that make any sense at all.  The first is that all of the new Minis have counterfeit processors on them.  The second is that there has been a recent change to the 328P by Microchip

A 3rd is that the chips are somehow being damaged during manufacture or handling.

 

I was involved in a project like this recently. I was moved on before we reached a definite conclusion, but there was certainly the possibility that the chip was getting damaged in manufacture or factory handling.

 

But for the moment I have to conclude that using the Pro Mini as a very low sleep current option for battery powered projects just doesn't work anymore. 

You mean, using cheap Chinese clone  Pro Minis from ebay - so, again, what about trying a "genuine" one from a reputable supplier?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Tue. Jul 21, 2020 - 02:23 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What are your fuses set to?

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Try this sketch and see if it helps:

 

#include <avr/sleep.h>
#include <avr/wdt.h>
int i;

void setup(){

  for (i = 0; i < 20; i++) {          // all pins to one rail or the other
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW);
  }
  ADCSRA = 0;                         // disable ADC for power saving
  wdt_disable();                      // disable WDT for power saving
  PRR = 0xEF;                         // power down all modules
  set_sleep_mode (SLEEP_MODE_PWR_DOWN); // Deep sleep
  sleep_enable();
  sleep_bod_disable();                // disable brownout detector during sleep
  sleep_cpu();                        // now go to sleep

}

void loop(){
}

 

 

(Possum Lodge oath) Quando omni flunkus, moritati.

"I thought growing old would take longer"

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Once again, are you sure the comparator is off?  See #16 & ensure that it is explicitly turned off your code.

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Tue. Jul 21, 2020 - 04:03 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ki0bk wrote:

Try this sketch and see if it helps:

 

#include <avr/sleep.h>
#include <avr/wdt.h>
int i;

void setup(){

  for (i = 0; i < 20; i++) {          // all pins to one rail or the other
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW);
  }
  ADCSRA = 0;                         // disable ADC for power saving
  wdt_disable();                      // disable WDT for power saving
  PRR = 0xEF;                         // power down all modules
  set_sleep_mode (SLEEP_MODE_PWR_DOWN); // Deep sleep
  sleep_enable();
  sleep_bod_disable();                // disable brownout detector during sleep
  sleep_cpu();                        // now go to sleep

}

void loop(){
}

 

Thanks very much.  Your sketch also produces sleep current of 150uA.  And I tried adding specific code to disable the comparator, as suggested elsewhere, but that had no effect.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And what happens if you ditch Arduino and just use plain C or Asm?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Could the reset switch be leaky?  Especially if it uses a cheapy rubber dome instead of a metal one..  I'vs seen rubber dome keypad switches that are not infinite in the open/off position, but go very low (as desired) when pressed.

 

What other parts are left besides the micro? Probably none; maybe you added ceramic caps back for run safety.

 

 

 

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:

What are your fuses set to?

+1

 

Four legs good, two legs bad, three legs stable.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Probably they are different chips with fake markings. For example, you know all those mega128 that you can buy from Aliexpress or Ebay for less than $1?

I have a few. If you look carefully at the markings, it's clearly visible there was something different below that was crudely erased and new markings were applied. It's common practice. They do work as regular mega128 though.

 

Anyway, yeah, maybe it's a bad batch that should have been destroyed but instead found it's way to shady dealers.

 

Last Edited: Wed. Jul 22, 2020 - 08:59 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Perhaps microchip actually started to produce a K version or perhaps L (where full swing osc works) , and we know that that "new" process  leaks more than Atmels version.

 

 

Add:

But perhaps only sold in asia!

Last Edited: Wed. Jul 22, 2020 - 09:25 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One way to find out is to buy a "real" 328P and replace it with one that use 150uA

 

Other thing perhaps the PCB's aren't the same?

like how Vcc and AVcc connected?

what about Aref ?

how is reset done?

are there a leaky regulator?

 

Are we sure that NO inputs are floating? (and if pulled low that the pullup resistor is disabled)

If you use a boot loader make sure that RX isn't floating when you do this. 

 

   

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think it is better to read the entire discussion before posting rather than posting same things many times! sad

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sorry if there was some repeats.

 

But one thing still missing is the fuse settings !

 

One thing it could be is that BOD is enabled (it's a fuse).

(You can manually disable it)

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I didn't mean you. (However, two of your questions were repeated ;-) )

I'm talking to all members.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:

I think it is better to read the entire discussion before posting rather than posting same things many times! 

 

And yet you aren't following you own advice. What are your fuses set to?

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:

And yet you aren't following you own advice. What are your fuses set to?

Me? Why? I didn't post any repeated thing in this thread at all! surprise

And currently I'm not working on any AVR projects. So my fuses are set to nothing! wink

 

If you asked it from OP, he said that he used same program and same fuses for both boards.

Slow and Steady!

Last Edited: Wed. Jul 22, 2020 - 03:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:

Me? Why? I didn't post any repeated thing in this thread at all! 

 

Apologies.

 

pajuhesh80 wrote:

If you asked it from OP, he said that he used same program and same fuses for both boards.

 

Yeah. But he still hasn't said what the fuse setting is.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:
Yeah. But he still hasn't said what the fuse setting is.

Most likely as OP is working with Arduino IDE, they don't know, so standard fuses for any 328 based arduino (nano)

 

 

 

(Possum Lodge oath) Quando omni flunkus, moritati.

"I thought growing old would take longer"

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ki0bk wrote:

Brian Fairchild wrote:

Yeah. But he still hasn't said what the fuse setting is.

Most likely as OP is working with Arduino IDE, they don't know, so standard fuses for any 328 based arduino (nano)

 

But the OP said...

 

Quote:

Since I removed *ALL* of the parts except the processor from one of the new Minis, and still got 150uA sleep current

 

...which with standard fuses on a mini would mean the processor would not run as it's expecting a crystal/resonator.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


Brian Fairchild wrote:
...which with standard fuses on a mini would mean the processor would not run as it's expecting a crystal/resonator.

Which could explain the "reset" current?  IIRC that is surprisingly high.

But that means that there IS a clock source, right?  Making my head hurt.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

Last Edited: Thu. Jul 23, 2020 - 01:43 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Perhaps OP could post some high-res pictures of both PCBs?

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


I just had a look at the datasheet that have revision K errata. (the one without full swing). So if the new chips is revision K microchip really have some problems other than OSC 

 

At least it has an other debugWire ID number so you can see if it's a rev. K

(and as said before perhaps it's released i Asia)

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


Here we go again...

 

 

 

Rev K was NEVER released. Why on earth would a global company like Microchip risk releasing it in just one region knowing that it would find it's way into the global supply chain? Answer, they didn't.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

We still need the OP to clarify EXACTLY what was left on the board and what changes they made to the fuses to accommodate the fact that with the crystal/resonator removed the chip wouldn't run.

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OP has not been heard from since #27, time to let this die until heard from again.

 

 

(Possum Lodge oath) Quando omni flunkus, moritati.

"I thought growing old would take longer"

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I hope you a right, the info I posted is from the current datasheet that is from 2018.

 

And why they should do it, they have have a cheaper fab that can produce them for about 1/2 price.

The 328p and 328pb should cost about the same if from same line but a 328p is about $1.8 and a 328pb $1.0 and we know that the 328pb is like a K version.

 

And over from here until we hear for OP or microchip ;)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ki0bk wrote:

OP has not been heard from since #27, time to let this die until heard from again.

 

 

I apologize for my absence.

 

So hopefully to clarify things, the fuse settings on all the parts, both good and bad are FF, DA and FD.  That's low, high and extended.  and those are the stock fuses in the IDE for a 3.3V 8Mhz Pro Mini.

 

Before removing all the parts from one board, I reprogrammed it as a "Atmega 328 on a breadboard (8mHz internal clock)".  You have to download a hardware file for that, but it seems to work fine, and has its own bootloader.  That has fuses of E2, DA and FD.  Then I also reflashed the test sketch in case that mattered.  Then I removed everything from the board, including the reset button, added back capacitors to Vcc that I know are good, and powered up.  It went through the boot process just like before, then went to sleep - at 150uA.  Since all the PC boards are identical, and since I now know that none of the other parts on the board were causing the problem, and since all five bad ones sleep at 150uA, not 170, or 95, but 150, the only answer I have at this point is that it's the processor that's causing the high sleep current.

 

The only thing I can conclude from the markings is that the good part has a 2018 date code, and all the bad ones are 2019.  I have communicated with Digikey and they confirm they have stock with dates as late as March, 2020.  I have also sent email to Kevin Darrah (no response so far) because he is known for his micropower stuff, and I thought he might have chips in stock with recent date codes, and could test to see how deeply they sleep.

 

It seems to me that what needs to happen is replacing the processor on one of the bad Minis with a known genuine part with a date code at least as new as the bad chip date codes, but what the hell - why not March 2020 since they're available.  If the Mini then works properly and sleeps at 1uA, then either the bad ones are fakes, or the bad ones may even be genuiine, but at least I have a source of good chips.  If the replacement chip also sleeps at 150uA, then Microchip has really screwed things up.  I have not yet attempted to open a ticket with Microchip, and probably won't do that unless a known genuine chip doesn't sleep right.

 

The problem I have is that I'm an old guy with shaky hands, and I have a soldering iron but no other rework stuff.  And frankly, I'm not sure I want to spend lots more bucks getting to the bottom of this.  So far I'm out $23 with no sleepable Minis to show for that investment.  Replacement processors from Digikey for the four remaining bad parts would be another $14 delivered.  ChipQwik would be another $17, or a hot air gun even more.

 

So I don't know what I'm going to do.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have tested a "modified" Arduino Pro Mini clone bought 3 years ago. The sleeping current consumption is about 2.5µA.

I am deeply disappointed.

 

The truth is more important than the facts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I heard back from Kevin Darrah, and have sent him one of the bad ones from the second batch to experiment with, and he may make a video on it.   He seems to feel that these are all counterfeits, but I'm not so sure.  Anyway, I've suggested that it would make a good before-and-after video if he switched out the bad chip with a known good one from Digikey, but don't know if he will do that.

 

I think for the moment I'm pretty much done with this.  I don't really need anything else from Digikey at the moment, and don't want to pay shipping just for this.  But if a need develops for other Digikey stuff, I'll throw in a couple 328Ps and take my chances with doing the replacement.

 

Meanwhile, if anyone else here already has a Mini with a recent date code, I hope you'll consider modifying it for low current and testing it.

 

Thanks for everyone's comments and suggestions.  I hope at some point we'll come to a definitive answer.

 

Pages