af. Is ATmega328P just a toy compared to PIC32MX250F128B/PIC32MX270F256B?

QUESTION

Is ATmega328P just a toy compared to PIC32MX250F128B?

ANSWER

ATmega328P is a cheap 8-bit RISC microcontroller. One can hardly compare it to a more advanced 32-bit PIC32MX250F128B/PIC32MX270F256B. But it all depends on what problems you are about to solve. Most inexperienced programmers are more confortable with 8-bit registers, because they think that large values are hard to think about. But a 32-bit microcontroller advantages quickly become relevant, if you start to deal with more than 256 bytes of date. 8-bit microcontrollers try to use various mechanism to address more 32 kB, 64 kB or larger memories, but no single register can hold an absolute address of a memory location.

However, high programming languages like C make 8-bit microcontrollers appear as powerful as 16-bit or 32-bit microcontrollers, because they support larger data types (16-bit, 24-bit and even 32-bit). Unfortunately, there is a high cost to pay in microcontroller performance. 8-bit microcontrollers need inbuilt subroutines to do 16, 24 and 32-bit arithmetic, but PIC32MX250F128/PIC32MX270F256B can do it in a single machine command. It also supports simpler addressing modes.

How about the number of pins? Yes, ATmega328P, PIC32MX250F128B and PIC32MX270F256B all share SDIP-28 casing. So, it is as easy to build a custom circuit with PIC32MX250F128B/PIC32MX270F256B as with ATmega328P. The downside of PIC32MX250F128B is marketing and programming support. ATmega328P is a basic microcontroller for most Arduino kit, while PIC32MX250F128B had no such luck to be sold on Arduino like PCBs to schools and universities. Another advantage of ATmega328P is also that is costs about 40% less than PIC32MX250F128B. But paying about 2 € compared to the total cost of a PCB is not a lot a great difference.

The main problem of PIC32MX250F128B/PIC32MX270F256B was that it lacked SW support for educational purposes. But now this support is freely available from PC USB Projects website.

So, I would personally recommend you to start with a modern 32-bitn PIC32MX250F128B/PIC32MX270F256B microcontroller instead with an obsolete 8-bit one. However, you should decide by yourself… Maybe your PIC32MX250F128B/PIC32MX270F256B prototype would someday grow into a mass-production device, while with ATmega328P you would probably remain stacked with growing “8-bit problems” as microcontroller inbuilt RAMs and EEPROMs grow larger each year.