Microcontroller Designing-Lets start with Basics...
Don't know where to start or how to start, so let's start somewhere. I am writing this as a way of documenting what I know about microcontrollers.
My journey with microcontrollers starts with the Arduino board. I would say that I started practically without even knowing a little bit of theory about microcontrollers. It was back then, during my college days around 8 years ago, that I started my journey with Arduino as a way of learning about Internet of Things (IOT).
I bought an Arduino and started programming from scratch--> blinking LED, printing on LCD display, playing with seven segment LED, getting sensor's data, activating relays, and more and more. Then I bought a NodeMCU wifi module. The real fun started there. Again, blinking LED, but this time through mobile and using the cloud. It's time to do Iron Man stuff, controlling loads through voice commands using Google IFTTT. Then build a mobile-controlled CAR. I even built an automated Car using Arduino. Maybe I should write about all my projects also.
Let's come back to today's topic-->All about Microcontroller. As I mentioned above, my journey started with Arduino, which uses Atmega 328p from Atmel, which is now part of Microchip. Atmega 328p is an 8-bit microcontroller. So this 8-bit means the number of address bits. This is one of the basic things should know when discussing a microcontroller.
From using the microcontroller development board to designing one, it's quite a lot of learning on the way. A lot of companies are manufacturing microcontrollers, such as Microchip, STM, NXP, Analog Devices, etc. My Kinda favourite one is STM, don't know why, maybe because I bought the STM32 Blue Pill board and worked with that. Even a lot of flight controllers used in drones use the STM32 microcontroller.
Most microcontrollers share basic features. Working with a microcontroller is so simple once we understand the logic behind its operation. In simple terms, we can describe its working with the following flow diagram.
Input is mostly environmental parameters such as temperature and pressure, which have been converted to electrical parameters such as Voltage or Current, and processed in a microcontroller as per logic written in the form of a program, and controls the load, such as LED, Motors, or sometimes just displays the information.
If we dive a little bit into those sections, we will mostly end up with the following block diagram.
All microcontrollers will have almost the same kinda logic circuits behind their working.
First, let's start with the selection of a microcontroller. The selection of a microcontroller completely depends on product requirements. Requirements mean what kinda of inputs I will get, whether it is from sensors or user-driven, and the outputs, such as driving LED or motors, etc, and the type of communication protocol required, such as I2C, SPI, UART, and the environment in which my product will be used. And another important thing is the cost of the microcontroller. When we think about it as a product, the cost of each and every component matters a lot.
The basic four things matter most...
- Processing power--> 8-bit or 32-bit...
- Memory Requirement -->Flash/ROM, RAM...
- Peripherals required---> Number of ADC, DAC, SPI, I2C, UART, CAN, USB, PWM, and digital output required.
- Environmental Requirement-->Operating temperature, Humidity...
I am planning to cover each and every block as a separate article. Working with a microcontroller is one of the interesting things I would say. A microcontroller is the heart of all embedded systems, which makes our lives easy every day.
Comments
Post a Comment