Cse190 Winter 2020: Mcus and Io
Cse190 Winter 2020: Mcus and Io
Lecture 2
MCUs and IO
– IO pins
• Lots of peripherals - Image sensor, UART debugger, SD card, DAC, ADC,
microphone, LED
How to choose MCU for our project?
– Internal functions
• Migrating data from the sensor to the radio (DMA)
How to choose MCU for our project?
• Memory
– Store accelerometer history data
• 12bits each for X,Y,Z acceleration
• sampled 2 thousand times a second (2 KHz)
• = 12*3*2,000 bits per second (72kbits or 9 kBytes)
• How many seconds can we hold if we have only 100 kBytes of storage
• Clock frequency
– kHz is too slow
• Smartphone camera frame rate is 60fps
(1 KHz clock would leave only 60 clock cycles per frame)
• Large diversity
– Many widely differing device types
– Devices within each type also differs
• Speed
– varying, often slow access & transfer compared to CPU
– Some device-types require very fast access & transfer
• Access
– Sequential VS random
– read, write, read & write
What operations does software
need to perform on peripherals?
1. Get and set parameters
2. Receive and transmit data
3. Enable and disable functions
How can we imagine providing an
interface to hardware from software?
• Devices
• Devicesregisters mapped
registers mapped onto
onto “ports”; a
“ports”;
separate address
a separate addressspace
space
memory I/O ports
• GPIOs can be used to control lights (light on or off), but even more
• Debugging
– Did this one part of my code actually execute?
– Is the timer firing at the interval that I expect it to fire (connect GPIO to oscilloscope)?
– Why using GPIO?
• GPIO ops are lightweight
Topology of a GPIO pin
GPIO Configurations
A fun extra feature: Drive Strength