This page is dedicated to Atmels AVR family of CPU's.
These CPUs feature 1 MIPS per MHz, and have a Flash which makes them incircuit (re-)programmable.
Unlike some competitors they have a straight forward register- and instructionset.
There is a quite responsive, but slow loading AVR Forum,
where questions can be discussed, follow the chat link
the WAVRASM and the IAR ASM are told to be not compatible what the LPM instruction concerns
IAR C
The IAR C Compiler is rather complicated to work with and rather expensive, in the order of
3000 CHFr, 1800 $US. Comes with Dongle. Their email support is responsive, unfortunately there
is no newsgroup.
Imagecraft
Their C Compiler is simpler to operate than the IAR and cheaper. In the order of 250$US.
There is a 30 day trial version. No dongle, but a code that has to be requested at Imagecraft.
The email support is responsive. A listserver is available, but no newsgroup. Yearly support is 30$.
code is coming soon
E-LAB Pascal Compiler
E-Lab
It took a while until I found this pascal compiler. It comes with a programmer
plus a whealth of functions and libraries. A wizard configures a new project with a few
clicks. Eg Multitasking is just a click. The first and only compiler I know of
that treats EEPROM same a RAM. Even blockmoves to and from the EEPROM are supported.
Support is responsive, plus a (slow) http forum is available.
The standard version is approx 480Euro, the pro version is 940Euro.
special option fuses for clock and such. see page 27 & 182
Therefore the migration is rather painless beside the following points :
The 323 requires the new clock selection fuses to be set. If set to external clock,
there has to be an external clock, otherwise nothing will work anymore. The serial
programming also won't work anymore. Attaching an external oscillator helps. Fortunately
there is no clock option NONE. Note that while the manual talks about 0 and 1's to be
written there, the programmer software might talk about programmed=0 and unprogrammed=1
There are 2 more interrupts, compare page 20 &21 of the 163 manual with pages 22 .. 24 of
the 323 manual. This means some interrupts vectors are shifted by one or two.
When replacing the definition files for the registers, note that some registers changed
their name : GIMSK became GICR and such.
The special option fuses require close attention when it comes to the JTAGEN,
programmed by default, part of the PortC behaves unexpected. When just migrating,
set it to unprogrammed and it behaves as PortC is expected
Migrating from the Mega323 to the Mega32
Again almost identical, except for these differences :
new ADC modes, incl. programmable gain
Tricky is the programming such that the fuses have to be set first.
The Mega32 fuses in summary here
Migrating to the Mega128
Aahh, finally a CPU with sufficient code space. Yet it is not perfect. The JTAG
port is on top of the ADC and the SPI programming requires a tristate buffer.
As I till now couldn't refrain from using the internal ADC, I wasn't able to have
a look at the JTAG and its capabilities.