ARM Processor On a Breadboard (hackaday.com)
An anonymous reader writes: A normal Arduino is easy to use and cheap, but it is a reasonably slow 8-bit processor with limited memory. Why do people use them? They are simple to use and set up. Hackaday shows how to take a cheap ($6) 32-bit CPU in a breadboard-friendly package, plug in a small number of parts (resistors, LEDs, and a cable), and use an online Arduino-like IDE to program it. The chip is way more powerful than an 8-bit Arduino and the code is comparable in complexity to an Arduino sketch that does the same thing. It's an easy way to get into embedded without having to suffer through 8-bit processors. And the new Arduinos also use 32-bit ARM, so that's an option too.
Or you just buy a Teensy 3.1 for around $20. Its a 32-bit ARM running at 72 MHz and runs Arduino code.
I'm sure it's got lots of fancy clouds, and 2.0 facebook integration with RSS twitter feeds.
I'll stick to ASM
An 8-bit processor with limited RAM breeds tight, bug free code. Exactly what you need in the embedded (any?) world. Help get the kids away from bad habits!!
My Arduino projects don't require the power of a 32-bit processor, but do run on batteries. How much more (... or less maybe?) power is drawn by this processor?
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
So let me be clear, I'm currently work on flight controller software (Drones) that I'm running on both AVR and ARM processors. A 72mhz ARMv6 chip ... meh, give me the AVR at 20mhz.
Its not all about bus width or clock speed. Most AVR instructions are 1 or 2 clock cycles, a handful are 3. ARM is rarely a single clock cycle, 3 being common. From a MHZ perspective, you just practically equalized them. The ARM at 72mhz has very little advantage from a CPU perspective. Having an MMU is nice, but once you start using it, you're likely starting to eat more cycles than you have spare and you're no longer real time.
The AVR has a fully orthogonal instruction set. Writing AVR assembly is actually enjoyable. Unlike ARM (god don't get me started on x86).
AVR chips are durable, you're not going to find an ARM that can handle the load/voltage of an AVR. I could go on for hours.
Of course, on that same note, I could argue for hours about why you'd want to use an ARM over an AVR.
They don't serve the same purposes, its stupid to pretend they really compete against each other. You simply can't take full advantage of the ARM CPU and do a lot of real time work, for example. So just use an AVR for the real time bits and leave the 'business logic' to something else.
The chip is way more powerful than an 8-bit Arduino
No, it isn't, you're just only looking at the MHZ and not the actual real world performance. Its not bad or anything, its just barely better.
and the code is comparable in complexity to an Arduino
Sure, but so is any processor that has an Arduino library for it, whats your point? I can write an entire OS in one line if you want. Of course, that one line is just going to jump to some actual code that does the real work ... kind of like how Arduino sketchs are just standard C++ files which are preprocessed to include the Arduino headers and libraries.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
8 bit processors are simple, functional and a joy to program; what moron thinks one "suffers" from using the proper sized tool for a job?
The ARM is more powerful, but is also bigger, costs several times more and draws more power. If you don't need the power - many or most embedded applications don't - you're increasing the cost and reducing battery life for nothing.
Don't get me wrong; A tiny low-end ARM system is fun and useful. Just like an ATTiny, or ATmega, or larger, more capable ARM systems. They all address different needs.
Trust the Computer. The Computer is your friend.
essentially an arduino with a 32 bit processor. They have even taken great care to make sure that the programming environment is identical and many of the Arduino shields work with minor code or hardware modifications. https://www.digilentinc.com/Pr...
Oh children. Enjoy the 8-bit architecture. Writing for small devices is like writing poetry. And not every task needs 32-bits. My fondest memories are of cramming a pacman clone into 4K RAM. You don't need 32 bit architectures for flashing LEDs or playing a little music. Small is fun.
A lot of the physics doesn't lend itself to 0-255 integer values, GPS location too, really not 0-255 integer, and when you get to advanced features like camera tracking you really won't manage it.
I think you're kidding yourself about ARM taking several cycles per instructions, its often less than 1 due to pipe-lining parallelizing operations, and more registers mean less transfers to and from memory.
"No, it isn't, you're just only looking at the MHZ and not the actual real world performance"
Sorry, ARM blows it away in the real world. Its a faster chip, it processes bigger numbers per instruction (32 bit vs 8 bit), has more bandwidth to memory (moves more data per cycle). I think your comment is wishful thinking, but then again I'm an 8 bit guy at heart too.
The other day I walked to the grocery store. The next day I used my bike. Then this simplemind on slashdoo recommended I try a lorry, said it's got much more load capacity so I can basically empty the grocery store and be done with that for the 6 months coming up. /sarcasm.
If you are the kind of person worried that an 8bit 8MHz mcu is not going to cut it with your girlfriends, bigger is better and all, let me suggest you buy yourself the typical swag of your kind i.e. a fast car and a rolex watch. That'll impress her, I'm sure. But *please* stay away from discussions like this. We don't need you.
I always saw that Arduino as performing two fundamental roles:
1. Give people an easy to use, highly applicable micro controller that has a multitude of uses for hobby and even professional end application
2. Open the door to other micro controllers that suit different, potentially more complicated purposes
I'm a latecomer to the Arduino bandwaggon; having come from an EE background I'm already aware of the plethora of micro controller options and I have a good idea about their suitability for purpose. The 8-bit Arduino is fit for a vast number of purposes exactly as it is. When you're entering the scene from the Arduino as your starting point and then moving up you move on past the 8-bit ATmega when you need something a little more powerful that the Arduino can't do.
ARM is a fantastic development platform, it's capable of an awful lot more, but that's not entirely what the Arduino is all about, at least not by my interpretation. The Arduino in that respect is a sincerely great place to start but it's also a great place to stay. You can do an awful lot with one of those little ATmegas. There are just so many micro controllers, so much to learn, so many applications that I don't think anyone can truly call themselves expert in all branches, so if you've found a limb on the micro controller tree that you find comfortable then you're not doing anything wrong by sitting there.
Now what red blooded engineer doesn't want a bigger tool?
There are a constant barrage of cable channels explaining how you can take the proper suppliments, all for a bigger tool. And mechanical devices!
So why should your average pundit who reviews microprocessor tools and toolkits, and then goes home to take his EnZip and Vacupro and SusTane products, and then sits in front of a TV alone and dreams of JustOver19 dates, know anything at all about "Fitting a tool to a Job" ?
Come on, you're expecting rationality. Ain't gonna happen.
Don't take life too seriously; it isn't permanent.
This was covered 1.5 years ago in this DrDobbs article: http://www.drdobbs.com/embedde...
Been there, done that, the breadboarded ARM is a cool toy but not very practical.
I hadn't known there were so many idiots in the world until I started using the Internet -Stanislaw Lem
The TI LaunchPad series of boards is another great option. Cheap, powerful, low power, and there are several different programming environments, including a port of the Arduino IDE called Energia.
Excellent information. Thanks.