I just started getting into embedded programming. I come from a CS background, so programming and using compilers are pretty natural (though making .exe not .hex). Our class is using a PIC 18F4520 chip on a prototype board (called the BoogieBoard) we made last semester and use MPLAB IDE2 and CSS PIC-C compiler.
I'm very excited about this and have not been this gung-ho over something in a long long time! Unfortunately the class is going much slower than I anticipated, so I began looking online for fun starter projects I can do. I found a few I liked and ended up getting a few chips from PICAXE and atnel. I also have an Arduino Uno.
After reading all the info for the PIC, PICAXE, Atmel and Arduino, all the various ICs, programmers and compilers started to get way too confusing! To be honest, I'm not even sure what I'm even all confused about yes since I'm a little overwhelmed by it all.
To start with, here's some of the base-line things I've gathered:
ICs
Compilers
Programmers
It seems like I have a good grasp of this all, but my confusion all came in when I began using more than one kind of chip.
The ardunio uses one piece of software available for free. It compiles and programs the chip all in one application. The hardware portion of the programmer must be built into the board then?
The PICAXE chip also uses only a single free software application to compile and program its chips. The only hardware you need is their USB cable which has the hardware programmer built-in, and a simple circuit on your dev board.
I'm not very familiar with the BoogieBoard other than the chip that is uses. I also know our school built a custom USB driver/adapter for it so it works just like the Arduino, you just plug the USB cable in and go. The programmer we use from Microchip is MPLAB and is free to download. The compiler though is not free, and so far the only way I can write code is at school where they have a license.
I only recently bought the Atmel chips for a project I found and have been reading on how to program them. It seems I need to get something similar to the USB cable for the PICAXE, which I found one for $22, ~same as the PICAXE. I also don't know what to use for this chip to both program or compile.
So my real confusion and frustration comes down to the whole programmer and compiler issue. I'm just a hobbyist/student and can't afford a compiler for my BoogieBoard, so one school ends that's probably done. Is this also going to be the case for my AVR chips?
What does everyone here use for compilers and programmers? Unless I buy something from like PICAXE or Arduino, are they always going to be separate from each other? Will I have to pay for a compiler too? Are there any all-in-ones for the PIC or AVR chips? I also can't figure out how to do debugging. As far as I can tell I can't set breakpoints, watch variables, etc. like I could when doing windows programming.
Anyway, I think that's probably enough to digest. Thanks for any help and for taking the time to read all of this!
I'm very excited about this and have not been this gung-ho over something in a long long time! Unfortunately the class is going much slower than I anticipated, so I began looking online for fun starter projects I can do. I found a few I liked and ended up getting a few chips from PICAXE and atnel. I also have an Arduino Uno.
After reading all the info for the PIC, PICAXE, Atmel and Arduino, all the various ICs, programmers and compilers started to get way too confusing! To be honest, I'm not even sure what I'm even all confused about yes since I'm a little overwhelmed by it all.
To start with, here's some of the base-line things I've gathered:
ICs
- Microchip (PIC) & Atmel (AVR) are kind of the two defacto brands/manufactures of microchips. Honestly, I don't know if there are any other, these seem to be the only two I've heard (* for hobby/home use).
- You can get chips that are completely blank or ones that are 'bootstrapped' (?).
- Bootstrap code is a special kind of program that lives on the chip that lets the chip program itself.
- Chips without bootstrap code need to be programmed some other way.
Compilers
- Embedded compilers turn your code into machine language (.hex). I'm pretty familiar with this having done windows programming for years.
- There seem to be dozens of compilers and each focus on being specific to one kind of thing. i.e. CCS focuses on the PIC line of chips
- They all seem to be rather expensive unless you buy something from like Arduino that makes their own free for download.
Programmers
- These basically write the .hex file to the chip
- They include some kind of hardware that connects to the chip and software to program it with.
- The hardware is basically an interface between your software/computer and the chip and typically requires a driver to function properly
It seems like I have a good grasp of this all, but my confusion all came in when I began using more than one kind of chip.
The ardunio uses one piece of software available for free. It compiles and programs the chip all in one application. The hardware portion of the programmer must be built into the board then?
The PICAXE chip also uses only a single free software application to compile and program its chips. The only hardware you need is their USB cable which has the hardware programmer built-in, and a simple circuit on your dev board.
I'm not very familiar with the BoogieBoard other than the chip that is uses. I also know our school built a custom USB driver/adapter for it so it works just like the Arduino, you just plug the USB cable in and go. The programmer we use from Microchip is MPLAB and is free to download. The compiler though is not free, and so far the only way I can write code is at school where they have a license.
I only recently bought the Atmel chips for a project I found and have been reading on how to program them. It seems I need to get something similar to the USB cable for the PICAXE, which I found one for $22, ~same as the PICAXE. I also don't know what to use for this chip to both program or compile.
So my real confusion and frustration comes down to the whole programmer and compiler issue. I'm just a hobbyist/student and can't afford a compiler for my BoogieBoard, so one school ends that's probably done. Is this also going to be the case for my AVR chips?
What does everyone here use for compilers and programmers? Unless I buy something from like PICAXE or Arduino, are they always going to be separate from each other? Will I have to pay for a compiler too? Are there any all-in-ones for the PIC or AVR chips? I also can't figure out how to do debugging. As far as I can tell I can't set breakpoints, watch variables, etc. like I could when doing windows programming.
Anyway, I think that's probably enough to digest. Thanks for any help and for taking the time to read all of this!