ATmega328-PU X ATmega328P-PU

Qual a diferença entra um controlador e outro ? Pois observando o datasheet os dois controladores são idênticos ?

O ATMega328P-PU é a versão mais nova do Microcontrolador e se refere à adição da tecnologia proprietária PicoPower da Atmel, como eles informam:

So many things are going wireless, and so many devices are becoming battery powered, that power consumption is a very important thing. AVR has a new marketing term called picoPower. PicoPower is a new thing from AVR, and it leverages all the previous technology we have in lower power, and adds to it. One of the big differences with picoPower versus the other AVRs was the power save mode. It has gone and completely redesigned the 32 KHz oscillator to have a zero-power 32 KHz oscillator. That’s allowing 0.6uA in power save with that oscillator running. Finally, in full run mode, it can do as low as 220uA per MIP in full active mode. These devices run from 1.8-5.5V. The 1.8V device is a true 1.8V device. That means that everything works at 1.8V. The designers can write to Flash, SRAM and EEPROM.

Fora isso, a assinatura do Microcontrolador também muda, por isso, é necessário configurar o avr-dude para adicionar a assinatura, caso contrário o código não irá compilar para a versão picoPower.