Advice on Learning Path : Prioritizing Essential Activities

Thread Starter

gogo00

Joined Oct 28, 2023
43
I'm developing a learning plan (Excel Sheet) to enhance my skills in embedded systems development. I have hardware components like breadboard, microcontrollers, resistors, capacitors, jumper wires, LEDs, and push buttons, along with microcontroller datasheets, IDE, compiler, and a programmer/debugger. What structured learning activities or project ideas do you recommend to effectively progress in embedded systems development?

I've outlined a few learning activities that I'd like to start with:

1. Setting up a circuit on the breadboard to blink an LED.
2. Writing code to blink an LED every 1 second using the microcontroller's internal oscillator.
3. Writing code to blink an LED every 1 second using an external oscillator.
4. Implementing LED blinking using the polling method.
5. Setting up a timer interrupt to blink an LED every 1 second.
6. Experimenting with blinking three LEDs at different speeds.
7. Controlling LEDs with push buttons
8. Implementing LED control using hardware interrupts.
9. Controlling LED brightness using PWM

Someone can please suggest the priority order for these activities? , are there any essential activities that I might be missing from this list?
 

MrChips

Joined Oct 2, 2009
34,628
Hi gogo,

There is nothing wrong with starting out working with an LED in the nine steps you have outlined, in that order.

However, you have left out some important information:

1) What is your level of math and physics education?
2) What MCU do you plan on programming?
3) What programming language do you plan on using?
4) What test equipment do you have, power supply, DMM, oscilloscope?
5) How much in-depth basic knowledge are you seeking and how far do you want to take this?

Without knowing 1) and 5), I would like to add a study of the following:

i) Basic analog electronics
ii) Basic boolean algebra and digital logic
iii) Introduction to MCU architecture and assembly language programming
 

Thread Starter

gogo00

Joined Oct 28, 2023
43
Hi gogo,

There is nothing wrong with starting out working with an LED in the nine steps you have outlined, in that order.

However, you have left out some important information:

1) What is your level of math and physics education?
2) What MCU do you plan on programming?
3) What programming language do you plan on using?
4) What test equipment do you have, power supply, DMM, oscilloscope?
5) How much in-depth basic knowledge are you seeking and how far do you want to take this?

Without knowing 1) and 5), I would like to add a study of the following:

i) Basic analog electronics
ii) Basic boolean algebra and digital logic
iii) Introduction to MCU architecture and assembly language programming
Thank you for your suggestions. I recently completed a diploma in electronics and am keenly interested in embedded systems, particularly focusing on practical embedded C programming. I prefer hands-on learning without relying heavily on built-in libraries like those in Arduino Uno.

I'm looking to develop a structured learning plan with step-by-step activities. I aim to start with basic projects and progress towards more complex ones. I have foundational knowledge in electronics and digital logic but would benefit from revisiting these topics in the context of embedded systems.
 

MrChips

Joined Oct 2, 2009
34,628
You have not specified the target MCU and IDE platform.
However, I would suggest Texas Instruments MSP430 and in particular MSP-EXP430G2ET.

You can follow along with my MPS430 blog.
You have a choice of using IAR EW or Code Composer Studio.
 

Thread Starter

gogo00

Joined Oct 28, 2023
43
You have not specified the target MCU and IDE platform.
However, I would suggest Texas Instruments MSP430 and in particular MSP-EXP430G2ET.

You can follow along with my MPS430 blog.
You have a choice of using IAR EW or Code Composer Studio.
Thank you for your suggestions and sharing your blog. While I appreciate the recommendation for Texas Instruments MSP430, my preferred choice for microcontroller is AVR and I plan to use Atmel Studio as my IDE.

I've reviewed your blog index and am inspired to create a similar structured learning plan. I aim to incorporate C learning activities, including exploring program compilation steps like preprocessor, compilation, assembler, linker, loader, and addressing memory-related issues such as overflow and memory leaks through practical exercises.

I'm particularly interested in experimenting with unions to understand their practical applications within these activities.

Given my objectives, do you have any suggestions on how to make plan for leaning activities based on priority
 

MrChips

Joined Oct 2, 2009
34,628
I am familiar with Atmel AVR MCUs and Atmel Studio.
Proceed with your 9-step plan working with an LED. I can guide you with this too. I can create a similar blog for Atmel AVR.

Which Atmel AVR MCU do you plan on using?
 

Dave Lowther

Joined Sep 8, 2016
332
my preferred choice for microcontroller is AVR and I plan to use Atmel Studio as my IDE.
I also had the same desire to learn about using AVRs without any Arduino code. I decided to learn using Atmel Studio, ATtiny85 and the Atmel-ICE. The ICE was important to me because I wanted to step through assembler code one instruction at a time and see the new register / IO port / memory values.

The ICE is relatively expensive, but if there is an "Xplained" board for your chosen AVR chip, then I believe you can get the same debugging functionality without using the ICE at a much lower cost. For example this one for ATmega328P.
 
Top