Microcontroller

How is the Atmel32A for programming?? Can I do more with it than the Atmel328p? Can I do evwrything on 32A which I can do in 328p? So in a nutshell I want to know the scopes of 32A and it's capability over the standard 328p.Thanks in advance...

Have you read the datasheets?

Atmega32A looks like a '1284P with less memory, only one hardware serial port, and only 4 PWM channels.

Or a 328P with 12 more IO. I don't see much other advantage without going into the datasheet in more detail. Add this to your IDE to program it https://github.com/MCUdude/MightyCore

You could plug it into a '1284P board to use it. I offer several form factors, such as Bobweeny http://www.crossroadsfencing.com/BobuinoRev17/ for small system on a board type functionality: |500x290 Can see others at my website.

Bob, I'm fascinated by the button on that board. What does it do and how the heck do you press it?

How is the Atmel32A for programming?? Can I do more with it than the Atmel328p?

It's a somewhat older chip than the ATmega328 family; more of a "bigger ATmega8." From a practical point of view, I think the main difference is that Timer0 and Timer2 only have one "Output Compare register", so you end up with 4 PWM outputs (like the original ATmega8 Arduinos) rather than the 6 that you'd have on an ATmega328. Of course, it has more pins...

Bob, I'm fascinated by the button on that board. What does it do and how the heck do you press it?

I think the gadget of post #2 is a programmer for ATmega32A MCU.

After programming the MCU, remove it from the socket.

Place the MCU on a breadboard.

Make jumper connections between the socket and the MCU as needed.

Build the peripheral circuit on the breadboard and connect it with the MCU.

The Button is the Reset Switch for the MCU; press it to begin execution of the loaded program.

The following one (ATmega32A Programmer cum Learning Kit) is similar to Post #2, but it is equipped with a built-in breadboard. There is no need to remove the chip from the socket.

Similarities and Differences between ATmega32A and ATmega328P

Diff32_328y.doc (77.5 KB)

ATmega328p supports 20MHz operation (only runs at 16MHz on most Arduinos.) ATmega328p runs down to 1.8V (at reduced speeds.) 2.7V for the mega32. Your chart has "maximum digital IO lines" smaller that "default..." for the m32. It looks like the m32 has some A2D features not present on the m328: differential inputs with configurable gain, for instance. m32 does not have "Pin change interrupts." (used by some softwareSerial implementations.) (oops. You did say that!) m328p has "picopower"; in practice I think it means that it has the "Power Reduction Register" (not present on m32; permits disabling individual peripherals to save power.) m32 does not have "interrupt" capability on the watchdog timer. m32 is supported in Arduino using the 3rd party "Mightycore" package. Assembler/Compiler-wise, your list is very incomplete. (For example, both are supported by avr-gcc packages on linux and mac, with no "Atmel Studio" involved.) Another "international forum" that supports both chips is http://avrfreaks.net Despite the "unprofessional" name, this is Atmel's officially sponsored forum.

It sounds like the m32a is probably the cheapest AVR (under $2 from various Chinese sources) that supports JTAG debugging. That's ... sort of interesting.

The information of Post #7 has been checked against data sheets, and the Table of Post #6 is updated accordingly except the following (within dotted lines) which I am not understanding well!

//-------------------------------------------------------------------------------------------------------------

m32 is supported in Arduino using the 3rd party "Mightycore" package. Assembler/Compiler-wise, your list is very incomplete. (For example, both are supported by avr-gcc packages on linux and mac, with no "Atmel Studio" involved.)

//-------------------------------------------------------------------------------------------------------------

What's about the dates of introduction of these two chips?

except the following (within dotted lines) which I am not understanding well!

What don't you understand?

m32 is supported in Arduino using the 3rd party "Mightycore" package.

Your existing table implies that the m32 does not work from Arduino. However, since the m32 is very m8-like, there isn't much effort needed to make it work, and that's already been done. If you load up https://github.com/MCUdude/MightyCore you'll get assort ATmega32 variants defined and usable from the Arduino environment.

Assembler/Compiler-wise, your list is very incomplete. (For example, both are supported by avr-gcc packages on linux and mac, with no "Atmel Studio" involved.)

Atmel has two assemblers for AVR, supported by all versions of AVR Studio and Atmel Studio. I'm pretty sure that they both support both chips. There are a couple of 3rd party OSSW AVR assemblers: "tasm" and "avara" In addition, avr-gcc supports almost all AVRs as a C and C++ compiler. in AVR Studio 4, I think you had to install avr-gcc separately, probably using the WINAVR package. WINAVR coincidentally provides a set of command-line tools (including the compiler) that can be used without the "Studio" IDE to drive them. There are assorted avr-gcc "packages" for various flavors of linux, and Crosspack for Macs. And then more recently, Atmel has been providing "AVR Toolchain" downloads for Windows, MacOS, and Linux that provide the compiler command-line tools without their IDE. Various people have integrated AVR tools with other IDEs, including Visual Studio, Eclipse, and XCode. avr-gcc includes another assembler (not quite compatible the the AVR assembler) as well as C and C++ compilers.

Those are the "free" tools. There are also respected commercial compilers for AVR from Imagecraft, Rowley, and IAR, as well as compilers from less-respected vendors like MikroElectronica.

What's about the dates of introduction of these two chips?

The ATmega32/l datasheet has revisions back to 2002. The ATmega328/etc datasheet says it's initial version was in 2007. I'm not sure that those match up exactly with the release dates, but they sound about right. The first flash microcontrollers (AVRs, in fact) were shipped in 1997... (Both ATmega32 and ATmega328 are "increased memory" versions of slightly earlier chips with the same architecture and peripheral set.)

Three more differences (not included in Table-1 of Post #6) between ATmega32A and ATmega328P on ADC Module. The Table-1 has been updated accordingly.

Feature m32A m328P Bandgap Reference for ADC Calibration 1.22V 1.1V Internal Reference 2.56V 1.1V Temperature Sensor No Yes

I read it somewhere in the literature that AVR stands for Advanced Virtual RISC Microcontroller.

Why do they call it virtual?

I found this.

Thanks for the efforts to satisfy my querry.

I saw that in my textbook too.

The same kind of lore exists for the 555 timer too. The story goes that it's named after the three 5k resistors used in the voltage divider, but the creator said he just picked the number arbitrarily.