micorcontroller help

hi all, 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 and/or guides? i know my way around ANSI-C, took advance C for engineers at college. thanks,

-zalnn

Reply to
kapatiya
Loading thread data ...

free c compiler for all avr's not just some like the pics free student c compiler for 18f's only

avr's

formatting link

Reply to
Alex Gibson

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.

Reply to
The Artist Formerly Known as K

I don't know much about AVR's, but PIC's are often the best/cheapest way to go when you need real tight timings. Are AVR's RISC?

Reply to
Guillaume

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 Harvard architecture.

Reply to
The Artist Formerly Known as K

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.

Reply to
Guillaume

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".

cheers, Rich.

Reply to
Rich Walker

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

formatting link
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 instructions.

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

formatting link
Some quite impressive avr projects here
formatting link

The atmel stk500 is a pretty good starter board - acts as programmer and board

formatting link
formatting link
avrstudio

formatting link
makes some nice boards. Brian also has some code examples in c and basic.

A low cost starter kit is an avr butterfly

formatting link
base board from

formatting link
sell some quite cheap avr , pic , 8051 boards (pre-assembled not kits)
formatting link

Alex

Reply to
Alex Gibson

But with the PICs you have to deal with that annoying bank switching which isn't so beginner-friendly.

Mitch

Reply to
Mitch Berkson

Its not to bad. Find it causes less hassles for beginners than look up tables and page boundaries.

Had lots of questions on look up tables (16f877) this semester (just finished), 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

Reply to
Alex Gibson

Hi Zalnn

Like you, I am new to both, and exploring PICs now and plan to with AVRs too.

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 ):

formatting link

Also go to their "Books" section for a very good online tutorial on PIC basics ( 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 )

formatting link
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:

formatting link

-------------------------------------------------------------------------------------------------------------

For AVRs, there is a book I bought called C"C Programming for Microcontrollers Featuring Atmel's AVR Butterfly and the WinAVR Compiler" (

formatting link
)

- 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

: -]

Cheers

Dale

Reply to
Dale Stewart

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 AVR.

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.

-Brian

Reply to
Brian Dean

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 version).

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 each application.

Catman

Dale Stewart wrote:

-------------------------------------------------------------------------------------------------------------

Reply to
Catman

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

formatting link
although I think I covered this on my website at :

formatting link
although it is based on assembly language, it is a very good introduction to the inner workings of PICs.

Hope this helps.

:-]

Cheers

Dale

Reply to
Dale Stewart

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.