Differences

This shows you the differences between two versions of the page.

Link to this comparison view

classes:15s:383:default [2015/08/28 10:53]
jel [Reference]
classes:15s:383:default [2015/08/28 10:54] (current)
jel [References]
Line 1: Line 1:
 +====== EE 383 - Introduction to Embedded Systems - Spring 2015 ======
  
 +|Instructor: | James Lumpp ||
 +|Office: | FPAT 569 ||
 +|Email:  | [[jel@uky.edu]] ||
 +|Lecture: | MWF 1:00-1:50PM, RGAN 203 ||
 +|TA: | Ying Yu ||
 +|TA Email: | [[ying.yu@uky.edu]] ||
 +|Lab: | FPAT 551 ||
 +|TA Lab Hours (FPAT551)  | T&Th: 2:00-6:00PM  || 
 +| Textbook: | Jonathan W. Valvano, "Introduction to ARM Cortex-M Microcontrollers" (fifth edition-5/25/2013), 2013, ISBN: 978-1477508992. Available: [[http://www.amazon.com/Embedded-Systems-Introduction-Arm%C2%AE-Cortex/dp/1477508996|Amazon]] ||
 +| Hardware Kit: | Tiva™ C Series LaunchPad Evaluation Kit (EK-TM4C123GXL). \\ Available: from [[http://www.ti.com/tool/ek-tm4c123gxl|TI.com]], and from [[http://www.newark.com/texas-instruments/ek-tm4c123gxl/eval-board-tm4c123g-tiva-c-launchpad/dp/73W9275?ost=EK-TM4C123GXL| Newark]],  [[http://www.mouser.com/ProductDetail/Texas-Instruments/EK-TM4C123GXL/?qs=%2fha2pyFaduisgNoP%2fvfSBw1NF%2flQVnwW60ZNCzbQLoWbBVTZWzmSXQ%3d%3d|Mouser]],  [[http://www.digikey.com/product-search/en?WT.z_se_ps=1&keywords=296-35760-ND|Digikey]] (Watch for back-orders and lead-time)||
 +
 +Course Information: {{:classes:15s:383:383syls15.pdf|EE383 Spring 2015 Course Information}}
 +===== Course Texts =====
 +
 +  * Valvano, "Introduction to ARM Cortex-M Microcontrollers" (fourth edition-5/25/2013),  2013, ISBN: 978-1477508992. Available: [[http://www.amazon.com/Embedded-Systems-Introduction-Arm%C2%AE-Cortex/dp/1477508996|Amazon]]
 + 
 +  * [[http://users.ece.utexas.edu/~valvano/Volume1/E-Book/|Valvano, Volume 1 E-Book]]: (Includes reading material, instructional videos, interactive tools.) 
 +
 +===== Lectures =====
 +^  Date ^ Lecture ^ Materials ^ Assignments //(ToDo)// |
 +^W  1/14/15 | Course Overview and Introduction | | **Read:** Valvano Chapter 1 and Chapter 2, **Read/Watch:** [[http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C2_FundamentalConcepts.htm|Valvano Ebook Section 2.1 ]] |
 +^F  1/16/15 | Embedded Systems | {{:classes:15s:383:1_ee383_intro.pdf|slides_INTRO_1}} | **Read/Watch:** [[http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C4_DigitalLogic.htm|Valvano Ebook Chapter 4 ]]  |
 +^M  1/19/15 | No Class - MLK Holiday| |**Install:** Keil Toolchain on your PC [[http://users.ece.utexas.edu/~valvano/Volume1/KeilInstall.htm|Instructions]] (company "University of Kentucky" of course) |
 +^W  1/21/15 | CMOS Switching Logic  | {{:classes:15s:383:2_ee383_cmos.pdf|slides_CMOS_2}} {{:classes:15s:383:ee383notes15-12-21.pdf|notes}} | **Read:** [[http://processors.wiki.ti.com/index.php/Tiva_TM4C123G_Launchpad_Unbox|Tiva Launchpad Unbox]], **Watch:** [[https://www.youtube.com/watch?v=tb4AApCRSqQ|Unbox Video]] |
 +^F  1/23/15 | Combinational Logic, Hazards, Latches, Flip-flops, Sequential Ckts | {{:classes:15s:383:ee383notes15-12-23.pdf|notes}} | **Install:** {{:classes:13f:383:stellaris_icdi_drivers_-_spmc016.zip|Stellaris ICDI Drivers}} following these {{:classes:15s:383:quickstart-driver-installation-spmu287.pdf|instructions}} (Do [[http://users.ece.utexas.edu/~valvano/edX/InstallDrivers8.htm|this]] for unsigned drivers if you are using Windows 8) (Try [[http://users.ece.utexas.edu/~valvano/edX/macintosh.html|this]], or [[http://users.ece.utexas.edu/~valvano/On_a_Mac.htm|this]] for Macs) |
 +^M  1/26/15 | One-Bus Design | {{:classes:15s:383:blankonebus.pptx|onebus.pptx}} {{:classes:15s:383:blankonebus.pdf|onebus.pdf}} {{:classes:15s:383:ee383notes15-12-26.pdf|notes}} | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C2_FundamentalConcepts.htm| Valvano EBook Chapter 2.2}}, **Install:** [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|putty]] on your PC |
 +^W  1/28/15 | One-Bus Scheduling | {{:classes:15s:383:ee383notes15-12-28.pdf|notes}} |**Read:** Valvano Chapter 3.1 - 3.3, 4.1.3 - 4.2.1    **Read/Watch:** [[http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C6_MicrocontrollerPorts.htm|Valvano Ebook Chapter 6 ]]|
 +^F  1/30/15 | Keil and Lab1  | {{:classes:15s:383:3_ee383_es.pdf|slides_ES_3}}  | **Read/Watch: ** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C7_DesignDevelopment.htm|Valvano Ebook Chapter 7}}|
 +^M  2/2/15 | Embedded Design, One-bus ADD{S} immediate | {{:classes:15s:383:4_ee383_asm.pdf|slides_ASM_4}} {{:classes:15s:383:ee383notes15-2-2.pdf|notes}}  | |
 +^W  2/4/15 | Lab 1 Signatures (551FPAT)  |  | |
 +^F  2/6/15 | ARM Architecture and Assembly | {{:classes:15s:383:5_ee383_io.pdf|slides_IO_5}} {{:classes:15s:383:ee383notes15-2-6.pdf|notes}} | **Read:** Valvano Chapter 4.2.2-4.7 |
 +^M  2/9/15 | Port control and GPIO  | {{:classes:15s:383:ee383notes15-2-9.pdf|notes}} | **Read/Watch:** [[http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C8_SwitchLED.htm|Valvano Ebook Chapter 8 ]]  |
 +^W  2/11/15 | Bit Banding, I/O Port specific addressing, Bit masking, read-modify-write in assembly  | | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C10_FiniteStateMachines.htm|Valvano Ebook Sections 10.1-10.2}}, **Review:** PLL and SysTick examples ({{:classes:15s:383:pll_4c123asm.zip|}}, {{:classes:15s:383:systick_4c123asm.zip|}}) |
 +^F  2/13/15 | Assembly Programming  | {{:classes:15s:383:6_ee383_prog.pdf|slides_PROG_6}}  | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C9_ArrayFunctionalDebugging.htm|Valvano Ebook Chapter 9}}  |
 +^M  2/16/15 | Snow Day  | |   |
 +^W  2/18/15 | Lab Day (3/4)  | | **Study:** {{:classes:15s:383:exam1studyguide.pdf|Exam #1 Study Guide}} |
 +^F  2/20/15 | Snow Day  | | |
 +^M  2/23/15 | Exam 1 Review  | {{:classes:15s:383:ee383notes15-2-23.pdf|notes}} | **Review:** {{:classes:15s:383:s15_ex1reference.pdf|Reference sheets for Exam #1}}  |
 +^W  2/25/15 | Exam 1 | {{:classes:15s:383:s15_ex1.pdf|Exam1}}  | {{http://www.cdf.toronto.edu/~ajr/258/notes/micro/one-bus.html|One Bus Reference}} |
 +^F  2/27/15 | Lab Day (4) | | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C5_IntroductionToC.htm|Valvano Ebook Chapter 5}}  |
 +^M  3/2/15 | Exam 1 Solution, Programming  | | |
 +^W  3/4/15 | Assembly Control Flow  | | **Read:** Valvano Chapter 2.8 |
 +^F  3/6/15 | Snow Day  | {{:classes:15s:383:7_ee383_c.pdf|slides_C_7}}  | |
 +^M  3/9/15 | Lab 4, Embedded C  | | |
 +^W  3/11/15 | Embedded C  | | **Read:** Valvano Chapter 8.1-8.2   |
 +^F  3/13/15 | Lab day (4/5)  | | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C11_SerialInterface.htm|Valvano Ebook Chapter 11}}  |
 +^MWF  3/16-20 | Spring Break   | | **Read:** Valvano Chapter 9.1-9.6, **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C12_Interrupts.htm|Valvano Ebook Chapter 12}}  |
 +^M  3/23/15 | UART  | {{:classes:15s:383:8_ee383_uart.pdf|slides_UART_8}}  |   |
 +^W  3/25/15 | Interrupts  | {{:classes:15s:383:9_ee383_int.pdf|slides_INT_9}}  |   |
 +^F  3/27/15 | UART/Interrupt Examples  | | |
 +^M  3/30/15 | Lab Day (5/6)  |  |   |
 +^W  4/1/15 | Embedded Power Systems  | |   |
 +^F  4/3/15 | Lab Day (6/7)  | | |
 +^M  4/6/15 | Exam 2 Review   | {{:classes:15s:383:ex2reference_s15.pdf|}}, {{:classes:15s:383:c_refcard.pdf|}}  |   |
 +^W  4/8/15 | Exam 2  | {{:classes:15s:383:s15_ex2.pdf|Exam2}}  |   |
 +^F  4/10/15 | Lab Day (7)  | | **Read:** Valvano Chapter 11.2 |
 +^M  4/13/15 | Exam 2 Solution  |   |   |
 +^W  4/15/15 | Interrupts and Concurrency  |   | **Read:** Valvano Chapter 10, **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C13_DACSound.htm|Valvano Ebook Chapter 13}}   |
 +^F  4/17/15 | Digital to Analog Conversion  | {{:classes:15s:383:a_ee383_a2d.pdf|slides_A2D_A}}  | **Read/Watch:** {{http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C14_ADCdataAcquisition.htm|Valvano Ebook Chapter 14.1-14.4}}  |
 +^M  4/20/15 | Analog to Digital Conversion  |   |   |
 +^W  4/22/15 | Embedded Topics  | {{:classes:15s:383:b_ee383_spi2c.pdf|slides_SSI_A}}  |   |
 +^F  4/24/15 | Embedded Topics  | {{:classes:15s:383:rtos_4c123.zip|}}  |   |
 +^MWF  4/27-5/1/15 | Lab 9  |   |   |
 +^W  5/6/15 | EE383 Final 1-3PM  |{{:classes:15s:383:exreference_s15.pdf|}}, {{:classes:15s:383:c_refcard.pdf|}}   |   |
 +
 +
 + 
 +===== Homework =====
 +^   Assignment  ^  Due Date  ^  Suggested Reference Material  | 
 +| HW1: Textbook: 1.4, 1.5, 1.14, 1.15, 1.24, D1.35, D1.39, 2.2, 2.6, D2.16  |  1/28/15  | Course Textbook  |
 +| HW2: Textbook: 3.1, 3.2, 3.9, 3.12, 3.13, 3.15, 3.18, 3.22, Q9: Design an XOR using only FETs, Q10: What is there difference between a Mealy and Moore Machine?  |  2/9/15  | Textbook/Lecture Notes  |
 +| HW3: Determine the machine code for each of the following 10 instructions, and then schedule each of the instructions on the one-bus machine.  For each instruction explain any modifications/enhancements you had to make the the one-bus machine to support the instruction.  Make sure you manage the CCs appropriately.: LDR R0,[R1] ; LDR R1,[R1,#1] ; LDR R2,[R1,#2]! ; LDR R3,[R1],#3 ; CMP R5,R6 ; LDR R0,[R1,R2, LSL #2] ; LSR R0,R1,#2 ; ASR R0,R1,#2 ; PUSH {R4} ; POP {R5} |  2/18/15  | Text/Lecture Notes/ARM References, {{:classes:15s:383:blankonebus.pdf|onebus.pdf}} |
 +| HW4: 4.1, 4.4, 4.5, 4.8, 4.12, 4.20, Q7: Map a 2K RAM chip at 0x3FA5.F000, Q8: How many clock cycles do each of these instructions take to execute: LDR R0,[R1,R2, LSL #2] ; LSR R0,R1,#2 ; ASR R0,R1,#2 ; PUSH {R4,R5,R6} ({{:classes:15s:383:cortexm4_trm_r0p1.pdf|ARM Cortex-M4 Processor Technical Reference Manual}} section 3.3.1 covers CPI)  |  2/23/15  | Text/Lecture Notes/ARM References |
 +| HW5: In lab 6 the functions provided in UART.c are all useful for interacting with users.  However, users are not always predictable and are a big source of errors in embedded software.  What would happen to UART_InUDec() if you, in fact, type  your name?  In order to have reliable I/O, we need to be able to determine if a user enters that wrong type of information to UART_InUDec(void) and UART_InUHex(void).  Rewrite these two functions to determine that an error occurred and to return an error condition. |  4/1/15  | Lab6  |
 +| HW6: 8.1, 8.3, 9.1, 9.4, 9.6, 9.10 |  4/6/15  | Course Texts  |
 +| HW7: 10.2, 10.4, 10.6, 10.8, 10.10 |  4/27/15  | Course Texts  |
 +===== Lab Experiments =====
 +
 +^   Assignment  ^  Related Material  ^  Signatures Due  ^  Writeup Due  ^ 
 +| {{:classes:15s:383:lab1_leds_s15.pdf|Experiment 1}}: Keil and the TMC123 Development Board    | {{:classes:15s:383:ee383s15lab1.zip|Lab1.zip}}  |  2/6/15  |  2/13/15  | 
 +| {{:classes:15s:383:lab2_button_s15.pdf|Experiment 2}}: Hit the panic button | {{:classes:15s:383:ee383s15lab2.zip|Lab2.zip}} |  2/13/15  |  2/25/15  |
 +| {{:classes:15s:383:lab3_loop_s15.pdf|Experiment 3}}: Functions and Delay Loops | {{:classes:15s:383:ee383s15lab3.zip|Lab3.zip}} |  2/25/15   |  3/2/15  |
 +| {{:classes:15s:383:lab4_systick_s15.pdf|Experiment 4}}: Quick Draw Game (Counting SysTicks)  | {{:classes:15s:383:ee383s15lab4.zip|Lab4.zip}}, {{:classes:15s:383:pll_4c123asm.zip|}}, {{:classes:15s:383:systick_4c123asm.zip|}}, {{:classes:15s:383:rand100_4f120asm.zip|}}  |  3/13/15  |  3/25/15  |
 +| {{:classes:15s:383:lab5_c_s15.pdf|Experiment 5:}} Embedded C Programming  | {{:classes:15s:383:systick_4c123.zip|}}(use for project base), {{:classes:15s:383:pll_4c123.zip|}},  {{:classes:15s:383:random_4c1294.zip|}}  |  3/30/15  |  4/6/15  |
 +| {{:classes:15s:383:lab6_uart_s15.pdf|Experiment 6:}} The Universal Asynchronous Receiver/Transmitter (UART)   | {{:classes:15s:383:ee383s15lab6.zip|Lab6.zip}}, {{:classes:15s:383:uart_asm.zip|sample assembly file (UART_ASM.s)}}  |  4/3/15  |  4/8/15  |
 +| {{:classes:15s:383:lab7_rtc_s15.pdf|Experiment 7:}} Real-Time Clock (Does Anybody Really Know What Time It Is)   | {{:classes:15s:383:ee383s15lab7.zip|Lab7.zip}}, {{:classes:15s:383:periodicsystickints_4c123.zip|}}  |  4/15/15  |  4/22/15  |
 +| {{:classes:15s:383:lab8_ints_s15.pdf|Experiment 8:}} Concurrency, Causality, Races and Atomic Operations   | {{:classes:15s:383:periodicsystickints_4c123.zip|}}, {{:classes:15s:383:edgeinterrupt_4c123.zip|}}  |  4/24/15  |  5/1/15  |
 +| {{:classes:15s:383:lab9_a2d_s15.pdf|Experiment 9:}} Analog to Digital to Analog Conversion   | {{:classes:15s:383:adcswtrigger_4c123.zip|}}  |  5/1/15  |  5/6/15  |
 +
 +  * TI Include file for C: {{:classes:15s:383:tm4c123gh6pm.h|}}, for ASM (rename ".s"): {{:classes:15s:383:tm4c123gh6pm_s.h|tm4c123gh6pm.s}}
 +  * [[classes:07a:383:writeup|Lab Writeup Organization]]
 +  * {{:classes:13f:383:ee383demo.zip|EE383 Demo Project}} 
 +===== Tiva™ C Series TM4C123G LaunchPad Evaluation Kit =====
 +==== Example Projects ====
 +  * {{:classes:15s:383:launchpadwarec123.zip|LaunchPadware.zip}} : includes starter files and many C and ASM examples (original Spring 15 version can be found {{:classes:13f:383:launchpadware.zip|here}}). 
 +  * {{http://users.ece.utexas.edu/~valvano/arm/|Valvano's ARM Page}} contains many ASM and C examples for TM4C123 
 +==== TM4C123G Documentation ====
 +  * {{:classes:13f:383:tm4c123gh6pm.pdf|TM4C123G Microcontroller Datasheet}}
 +  * {{:classes:15s:383:cortexm_instructionset.pdf|Cortex M  instruction set}}
 +  * {{:classes:13f:383:tm4c123g_launchpad_evaluation_board_users_guide.pdf|TM4C123G Launchpad Evaluation Board Users Guide}}
 +==== Getting Started ====
 +  * {{:classes:13f:383:stellaris_icdi_drivers_-_spmc016.zip|Stellaris ICDI Drivers}}
 +  * [[http://users.ece.utexas.edu/~valvano/arm/InstallDrivers.html|Installing windows drivers for the Launchpad]]
 +  * [[http://users.ece.utexas.edu/~valvano/Win8drivers.htm|Installing unsigned drivers in Windows 8]]
 +  * [[http://users.ece.utexas.edu/~valvano/edX/macintosh.html|Installing tools on Macs]]
 +  * [[http://users.ece.utexas.edu/~valvano/Volume1/uvision/|Keil uVision Reference Manual and instructions for download and setup]]
 +  * {{:classes:13f:383:tiva_c_series_development_and_evaluation_kits_for_keil_realview_mdk.pdf|Tiva C Series Development and Evaluation Kits for Keil RealView MDK}}
 +==== Keil Reference =====
 +  * {{:classes:15s:383:uv4.pdf|Keil Uv4 Getting Started}}
 +  * [[http://www.keil.com/support/man/docs/uv4/|Keil on-line documentation]]
 +
 +==== C Programming =====  
 +
 +  * {{:classes:13f:383:sw-ek-tm4c123gxl-1.0.exe.zip|SW-EK-TM4C123GXL}}: Tiva™ C Series LaunchPad Evaluation Board Software (includes peripheral driver library, and examples)
 +  * {{:classes:13f:383:tivaware_peripheral_driver_library_user_guide.pdf|TivaWare™ Peripheral Driver Library for C Series User's Guide}}
 +===== Reference =====
 +=== ARM === 
 +  * {{:classes:15s:383:cortexm4_trm_r0p1.pdf|ARM Cortex-M4 Processor Technical Reference Manual}} (3.3.1 covers CPI)
 +  * {{:classes:13f:383:thumb_quick_reference_card.pdf|ARM Thumb Assembly Quick Reference Card}}
 +  * {{:classes:15s:383:arm-ref.pdf|ARM Assembly Language Reference Card}}
 +  * {{:classes:15s:383:qrc0001_ual.pdf|ARM® and Thumb®-2 Instruction Set Quick Reference Card}}
 +  * {{:classes:15s:383:ihi0042e_aapcs.pdf|ARM Architecture Procedure Call Standard (AAPCS)}}
 +  * {{:classes:15s:383:arm_arm.pdf|ARM Architecture Reference Manual}} (Includes instruction formats)
 +===== Planning Calendar =====
 +Note: This calendar changes and evolves all the time and is only an estimate. 
 +
 +<html>
 +<iframe src="http://www.google.com/calendar/embed?src=6vq5kn1c4pd8it29kbegkvtlug%40group.calendar.google.com&ctz=America/New_York" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
 +</html>
classes/15s/383/default.txt · Last modified: 2015/08/28 10:54 by jel
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki