The new Atmega328PB

  • The high-performance Atmel® ATmega328PB is an 8-bit AVR RISC-based microcontroller (MCU) with picoPower® technology. It combines 32kB ISP Flash memory with read-while-write capabilities, 1kB EEPROM, 2kB SRAM, 27 general purpose I/O lines, 32 general purpose working registers, five flexible timer/counters with compare modes, internal and external interrupts, two USARTs with wake-up on start of transmission, two byte-oriented 2-wire serial interfaces, two SPI serial ports, 8-channel 10-bit A/D converter, programmable watchdog timer with internal oscillator, a unique serial number and six software selectable power saving modes. The device operates between 1.8-5.5 volts.

    The ATmega328PB is the first 8-bit AVR MCU to feature the QTouch® Peripheral Touch Controller (PTC), which acquires signals in order to detect touch on capacitive sensors, and supports both self- and mutual-capacitance sensors. The PTC is supported by the QTouch Composer development tool (QTouch Library project builder and QTouch Analyzer). It provides a faster and less complex capacitive touch implementation in any application.

    The ATmega328PB supports 24 buttons in self-capacitance mode, or up to 144 buttons in mutual-capacitance mode. Mixing and matching mutual-and self-capacitance sensors is possible, and only one pin is required per electrode – no external components are required, delivering savings on the BOM cost compared to competing solutions.
    By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.

    Nice feature for MySensors is that it has 2 SPI interfaces, so nice for the ethernet gateway 😉 and also has a Unique ID

    Application note here

    Thanks to @samuel235 for finding this.

     Flash (Kbytes):				32 Kbytes
     Pin Count:						32
     Max. Operating Freq. (MHz):		20 MHz
     CPU:							8-bit AVR
     # of Touch Channels:			12
     Hardware QTouch Acquisition:	Yes
     Max I/O Pins:					27
     Ext Interrupts:				27
     USB Speed:						No
     USB Interface:					No
     SPI:							2
     TWI (I2C):						2
     UART:							2
     Graphic LCD:					No
     Video Decoder:					No
     Camera Interface:				No
     ADC Channels:					8
     ADC Resolution (bits):			10
     ADC Speed (ksps):				15
     Analog Comparators:			1
     Resistive Touch Screen:		No
     DAC Channels:					0
     DAC Resolution (bits):			0
     Temp. Sensor:					Yes
     Crypto Engine:					No
     SRAM (Kbytes):					2
     EEPROM (Bytes):				1024
     Self Program Memory:			YES
     External Bus Interface:		0
     DRAM Memory:					No
     NAND Interface:				No
     picoPower:						Yes
     Temp. Range (deg C):			-40 to 85
     I/O Supply Class:				1.8 to 5.5
     Operating Voltage (Vcc):		1.8 to 5.5
     FPU:							No
     MPU / MMU:						no / no
     Timers:						5
     Output Compare Channels:		10
     Input Capture Channels:		3
     PWM Channels:					10
     32kHz RTC:						Yes
     Calibrated RC Oscillator:		Yes
     Watchdog:						Yes
     CAN:							0
     LIN:							0
     Ethernet:						0
     Debug Interface:				debugWIRE
     I2S:							No
     RTC:							Counter

  • Hardware Contributor

    @ericvdb - This looks like a huge step forward to increase the capabilities of an already fantastic uC.

    Thank you for tagging/linking me into your detailed thread regarding this new uC from Atmel.

  • @samuel235 with pleasure 😉

  • Admin

    It really is a step up the ladder, with more peripherals.

    However, the memory is still only 32Kb flash (minus space for bootloader..). So for advanced nodes (or GW's) it will be too small..

  • With the 2 SPI ports, the softSpi library is not needed. Wouldn't that free up some space for a gateway?

  • Hardware Contributor

    @ericvdb - Now, that is what you call "Good thinking batman". If you are correct in saying that then yes, surly it would. But how much, is the question.

  • For all of you that need two SPI ports, two SPI ports are already embedded in the "regular" ATMega328p. That is if you don't need the USART. The USART can be configured to operate in MSPIM (Master SPI Mode). By the name of it you can conclude that the device only operates as master. But I guess that is fine for 99% of all MySensors applications?

    Here is an Atmel application note concerning this matter:

  • Hardware Contributor

    @peka - Ahhh, interesting. Thank you for providing that link for us.

  • Hardware Contributor

    I would not be suprised to see that there are more overlaps on the pins. Like using 2 serial ports means only 1 I2C. I ordered samples, should get them coming monday, and then I will start playing with these new thingies 🙂

  • Hardware Contributor

    Just a quick update: this mcu has a few pins which were power related on the older atmega328p-au. So i will need to make/find a board layout to expose all pins. I saw something on Hackaday, to be investigated. I received samples from Atmel, they do not have this chip in dip28. Makes sense given that there are more signals to be brought to the outside. The AU and AN package are the only options (so only SMD).

  • Hardware Contributor

    yep one or two vcc I don't remember are signals now. it's cool idea. I won't have lot of time to test I will follow your work 😉 I'm note sure if it is already available in arduino ide boards???

  • Hardware Contributor

    @scalz I have not yet seen any Arduino boards, and from what I have read online, the IDE does not yet support this mcu (but you can get it to work with some manual intervention).

  • Hardware Contributor

    It shouldn't be long before the arduino boards start putting these as an option at least. They should let us have the option between the old and the new 328 uC I would assume.

  • Hardware Contributor

    Just to let you guys know, I've been notified that has the ATMEL ATmega328PB-au in stock and ready for purchase now.

  • Hardware Contributor

    ATMEL was so nice to send me 3 samples. My first smd based node will be with this mcu. Hardware wise the changes are minimal.

  • Hardware Contributor

    @GertSanders - I applied for a sample, got denied. 😑

  • Hardware Contributor

    I was thinking about the ports to expose. I believe a second SPI is preferrable over a second serial port.
    The second I2C port is also multiplexed with other pins. Does not seem like a good choice to add this to external headers if I want to keep external headers to a minimum.
    A pro mini layout already exists so I'm looking more at specialised sensor boards with minimal extension and trying to set priorities.
    Any thoughts on this ?

  • Hardware Contributor

    @GertSanders, from my research, I would have to show my interest on I2C simply due to it only requiring 2 connections to the slave/master device. I'm not 100% sure on your thoughts regarding the multiplexing with other pins, from my understanding of I2C, and the standout advantages, you can use multiple connections on the SCL/SDA lines that I2C require.

    Could you explain what you mean by the port is multiplexed with other pins please?
    Could you also elaborate on why you're thinking to have a second SPI connection instead?

    Sorry if i'm being slightly dumb about this, after-all, i have only just this second recieved my 'Hardware Contributor' title 😳

  • Hardware Contributor

    What I mean is that the pins for serial port 2 (RXD1 and TXD1 are also SPI ports MISO0 and MOSI0). So if I want to use two SPI ports, the second serial port can not be used.
    The second I2C port sits on pins PE0 and PE1, no real issue there, but SDA0 and SCL0 are actually A4 and A5.
    At the moment I think I will expose the second I2C port, not the first one (leave those pins to be analog inputs), and route both SPI ports to a seperate 6 pin header.

  • Hardware Contributor

    @GertSanders, I'm pretty sure there is a software serial port work-around. So if you wanted to have the SPI ports AND the two serial ports, you could use digital pins for serial2 and then enable the software serial port as serial port 2. That way, correct me if i'm wrong, you would end up with 2 serial ports and 2 SPI ports. Again, i'm not 100% certain on this topic though, I'm out of my depths, its given me some information and a lot of interest in learning about the ports even more now though, thank you!

    Not sure if this gives you any other possibilities, but this is the NewSoftSerial solution that enables you to have a software serial port.

  • Hardware Contributor

    This library is actually part of Arduino IDE 1.x and can be used for the purpose of using other pins as serial ports. But the atmega328pb has two hardware serial ports possible. The question is if I need them. In my case I prefer an extra SPI port over all the ADC pins (4 analog inputs is more then enough im my case).

    The datasheet of the atmea328pb is quite an interesting read indeed.

  • Hardware Contributor

    @GertSanders said:

    I In my case I prefer an extra SPI port over all the ADC pins (4 analog inputs is more then enough im my case).

    I think you have just answered your own question. If it suits your situation more, then go for the extra SPI port. I don't see where 2 seeial ports would be any use in any situation other than a gateway tbh. But thats my opinion 🙂

    I might make the datasheet my next morning read over my breakfast 😉

  • Admin

    @Samuel235 @GertSanders

    Consider a RS485 network, with a node that needs to talk with a sensor / actuator via rs232.. Then dual UARTS is quite usable 🙂

    But I admit, it's a very rare situation..

  • Hardware Contributor

    It seems two SPI devices connected to the mcu is more common (ethernet and nrf24, or flash and nrf24).

  • Hardware Contributor

    @GertSanders talking about that, i may add some flash to my latest sensor board. Just a thought.

  • Admin


    You can always multiplex the spi bus, and have multiple devices share it (unless it's a buggy w5100 module..)

  • Hardware Contributor

    Hello, did anyone happen to use this new chip in the end ?
    Or did it arrive too late ?

  • Mod

    @Nca78 I did test it for Atmega328p compatibility which looked just fine.
    Not sure what the current state is regarding support for the extra peripherals though.

  • Hardware Contributor

    @Yveaux ok thank you I will have a look at what is available in the arduino ports.

Log in to reply

Suggested Topics

  • 87
  • 7
  • 1
  • 3
  • 6
  • 9