Hey everyone! I just completed my Arduino course and was planning to move onto something more professional like ATmega or PIC microcontrollers and processors. Can you guys please suggest which is the best place to start from? please let me know about different programming devices like Pickit and stuff im totally confused with them. Thanks in advance
Hi, this is my standard reply to this often asked question.
I personally don’t recommend The Arduino System because it was designed for people like artists with little technical knowledge so they could use libraries and ‘sketches’ to easily assemble (like Leggo) projects such as led lighting controllers for ice sculptures.
No embedded engineer would ever use Arduino, or recommend it to anyone wanting to learn about microprocessors. The only people recommending Arduino are Arduino users and Arduino kit and part sellers.
If you learn Arduino, you’re learning The Arduino System, you’re not learning microprocessors, even tho Arduino kits have a microprocessor in them.
Furthermore, the MEGA8 used in Arduino is ancient 8 bit technology, it was released way back in 1997!
Would your friends recommend a Stanley Steamer for your first car because it’s simple, instead of a easy to drive but complex Tesla electric car ?
Arduino uses The C Programming Language, which is widely assumed to be the superior programming language for embedded, except it isn’t. C was not designed for small embedded use.
Assembly language was designed for embedded and it will aid you in understanding microprocessors, unlike C which will just add another massive task for you on top of learning about microprocessors.
So I recommend a virtual Intel 8085 CPU and Assembly language using the Java based simulator in the url below. That way you don’t have to spend any money on hardware until you have enough experience to make an informed choice in a world of slick profit oriented advertising.
Learning Microprocessors’ a guide for using a useful Java based software, online book, and student examples.
https://learning-microprocessors.sourceforge.io/If embedded isn’t the most exciting thing you’ve ever seen or if it’s too boring, too hard, or takes too long to learn I recommend you examine your motivation for wanting to learn about microprocessors because more than likely you’re not going to be designing embedded devices in the long run. You will most likely be just be another Arduino kit sale.
If you gleefully assimilate all the 8085 info, choose your micro and
build projects asap, LOTS of them because that’s the fast track. My recommendation is to choose a micro that has a well developed, proven and Free Software development environment, including advanced debugging behind it, preferably Linux, not Windows only.
Finally, be aware that microprocessors such as the STM32H7xx are light years ahead of the 8085, Mega8 and Cortex-M0 (my favorite), so you have a LOT of catching up to do once you have mastered the basics.
Good luck and have fun!
The author also maintains:
Bluepill Diagnostics:
https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diagnostics-v1.6.html Mecrisp-Stellaris Forth for Cortex-M; The Unofficial Doc:
https://mecrisp-stellaris-folkdoc.sourceforge.io/