Go Down

Topic: Arduino vs standalone microcotroller programming (Read 1 time) previous topic - next topic

cmd1024

Apr 10, 2012, 01:50 am Last Edit: Apr 10, 2012, 01:51 am by cmd1024 Reason: 1
Hi,

I am quite new in the field. I hope my question does not bother you all. Arduino is great to program and use. But if i need to produce standalone micro-controller(e.g in the case of manufacturing a device) i guess i need to know pic programming, C language, programmer kit ect.

1) Arduino is not using C.
2) Using Arduino board i can not program any PIC microcontrollers or ect.

My question is that if i make a device and can not use Arduino for the ultimate goal, it means i also have to learn pic programming and many other aspects? Is Arduino just for testing your ideas rather than implementing them for standalone use.

Thanks,

graynomad

Quote
Arduino is not using C.

Yes it is, C or C++, absolutely bog standard.

Quote
Using Arduino board i can not program any PIC microcontrollers or ect.

PIC programming has nothing to do with Arduino as it uses AVR chips. Totally different product line, PIC are made by Microchip, AVRs by Atmel. All official Arduinos use AVR chips.

You can easily use an "Arduino" without using the whole board, the simplest method is just remove the chip (if it's a DIP) after programming and plug it into your PCB. But you can use AVR Studio to program any AVR and you can (AFAIK) also just burn the HEX file produced by the Arduino AVR using a ISP programmer. Certainly I've burnt bootloaders that way.

Search for "standalone Arduino" there are 100s of examples.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

kf2qd

For a standalone device (not using the Arduino PCB) you can use a 328P that has the bootloader and program that chip in the Arduino board and remove the chip and install it on your own board. Or you can use the ArduinoISP program and load a program directly to an AVR chip directly.

Or you could go through the same process with a number of other microcontrollers which will all do about the same job, they just use a different set of tools and have other options.

The 328P used on Arduinos comes in 2 forms. One is referred to as a DIP (dual inline package) and has 2 rows of 14 pins (pins are 0.1 inches apart and the 2 rows are 0.3 inches apart) and a version that is a small, square surface mount package. The DIP version is easier to work with for most off-board prototyping. I have a DIP version that is mounted on a breadboard and also has a MAX232 connected so I can program it. I use it just like and Arduino board, just use RS232 instead of USB to program and communicate.

If you have the surface mount type Arduino board you can use it as an ISP to program the bootloader in the DIP type 328P on the breadboard.

CrossRoads

"The 328P used on Arduinos comes in 2 forms."

Well, 3 actually, the third is an even small surface mount package, with no leads.
28 pin DIP ATMega328P-PU typically used (and often confused with ATMega328-PU, which has different "signature byte")
32 pin TQFP ATMega328P-AU used on many small boards like the ProMini, Nano, Fio
32 pin 'leadless' part, ATMega328P-MU  Not often seen on boards
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

DuaneB

Cut a long story short -

There is an awful lot you can do with Arduino
The community support is excellent
There are lots of off the shelf libraries, break out boards and shields that can get you deep into your chosen project fast

Its easy to build your own standalone and cheap - less than 10 USD.

Its a very good feeling the first few times you build a standalone Arduino for a project, I have two on my desk now, one in an Audino Synthesizer that took a day to build and one in a RC Car/Go Kart Lap Timer, both build from just the chip and supporting components, not a ready built Arduino.

Duane B

rcarduino.blogspot.com
Read this
http://rcarduino.blogspot.com/2012/04/servo-problems-with-arduino-part-1.html
then watch this
http://rcarduino.blogspot.com/2012/04/servo-problems-part-2-demonstration.html

Rcarduino.blogspot.com

SirNickity

You really need to consider "Arduino" as two parts...

First, the official development board.  It's nothing but a life-support system for an AVR microprocessor.  Take the chip off the board, provide your own power, crystal, and serial I/O, and you still have an Arduino.  As posted above, that's Arduino on a Breadboard, and is documented very thoroughly all over the place.

Second... there's the software.  The IDE is just that -- a text editor and build environment.  Nothing special about it at all, except it shortcuts the learning curve considerably.  No need to worry about getting your toolchain set up, having the right versions of everything ... it just works, out of the box.  However, it's not required that you use the IDE.

You can take the Arduino libraries and import them into AVR Studio, take your .INO (or .PDE) files and import them as .cpp and .h files (after adding the necessary includes and function prototypes that you get for free from the IDE build scripts), and there you go.

The libraries are just convenient wrappers to all the AVR-specific code.  You can replace all your calls to "digitalWrite" and "shiftOut", etc., with your own functions or loops, then drop the Arduino includes entirely.  As mentioned above, Arduino code *is* C/C++.

So, you see, if you want to go "standalone", you can -- to any degree that you wish.  There's a very direct, and fairly painless, upgrade path to any level of independence that you want.  It's just a booster for rapid development, not really anything unique.

Go Up