Let's Make Robots!

Difference between 328 and 328P

I was looking on the atmel product catalogue and saw that the AtMega328 that seems farily common has a 328 and 328P variation. Only thing I can see on the atmel site is that the 328P has picopower. What is this and what effect does it have? Which of the 2 is generally more suitable for usage in a robot?

My assumption was that the picopower will operate on lower voltages but the datasheets on the atmel site seem identical in that respect unless its an error on there part.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Prorgamming wise, it doesn't make a difference. They both should be the same because they share the same datasheet.

Picopower on AVRs is probably the same thing as XLP (Xtreme low power) on PICs. They claim to have a very low current consumption in SLEEP mode, not idle mode. This is designed for battery powered devices which are turned on for only short periods of time, e.g. a PIR trigger unit for a house alarm system.

Ohk. When I said idle mode above, I thought there isn't much difference between sleep mode and idle mode. Now that you say that idle mode and sleep mode are different, can you please give me the point of difference?

Well ok idle mode is a sleep mode but there are different sleep modes. The really low figures on the first page of the datasheet (power-down mode: 0.1µA; power-save mode 0.75µA) will only be achieved in these particular states. For example in power-down mode only the external interrupts INT0 and INT1, the TWI address match register and the watchdog timer are active, whereas in idle mode onlly the CPU and the flash clock get disabled.

On the side of programming the atmega328 and the atmega328p do have different device IDE

can you tell us more about that?

cuz i been trying to program a 328p with an uno board, and it fails no matter how i try,
except if i actually remove the ic from the uno board and replace it with the 328p, that works without problem.

do you think i could take the uno device file from the arduino ide and copy and change it to work with
the 328p?


im confused the 328p will work but the 328p will not?

i think you mean that a 328 work and a 328p dose not.r3 unos are shiped with 328p. on the programming side the atmega328 has a signiture of ATmega328   0x1E 0x95 0x14 and the ATmega328P 0x1E 0x95 0x0F. this link should help http://arduino.cc/forum/index.php/topic,98956.0.html

it works only when i replace the original atmega on the uno board, and its does run ok on a breadboard,

but when i try to program it in any way other then replacing the original on the uno board it refuses to recognize it.

ive tried to use the uno board as an ISP with various isp sketches, and also mogul's solution to do it via TX/RX.

Ohk, for a moment, let us say that both me and you don't know what picopower is. Let's try to get the meaning from the roots of the word. Pico is a scientific prefix for 10^(-12) and power is a unit of energy consumed per second. Ohk. So together, picopower must mean that only 10^(-12) Watt of power is consumed or 10^(-12) Joules of energy is consumed every second. This can't be for running state as resistors, capacitors and inductors consume a lot more power so this must be for the idle state.

So there we have it. Picopower mean that in idle state, the IC consumes a lot less power than the normal (non P suffix) IC. This doesn't have much difference in application as in our robots, there is very little idle time. The P suffix IC is just a to denote a more energy efficient package than normal non P suffix IC.

Ok, thanks for that.

Forgot to say. This is mostly out of interest. I have quite a bit of experience with .net programming so personally I'd probably get a netduino or FEZ rather than getting a load of AVR's or just buying an arduino.