This is the archive of the class EE2361 "Intro to Microcontrollers" taught by Kia Bazargan in the Fall 2014 semester at the University of Minnesota. Links to class videos are provided in the table below, along with supporting documents. Labs and discussion problems are also provided below.
Download link: MPLABX (get both the IDE and XC16 compiler)
MPLAB XC16 compiler, assembler and linker manual
Lab Manuals
Lab 2a: ASM RGB LED , Lab 2b: ASM/C RGB LED
Lab 3: Input and Output Muxing (4x4 keypad + 7-seg LEDs)
Lab 4: Input/Output Compare (servo motor + capture speed of button clicks)
Lab 5a: I2C Display , Lab 5b: I2C Display
Lab 6: Analog to Digital Conversion (ADC)
Videos
Number | Original Date | Contents | One-Pane | Two-Pane | Documents |
---|---|---|---|---|---|
1 | September 3, 2014 | Admin stuff, PIC24 architecture | Watch | Download (103 MB) |
Watch | Download (142 MB) |
|
2 | September 5, 2014 | Architecture, pin diagram, MPLABX overview, watch variables | Watch | Download (102 MB) |
Watch | Download (170 MB) |
|
3 | September 8, 2014 | Registers, status reg (SR), instruction set, 32-bit add | Watch | Download (143 MB) |
Watch | Download (215 MB) |
. |
4 | September 10, 2014 | Ports, pull-up resistor, LATB, TRISB, 24-bit add mul a * 4, loop, pipeline bubble (why bra takes 1 cy or 2) |
Watch | Download (150 MB) |
Watch | Download (192 MB) |
|
4-a | Recorded outside class | Instruction Opcodes | opcodes 1 (youtube) | . | . |
4-b | ~ | ~ | opcodes 2 (youtube) | . | . |
4-c | ~ | ~ | opcodes 3 (youtube) | . | . |
5 | September 12, 2014 | Stopwatch, watch (variables), pipeline bubble counting inst cycles in a prog, creating sw delays debouncing a switch, loop examples |
Watch | Download (180 MB) |
Watch | Download (223 MB) |
HW1.pdf |
6 | September 15, 2014 | Loops, mul inst, 32-bit mul, if statements in asm | Watch | Download (156 MB) |
Watch | Download (175 MB) |
. |
7 | September 17, 2014 | Data mem layout, indirect addresssing [Wn++], copy array A[i]=B[i], sum A[i] |
Watch | Download (150 MB) |
Watch | Download (175 MB) |
asm_indirect1.s asm_indirect2.s asm_indirect3.s |
7-a | / | Supplementary material: indirect addressing | Watch | Whiteboard material (pdf) | |
8 | September 19, 2014 | Signed, unsigned add, sum A[i] as byte, char string, useful C operations |
Watch | Download (160 MB) |
Watch | Download (183 MB) |
firstC.c |
8-a | Recorded outside class | Strlen implementation in asm | strlen (youtube) | . | strlenB.s |
8-b | Recorded outside class | Discussion 3: add 64-bit numbers, reading from program mem | Discussion 3 | . | disc03.s |
9 | September 22, 2014 | Useful C constructs, Timer 1, max delay w/ PRE=1 | Watch | Download (146 MB) |
Watch | Download (183 MB) |
t1_first.c |
9-a | . | Bit Masking (useful for Lab 3) | Watch | ||
10 | September 26, 2014 | Max delays PRE=x, range vs. resolution (concept) loop overhead while(_T1IF==0); |
Watch | Download (153 MB) |
Watch | Download (180 MB) |
t1_oneMin.c |
10-a | . | Discussion 4: interfacing a 4x4 keypad |
Watch | 04_disc4_Presentation1.pdf | |
11 | September 29, 2014 | Loop overhead, measure delay of key press timer overflow counter (no int) |
Watch | Download (203 MB) |
Watch | Download (217 MB) |
t1_measureKeyPressDelay_ms.c |
12 | October 1, 2014 | Casting long int (ovflw var operations), stimulus (async), T1 count T1CK pulses, 32-bit timers, measure code exe using T1 (no interrupts) |
Watch | Download (161 MB) |
Watch | Download (174 MB) |
Ref man: timers t1_countT1CK.c t1_countNumInsSinX.c |
13 | October 3, 2014 | Interrupts, polling vs. int, INT0, static and volatile vars, IPL bit in SR |
Watch | Download (148 MB) |
Watch | Download (180 MB) |
int_first_t1.c |
13-a | Recorded outside class | Range vs. Resolution | Range vs Resolution (youtube) | . | t1_T1CK_rangeVsResolution.c t1_T1CK_rangeVsResolution_notes.pdf |
13-b | Recorded outside class | Discussion 5: 50ms delay | Discussion 5 | . | 05_disc5_t1t2_50ms.c |
14 | October 6, 2014 | Disassembly listing of interrupts, call stack, RETFIE, polling vs interrupt overhead | Watch | Download (154 MB) |
Watch | Download (182 MB) |
. |
15 | October 8, 2014 | Emulating loops in interrupts, gated accumulation mode, frequency thresholding: int version | Watch | Download (139 MB) |
Watch | Download (172 MB) |
int_t1T2_isFreqAboveX.c HW2: asm string, timers 2361_F14_hw2_timers.pdf |
16 | October 10, 2014 | Frequency thresholding: polling version, the problem of non-atomic operations such as 32-bit add getting interrupt in the middle of the operation. | Watch | Download (158 MB) |
Watch | Download (156 MB) |
int_t1T2_isFreqAboveX.pdf (from a different semester) |
17 | October 13, 2014 | High/low priority interrupt example. Timer prescalar > 1 and PR vs (PR+1). Timer polling loop overhead. | Watch | Download (158 MB) |
Watch | Download (187 MB) |
|
18 | October 15, 2014 | Issues related to determining the duty-cycle of an external signal using INT0 and TMR to keep track of overflows. | Watch | Download (126 MB) |
Watch | Download (132 MB) |
|
19 | October 17, 2014 | 32-bit Timer. Input Capture. | Watch | Download (190 MB) |
Watch | Download (199 MB) |
|
20 | October 20, 2014 | The interrupt attribute. Input Capture resolution. PPS. Midterm review. | Watch | Download (143 MB) |
Watch | Download (173 MB) |
|
21 | October 24, 2014 | Midterm solutions. Intro to Output Compare. | Watch | Download (148 MB) |
Watch | Download (167 MB) |
|
22 | October 27, 2014 | Intro to UART, baud rate. Output compare. Generating periodic signal with 400us high, 600us low. | Watch | Download (131 MB) |
Watch | Download (154 MB) |
|
23 | October 29, 2014 | Rate of transmit vs. receive and buffer size. Buffers. | Watch | Download (50 MB) |
Watch | Download (46 MB) |
|
24-a | Recorded outside class | Buffers | Buffers (youtube) | ||
24 | October 31, 2014 | Handshaking protocols (request / acknowledge). UART example: port extender. | Watch | Download (152 MB) |
Watch | Download (155 MB) |
|
25 | November 5, 2014 | SPI. Input-only device, output-only device. SPI clock polarity. Two models for connecting N serial devices (from Huang's slides): connect in series, or connect in parallel. | Watch | Download (127 MB) |
Watch | Download (179 MB) |
|
26 | November 7, 2014 | Bitwise manipulation (e.g., the keypad lab). SPI port extender, array of 7-seg LEDs example from Huang's slides. Tempearture sensor with SPI interface. | Watch | Download (127 MB) |
Watch | Download (174 MB) |
|
26-a | Recorded outside class | SPI timer chip | SPI timer chip (youtube) | ||
26-b | Recorded outside class | Intro to A/D | Intro to A/D (youtube) | ||
27 | November 10, 2014 | Master / Client serial comm, SPI, buffers. A/D conversion (min 27). | Watch | Download (105 MB) |
Watch | Download (124 MB) |
|
28 | November 12, 2014 | A/D mapping, voltage to digital conversion, resolution, Tad, Tsamp. | Watch | Download (136 MB) |
Watch | Download (162 MB) |
|
29 | November 14, 2014 | Sample time calculations, SMMC. | Watch | Download (142 MB) |
Watch | Download (169 MB) |
|
30 | November 17, 2014 | A/D buffering modes. Temperature sensor example. | Watch | Download (117 MB) |
Watch | Download (166 MB) |
|
31 | November 19, 2014 | Temperature sensor example (A/D), stack. | Watch | Download (141 MB) |
Watch | Download (188 MB) |
|
32 | November 21, 2014 | Stack, stack frame. | Watch | Download (130 MB) |
Watch | Download (162 MB) |
|
33 | November 24, 2014 | Fixed point, floating point. | Watch | Download (153 MB) |
Watch | Download (204 MB) |
|
34 | November 26, 2014 | Floating point add. How evaluate complex functions (e.g., the Newton Raphson method, lookup-table). Intro to CORDIC. | Watch | Download (137 MB) |
Watch | Download (193 MB) |
|
35 | December 1, 2014 | CORDIC | Watch | Download (96 MB) |
Watch | Download (172 MB) |
|
36 | December 3, 2014 | CORDIC to calculate complex functions. | Watch | Download (90 MB) |
Watch | Download (139 MB) |
|
37 | December 5, 2014 | CORDIC resolution, examples. PWM digital light dimming example. | Watch | Download (129 MB) |
Watch | Download (168 MB) |
|
38 | December 8, 2014 | PWM motor control, HAL sensor (input capture). Change notification. Final exam review. | Watch | Download (125 MB) |
Watch | Download (175 MB) |
|
39 | December 10, 2014 | Review. | Watch | Download (90 MB) |
Watch | Download (139 MB) |