i am very new to robotics. i have done some reading into what
microcontrollers i might work with, and have narrowed it down to PICs
and Atmel ICs, any reason to go with Atmels over PICs? i am mostly into
automation, like controlling servos and motors (all DC).
also can someone point me in the direction of getting started tutorials
i know my way around ANSI-C, took advance C for engineers at college.
I use PICs quite quite bit, but honestly, the AVRs are probably a better
way to go. There are a wider variety of free tools available, and the
AVRs generally seem to offer a better mix of features. The main reason I
use PICS is that AVRs used to be subject to major supply problems -- I
don't know if this is still the case or not, however.
AVRs tend to be described as RISC, but I believe the instruction set is
substantially larger (over 100) than the PICs 30-odd commands --
however, most execute in a single clock cycle with some notable exceptions.
Like the PIC, the AVRs (or at least the ones I'm familiar with) are
Ok, thanks. Still, can you really get down to a 100 ns precision with
AVR's in real-world applications, like you can with the PIC 18Fxxxx
series? (Not to talk about the ds30 family, which can do ever more
wonders ;-) )
To me, the Harvard architecture is a real plus for most embedded
application... but not a lot of people like it. I do.
All that said, PICs are often unfairly misjudged. Every time I used
them in some project, the project was released the quickest, smoothly
and without any furter problems. Every time I had to use 8051-based
microcontrollers, on the other hand, that was nothing but pain along
the way. And yet, 8051s are still very, very popular. Not fair. ;-)
As for development tools: Microchips tools are, for the most part, free,
and pretty good too.
The C compilers aren't free, but they are largely usable and they cost
less than $400 for a single license - not what I call a big investment.
Guillaume <"grsNOSPAM at NOTTHATmail dot com"> writes:
For me, it's the endless reams of PDF's on the Microchip website.
Not just errata, but *regularly updated* errata with silicon versions.
Migration guides from any PIC to any other PIC, it seems like.
Oh, and my favourite comment about PICs:
"If you think it's the PIC that's wrong, you haven't looked at the rest
of the circuit".
rich walker | Shadow Robot Company | firstname.lastname@example.org
technical director 251 Liverpool Road |
On Tue, Jun 28, 2005 at 10:22:29PM +0200, Guillaume wrote:
Precision of what? The max clock on most AVRs is 16 MHz so that's the
max clock speed of their on-board timers which give you one clock
every 62.5 ns for things like pulse-width measurement, pulse
generation, etc. That's also how fast many of the instructions
execution - 62.5 ns, so I guess the answer to your question is "yes",
unless you mean something else.
I'm not an expert on PICs, but my understanding is that they execute
one instruction rougly every 4 clock cycles. For an AVR, this is one
instruction roughly every clock cycle, so clock for clock, the AVR is
roughly 4x faster. So a 40 MHz PIC is roughly equivalent to a 10 MHz
But one of the bigger plusses is that the AVR instruction set was
designed with high level compilers in mind. Atmel actually teamed
with with IAR when designing the AVR instruction set so it is designed
to include features that high level language compilers can take good
advantage of with regard to code generation in terms of code density
and speed. AVRs have very good code density and with 32 general
purpose registers and the full gambit of addressing modes makes for
efficient code. Architectures with only a few registers or are
accumulator based spend a lot of time shuffling data back and forth
between RAM and the few working registers.
The open source GNU GCC is an excellent C compiler and freely
available for the AVR target. There are a number of excellent
commercial C compilers available also, of course, IAR probably being
the best, but it is a bit expensive for your average Joe.
"Guillaume" <"grsNOSPAM at NOTTHATmail dot com"> wrote in message
Not really and does it really matter ?
Both are cheap and pretty easy to use.
Avrs are similar to pics , bit faster.
A good over view of AVR
For me the main advantage of the avrs are:
IDE / simulator from atmel is better IMO - windows only though
free c compiler (avrgcc / win avr) available on all platforms - windows ,
linux , OS X , freebsd
PICS 16f are good for beginners who want to learn assembly
as there are only 35 instructions where as most avrs have 115 asm
18f have around 88 instructions.
Both have lots of code on the web.
If you want to use basic there is the demo version of bascom avr available
for free from mcs
Some quite impressive avr projects here
The atmel stk500 is a pretty good starter board - acts as programmer and
http://www.atmel.com/dyn/products/tools_card.asp?tool_id '25 avrstudio
http://www.bdmicro.com/ makes some nice boards.
Brian also has some code examples in c and basic.
A low cost starter kit is an avr butterfly
base board from
www.futurlec.com sell some quite cheap avr , pic , 8051 boards
(pre-assembled not kits)
Its not to bad.
Find it causes less hassles for beginners than look up tables and page
Had lots of questions on look up tables (16f877) this semester (just
more than a few people with problem of falling off the end of the table or
using the short table method and hitting the page boundaries.
Trick is to have any bank switching in your setup routine and try and keep
most or all of the main part of the program in bank zero.
Can't avoid it all the time.
Microchip documentation does tend to be better.
No datasheets that stay marked as preliminary for the lifetime of the chip.
Microchip for me has the best docs of any of the companies thast produce
micros I use.
microchip <- atmel <-analog /TI <- zilog
philips and winbond equal worst I've come across.
Like you, I am new to both, and exploring PICs now and plan to with AVRs
I am working on my first robot project using PICs and the CCS C compiler.
For PICs go to this site for programmer/test board, and free evaluation
version of C compiler & IDE ( althogh CCS C compiler has better support
for PWM for
DC motors control ):
Also go to their "Books" section for a very good online tutorial on PIC
( assembler ). One of my lecturers has included this tutorial in one of
his PIC courses.
I also just got Myke Predko's "Programming and Customizing PICmicro
Microcontrollers"- which is apparently a major reference.
I recommend the CCS C compiler for 16F series ( USD $125 )
There is also a textbook using CCS C called
"Embedded C Programming and the Microchip PIC".
Finally, I have a brief guide on my website:
For AVRs, there is a book I bought called C"C Programming for
Atmel's AVR Butterfly and the WinAVR Compiler" ( www.smileymicros.com )
- for USD$ 20 you can buy an awesome
Butterfly evaluation board from digikey.com - nothing comes near it for
this price - nothing!
Hope this helps
Two main advantages to each micro (IMHO) if you are comfortable with C:
PIC's - Myke Predko's books (I like "Programming Robot Controllers"),
and free no hassle samples from Microchip.
AVR's - Easy in-circuit programming, and AVR Freaks.
As far as disadvantages, PIC's need a programmer (Myke's book shows how
to build one for under $20US) and getting AVR samples from Atmel is akin
to getting a green card (slow and difficult).
I prefer the AVR but for a reason that won't matter to you; I hate C so
I need a good, cheep BASIC compiler. Bascom for the AVR is free (4K
limit, $79 full version) while PICBasic is $100US ($250 for the pro
My suggestion: learn to use both. Start with Myke's book and the free
PIC's. After awhile, try the AVR. Since you can get PIC's and AVR's to
communicate, there isn't a problem using both in one robot. Knowing the
strengths and weaknesses of both will allow you fit the right part to
Dale Stewart wrote:
I bought Myke's book "Programming Robot Controllers", for PIC robotics,
but from my experience wouldn't recommend it for a BEGINNER
( however, it IS an excellent book for INTERMEDIATE to ADVANCED PIC
roboteers, maybe the best available ).
Another book I forgot to mention is "Easy Microcontol'n"
( assembly-language ) from www.sq-1.com
although I think I covered this on my website at :
although it is based on assembly language, it is a very good
introduction to the inner workings of PICs.
Hope this helps.
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.