This module is all about getting to know the development kit and IDE.
Installing required software.
Connecting up the development kit and saving the pre-installed MBed operating system to our hard-drive before erasing the chip.
Where to find relevant documentation online for our microprocessor and our development kit.
An introduction to the microprocessor and its GPIO registers and configuration.
Configuring registers using C Programming to flash an external LED.
An introduction to using your PicoScope Oscilloscope - basic usage.
Creating HAL and FreeRTOS projects as well as adding code to flash the LED.
Comparing the ease of implementation as well as performance of the three projects created so far, bare-metal, HAL and FreeRTOS.
So far all the address definitions for configuration registers have been hand-crafted / created long-hand. In this video we obtain full verified register map definitions for all the micro's configuration registers.
This module is all about operating as a professional software developer while on the program. Creating repositories and going through code reviews.
What are Repositories and how / what do we use them for, plus signing up for a GitHub Account.
Repo setup and configuration.
A walk-around using GitHub Desktop.
How pull requests and code reviews are performed.
In this module we configure the PLL within our micro to "step up" the system clock for our micro from 16MHz to 72MHz.
How the internal clocks within the micro work as well as the PLL.
Documentation walkthrough as well as code walkthrough to configure the internal System Clock.
Getting our code looking more professional.
In this module we get our SysTick interrupt running as our 'heartbeat' timer.
Documentation walk-through, how we create the heartbeat interrupt using a timer.
Configuring the timer interrupt and handling it.
How to use the SysTick interrupt and timer registers to accurately calculate time.
In this module we configure a timer to produce a configurable PWM output signal.
PWM Explained in layman's terms.
Documentation walkthrough as well as code walkthrough to configure the internal System Clock.
In this module we start performing Digital to Analogue conversions using the DAC peripheral.
How Digital to Analogue and Analogue to Digital conversions are performed.
Implementation of first waveform output via main loop (Sawtooth)
Performance Challenge - Taking what's been done so far (sawtooth output on DAC) and creating a Triangular waveform, as well as also outputting this on the PWM channel.
In this module we develop the project further to enable outputting of standard waveforms on the DAC and PWM outputs; Sine, SawTooth, Triangular & Square waves.
Detailing what we'll be doing in this module.
More PicoScope training - how to monitor two traces (DAC and PWM) as well as adding trend lines.
Creating standard waveforms in code.
In this module we start performing serial communications with our PC USB port via the USART peripheral.
Covering "What is a USART" and what are we doing in this module.
A walk through the relevant sections of our micro reference document.
Simply echoing back any byte of data received.
Capturing the end of messages and handling them as a whole echoed response.
Offloading the main loop work by using interrupts to pump bytes in/out of the USART port.
In this module we delve in to using the DMA controller for the first time - to manage the automated transmission and reception of complete messages via the USART.
Layman's introduction to the power of DMA in an embedded system.
A deeper look at the configuration registers used to work with DMA
Creating standard waveforms in code.
In this module we add serial command / response handlers and implement custom waveform generation.
Covering what are we doing in this module in layman's terms.
Project restructuring to accommodate custom waveforms.
Modifications required to the USART interface to accommodate command / response handlers..
Command / response handler implementation including custom waveform data.
In this module we use many of the skills we've learned to far to combine the DAC with a timer and DMA to fully automate the generation of waveforms to achieve higher output frequencies.
Layman's introduction to this module.
A deeper look at the configuration registers we need to work with to harmonise DMA, a Timer and the DAC together autonomously.
Step by step walkthrough of all register settings needed.
Wrapping up lose ends.
How to find out what's wrong when register configuration doesn't work as planned.
So far we've concentrated on the creating of our dual channel fully programmable waveform generator which is now working.
There are however a few more peripherals to master and skills to learn before you can be considered a well rounded low-level embedded software developer.
In this module we introduce you to handling digital interrupts, the ADC (Analogue to Digital Conversion), I2C & SPI Communications.
Layman's introduction to this module.
Polling as well as using interrupts to read digital inputs. Also includes 'de-bouncing' of inputs to avoid multiple false triggers.
Step by step walkthrough of all register settings needed to automate the 'read-back' of our outputted waveform through the ADC and out to the PC.
Communicating with the gyroscope we have on our board and adding to the waveform generator so X/Y/Z angular momentum's can be outputted as a waveform.
Communicating with the Touch Screen.
Recap, summarising what's been learned in preparation for CV updating, reviewing and interview perparation / training.
As access to the membership area is for life, this module will continue to grow with insights and training over time.
The videos shown below are what's currently planned in the pipeline, hence no specific times shown.
How to manage many subsystems with different priorities.
The program space / FLASH area in our micro can be written to programmatically for saving information/settings etc, here's how.
Using the RTC to manage real-world dates and times, including backup registers that persist through a reset.
Watchdog usage
Apply below NOW...
Start your (no obligation) application below...
I agree to the terms and privacy policy and by providing my details, I agree to receive communications.
"Your Engineering Success" is a program trading name for Your Enlightened Potential Ltd. Registered in England and Wales, Co.No: 14074871.
* Earnings and income representations made by Your Engineering Success, and and their advertisers/sponsors are aspirational statements only of your earnings potential. These results are not typical and results will vary. We can in NO way guarantee you will get similar results.
Copyright 2025 Your Engineering Success All Rights Reserved.
Contact Us: [email protected]