131 Week 7 - Intro to Micro:bit Architecture Flashcards
Core goals of the micro:bit
Easy to use and encourage learning to code
Effective tool for teaching digital skills and creativity
Inspire diverse range of students Easy for students
Requirements
Easy for teachers
No installation, no setup, no internet
Appeal to a range of ages
Support a range of languages
Leverage systems developed by different companies
Resource constrained
Runtime code/software
Software platform that provides an environment for executing user code.
Serves as an abstraction layer that developers can use to write code.
Microcontroller
A compact integrated circuit equipped with one or more CPUs and memory (flash memory and static RAM).
Embedded system
An electronic product that comprises a microcontroller or multiple microcontrollers executing software instructions stored on a memory module to perform an essential function.
USB
Stands for universal serial bus.
Used to power micro:bit and stream data to and from the micro:bit.
JST connector
power supply (3v battery)
Interface MCU
A microcontroller that handles USB connection.
Used for flashing code and Tx/Rx data to and from connected devices.
Target/application MCU
A microcontroller that handles user code, runtime code and Bluetooth stack run from flash memory.
It also has custom radio capabilities. Integrated temperature sensor.
What output devices does the micro:bit have?
LEDs - power and USB activity indicators (left and right of USB port respectively)
Speaker
5x5 LED matrix
What input devices does the micro:bit have?
2 buttons - A and B but can detect A+B input.
Touch sensitive logo
Microphone - micro-electro mechanical system (MEMS)
5x5 LED matrix - senses ambient light
Motion sensor - accelerometer and magnetometer
Edge connector - 20 pins/strips and 5 rings for connection with external components.
Regulator
Ensures voltage stays at 3.3V, suitable for powering the micro:bit. Cannot regulate if voltage is too high e.g., mains.
Xtal
Electronic crystal oscillator that provides clock signal.
SWD bus
Stands for serial wire debug bus.
Unidirectional bus for transferring code from interface MCU to application MCU
UART bus
Stands for universal asynchronous receiver-transmitter.
Bidirectional bus that allows the MCUs to communicate.
I²C Bus
Stands for Inter-integrated circuit bus.
It allows application MCU to communicate with secondary components.
Daplink
Firmware on interface MCU that acts as a bride between the computer and SWD.
It presents the micro:bit as a USB disk, allowing drag-and-drop programming.
Daplink interface mode
The hex file dropped onto the ‘USB disk’ is written into the target MCU flash.
USB disk name will be MICROBIT
Daplink bootloader mode
The hex file dropped onto the ‘USB disk’ is written into the interface MCU flash and updates the version of DAPLink.
USB disk name will be MAINTENANCE.
nRF5 software development kit (SDK)
Rich development environment for nRF51/nRF52 series MCUs.
Provides hardware abstraction and includes drivers, libraries, examples of peripherals and radio protocols.
Component Oriented Device Abstraction Layer (CODAL)
Micro:bit runtime software written in C/C++.
Abstracts hardware components as software components represented by C++ classes.
Offers eventing subsystem for mapping asynchronous events to event handlers.
Can write in other languages but everything will eventually be converted to CODAL.