Electronics > Microcontrollers

Recommended books to learn about embedded?

(1/13) > >>

Winfried:
Hello,

I'm only getting started with microcontrollers.

Since they're so tiny and affordable, I'm especially interested in ESP-based controllers, while a lot of books deal with Arduino and RaspberryPi.

What books would you recommended to get started, preferably in high-level languages like Python or Lua, if available?

Thank you.

cfbsoftware:
I know next to nothing about Python or ESP but can recommend Elektor magazine and its publications. You might find something here of interest to you:

https://www.elektor.com/espressif/books

nctnico:
'Making embedded systems' by White is a nice start. It is C oriented but also goes deep into how the hardware and software interact. The latter is very important when writing software for a system with limited resources (compared to a PC).

rstofer:
Why not start with the Arduino?  There are thousands of projects on the Internet and both a hardware description and code is provided.

You can eventually walk away from using the Arduino libraries and write your code for bare metal.  The ATmega328P isn't the most powerful chip around but it's an easy start.

Using the familiar Arduino infrastructure and similarly functioning libraries, the Teensy 4.1 is a VERY FAST CPU with a flattened learning curve if undertaken after working with the Arduino.

https://www.pjrc.com/store/teensy41.html

The Arduino isn't the be-all end-all of uCs but it's a great place to start.

Here's a starter kit that comes with everything you need to get going with the Arduino including the code to drive all the peripherals:

https://www.amazon.com/ELEGOO-Project-Tutorial-Controller-Projects/dp/B01D8KOZF4

It also includes an Arduino UNO clone so there's nothing else to buy.  There's a lot of education in that kit.

Amazon has many other kits along the same lines.  There is also a really good starter kit for the Raspberry Pi.

https://www.amazon.com/Freenove-Raspberry-Processing-Tutorials-Components/dp/B06W54L7B5

The compatible Raspberry Pi is extra.  The code files are an education in themselves.  Plus, you do all the development on the same uC as you are using to experiment.  In that regard, it is a lot more convenient than the Arduino starter kit which requires a PC for device programming.

Simon:

--- Quote from: rstofer on January 23, 2022, 03:05:00 am ---Why not start with the Arduino?  There are thousands of projects on the Internet and both a hardware description and code is provided.


--- End quote ---

God NO! The arduino was intended for "makers" and "artists". It was not meant for serious work. Sadly the world missed the point and thought they had gotten their hands an a way to program a micro like a PC.

If you truly want to learn embedded then step away from the arduino. Sure it's an inviting prospect to be able to do stuff in minutes but as soon as you have a need for the real hardware you will find you need to learn to do it properly. I wrote one program in arduino, and then looked to convert it to bare metal.

If you can hack understanding the hardware then do, and code properly. My issue was learning to code and learning the chip all in one go. Once I had my first success just having to worry about how the code is written I was willing to play with the hardware.

Micro controllers are powerful in their own right. Their power comes from their peripherals, much of these are underused in the arduino because the peripherals are so different between chips that there is no way of writing standard libraries that will work on each chip using it to it's full whilst having common code and portability.

For example in the name of compatibility the ADC library will always give a 10 bit result even on chips with a 12 bit ADC, they have to go and do this in the background to make sure you get a consistent result. If you want the full 12 bit you have to add code to get back what was taken away.

Full use of interrups? forget it.

Arduino is so removed from the hardware that it sets you on a path to programming that is not reconcilable with how you would program in bare metal or via other less ruinous abstraction systems.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod