Description
You may own one or two general-purpose PCs, but you probably own 100 microcontrollers as well. They’re among the most pervasive digital component around, and they are used for anything from car-brake control to doorbell melody sequencing. In this course, you will learn about this digital component, how to program it in C, and how to interface it with embedded peripherals.
Catalog Description
Use of microcontroller-based embedded systems as a tool to address digital control and sensing in engineering applications. Modern methodologies for programming microcontrollers, including programming under real-time and resource design constraints. Finite-state machine modeling and software implementation. Event-driven programming, including polling-based and interrupt-driven input/output. Integration of sensors and actuators, use of standard digital and analog interfaces, and use of hardware peripherals in microcontroller architectures. Design of hardware abstraction layers and software architectures for embedded systems. Integration of hardware peripherals into real-time software applications. Software toolchains for embedded systems, use of debugger and development, and testing methodologies. Professional project management and version control.
Formal Objectives
Having completed this course, the students should be able to
Develop microcontroller-based embedded system software that meets real-time specifications.
Document and implement a finite state machine.
Implement polling-based and interrupt-driven software.
Organize software interfaces as a hardware abstraction layer.
Build software interfaces to common peripheral devices, sensors, and actuators.
Describe the architecture of a microcontroller-based embedded system.
Develop embedded system software to meet resource and design constraints.
Use software toolchains, debugging techniques, testing methodologies, project management, and software version control.
Prerequisites
ECE 2544, Fundamentals Digital Systems (for concepts related to digital logic, data representation, computer arithmetic, basic computer organization, and operation).
ECE 2514, Computational Engineering ( for practical knowledge of the C/C++ programming language.)
Text and References
There are no required textbooks. Datasheets, user manuals, and other materials will be available for download at no cost.
Equipment and Design Software
The ECE department will lend a kit for this course to each student. The kit will contain a microcontroller board, several small peripheral modules, and several cables. We will provide instructions on when and where you will either pick up or receive your kit. You must return these materials at the end of the semester when you complete the last project assignment.
You will need to develop software for the board using the Texas Instruments Code Composer Studio. This software package is available to everyone at no cost.
All students must own a laptop that meets the College of Engineering requirements.
Grade Weights
Semester grades will be based on the following weights.
Projects 45% (three projects equally weighted)
Exams 28% (18% for three midterms and 10% for the final)
Homework 15% (10-11 assignments equally weighted)
Quizzes 11% (40 quizzes equally weighted, lowest three quiz grades are dropped)
Community 1% (3-4 questionnaires and surveys, equally weighted based on completion only)
Appeals
If an error has been made in grading an assignment or exam, please let us know at your earliest convenience but no later than one week after the grade is released. To appeal, you need to submit a ticket to the help line provided on the course's main page on Canvas.
Late Policy
All assignments follow a basic hourly late policy: for every hour an assignment is late, the grade is reduced by 0.75%. Canvas applies late penalties by taking the late deduction off the total possible points, not off the student’s earned score. In other words, the late penalty is applied first, and then any points missed on the work are subtracted from the reduced maximum. For example, if an assignment is worth 100 points and a student submits it 20 hours late, the late penalty is 0.75% per hour × 20 = 15%, so the maximum possible score becomes 85 points. If the student’s work would have earned a 90/100 (meaning they missed 10 points), Canvas subtracts those 10 missed points from 85, resulting in a final score of 75/100. This is the grading behavior Canvas uses automatically, and it matches our official late policy.
Honor Code Policy
The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states:
“As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.”
Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code.
For additional information about the Honor Code, please visit: https://www.honorsystem.vt.edu/
Exams are to be completed individually. Homework problems may be discussed with other students, but the final solution is to be your work. The source code may not be shared. Obtaining the source code from any source other than your instructor, a GTA, the course notes, or the MSP432 driverlib is an Honor Code violation. Automated plagiarism detection will be employed. 100% of the cases submitted to the Honor Committee are successfully convicted.
Virginia Tech has recently increased the penalty for the first offenders. Do not take any chances. A grade of zero for a project assignment will not result in failing your course. Nevertheless, violating the honor policy even for a homework assignment does result in course failure.
The Academic Integrity expectations for Hokies are the same in an online class as they are in an in-person class. Hokies are expected to meet the academic integrity standards at Virginia Tech at all times.
If you have questions or are unclear about what constitutes academic misconduct on an assignment, please speak with me. I take the honor code very seriously in the course. The normal sanction I will recommend for a violation of the Honor Code is an F* sanction as your final course grade. The F represents a failure in the course. The “*” is intended to identify a student who has failed to uphold the values of academic integrity at Virginia Tech. A student who receives a sanction of F* as their final course grade shall have it documented on their transcript with the notation “FAILURE DUE TO ACADEMIC HONOR CODE VIOLATION.” You would be required to complete an education program administered by the Honor System in order to have the “*” and notation “FAILURE DUE TO ACADEMIC HONOR CODE VIOLATION” removed from your transcript. The “F” however would be permanently on your transcript.”
Commission of any of the following acts shall constitute academic misconduct. This listing is not, however, exclusive of other acts that may reasonably be said to constitute academic misconduct. Clarification is provided for each definition with some examples of prohibited behaviors in the Undergraduate Honor Code Manual located at https://www.honorsystem.vt.edu/
CHEATING: Cheating includes the intentional use of unauthorized materials, information, notes, study aids or other devices or materials in any academic exercise, or attempts thereof.
PLAGIARISM: Plagiarism includes the copying of the language, structure, programming, computer code, ideas, and/or thoughts of another and passing off the same as one's own original work, or attempts thereof.
FALSIFICATION: Falsification includes the statement of any untruth, either verbally or in writing, with respect to any element of one's academic work, or attempts thereof.
FABRICATION: Fabrication includes making up data and results, and recording or reporting them, or submitting fabricated documents, or attempts thereof.
MULTIPLE SUBMISSION: Multiple submission involves the submission for credit – without authorization from the instructor receiving the work – of substantial portions of any work (including oral reports) previously submitted for credit at any academic institution of attempts thereof.
COMPLICITY: Complicity includes intentionally helping another to engage in an act of academic misconduct, or attempts thereof.
VIOLATION OF UNIVERSITY, COLLEGE, DEPARTMENTAL, PROGRAM, COURSE, OR FACULTY RULES: The violation of any University, College, Departmental, Program, Course, or Faculty Rules relating to academic matters that may lead to an unfair academic advantage by the student violating the rule(s).
Please carefully read the following list and follow the instructions. Failure to do so may result in a delayed response or no response at all.
For course material and course logistics (exam time, format, ...) questions,
please use Piazza or go to OH (virtual or in-person)
For grading appeals,
please submit a appeal ticket
For problems with Canvas or GitHub, etc. preventing you from submitting your work through designated channels,
For late board pickup or early board dropoff
please go to any in-person OH held by GTAs
If your kit looks and feels physically OK, but it does not behave the way you expect it to,
please run the "test your kit" program
If your kit fails the "test your kit" test, or it is getting too hot, it has loose parts on the board, etc.,
please submit a help ticket
If you are having software or hardware issues with your computer,
please use one of the following channels:
swat.eng.vt.edu
submit a help ticket (we may be able to lend you a laptop with working CCS)
For absences, SSD or non-SSD accommodations, life situations,
please contact Dr. Ali (leyla+2564@vt.edu) or your section's instructor
For anything not listed here,
please submit a help ticket
Help on Piazza
We recommend Piazza as the main forum to seek answers for your questions. Always check to see if similar questions have already been asked and answered before posting your question. We will reply to your questions within 48 hours from posting your question. That means if you send questions two days before a deadline, you will not get answers early enough to solve your issues.
Help during Office Hours
We will have in-person and virtual Discord Office Hours staffed by our Instructors and Graduate/Undergraduate Teaching Assistants. However, not all questions/concerns are handled in all Office Hours. Please read below to see which OH meets your needs.
Instructors only:
your progress in the course including grades, missed assignments, etc.
feedback about various aspect of the class: assignments, lectures, TA support, deadlines.
professional advice and consultation
SSD and non-SSD, such as religious Holidays, accommodations
TAs only:
debugging and detailed assignment-related questions
Pick up/drop off/exchange the hardware kits
Instructors and TAs:
course material: lectures, quizzes, product documentations, general programming concepts
general discussion and brainstorming about tackling the projects
TA OH queue
TA Office Hours uses a discord server to manage the Office Hour queue whether you are attending an in-person or a virtual office hour.
Before the first time you wish to attend office hour, please follow the below instructions:
Make sure you use your FULL NAME as your name on the server. For some of you, it means changing your name within this server.
Within the Discord VCEL server, go to the #welcome channel and learn about procedures and rules within VCEL.
If you have not already done so, take the VCEL etiquette quiz. You need to get 100% on it. You can retake the quiz till you reach 100%. OH etiquette quiz
Every time you wish to attend office hour, please follow the below instructions:
During the OH time slot you are interested in, or up to 15 minutes earlier than its starting time, submit a ticket to the OH queue. Entering the queue
(optional step) Monitor the queue progress on this spreadsheet: The queue monitor
If you are interested in the discord/virtual support within the VCEL Discord server, keep an eye on #queue-pickup for your name to be called. Follow the TA to the channel for your one-on-one support. If you are looking for in-person support, wait for your name to be called.
Fun fact: We call our Discord server Virtual Computer Engineering Lab, or VCEL, in memory of our physical CEL (Computer Engineering Lab)!
Class Participation Credit
Attendance is optional. Nevertheless, you receive Class Participation Credit, CPC, by completing online quizzes during the lecture. The CPC does not affect your course grade. Instead, you can spend it to "buy" extensions for homework assignments and projects.
Receiving CPC
There will be one or more participation quizzes during each lecture.
You will receive credit for participation only when you get the correct answers.
We add the scores for all the quizzes taken in one lecture and scale the grade to 1. In other words, the perfect Lecture Participation Credit, LPC, is 1 point.
You have unlimited submissions and can take as many attempts as you need.
You can only complete the activity after the professor tells you, and you will have 5 minutes to do it.
Collaboration among students is encouraged.
SSD students do not get extra time on these assignments due to the nature of the assignments. Please contact your instructor if you have any concerns about this policy.
Your CPC is the sum of all your LPCs.
How does CPC affect your grade?
It doesn’t—directly.
There are two options for the final exam: a cumulative version and a non-cumulative version. Later in the semester, we’ll explain the method we use to determine whether you qualify to take the non-cumulative exam.
Everyone may choose to take the cumulative exam, and students who qualify will also have the option to take the non-cumulative exam.
Exam location: In class (with some exceptions)
Midterm exam length: 60 minutes. (This length includes 10 minutes extra for unexpected network or computer issues. Remember, this is a test and not homework. In other words, you should be able to answer questions and move on quickly. Unless you are facing extraordinary circumstances, we do not foresee extending this time for anyone. ) In summary:
for SSD students who need x2 the time: 50*2+10 = 110 minutes
for SSD students who need x1.5 the time: 50*1.5+10 = 85 minutes
for all other students: 50+10 = 60 minutes
Final exam length: 120 minutes. (This length includes 10 minutes extra for unexpected network or computer issues. Remember, this is a test and not homework. In other words, you should be able to answer questions and move on quickly. Unless you are facing extraordinary circumstances, we do not foresee extending this time for anyone. ) In summary:
for SSD students who need x2 the time: 110*2+10 = 230 minutes
for SSD students who need x1.5 the time: 110*1.5+10 = 175 minutes
for all other students: 110+10 = 120 minutes
Exam open-book format: You can refer to any course material (for this semester) and Wikipedia during the exam. However, referring to any other source is not allowed and violates the Honor Code. Both regular calculators and online calculators are allowed. We use LockDown Browser during the exam.
Questions or concerns during the exam: If anything seems to be unclear, write any assumptions that are needed and continue with the exam. If the question does not have a space for you to add your assumptions, send an email to the instructors with your assumptions.
Honor Code: This is a free country. Nevertheless, discussing course material during the period of the exam will constitute a violation of the Honor Code policy in this class. Even simple questions such as "Which module covered i/o pin configurations?" are a violation.
Scratch Paper: You can have single sheet of paper with your name written on it for solving problems. We will NOT collect the papers.
Student ID: You will need to have your student ID with you during the exam.
Honor Code statement: You will be asked to sign the following statement as part of the exam.
On my honor, I will neither give nor receive unauthorized assistance from/to anyone in any form on this examination. More broadly, I will not discuss any course or exam material until exam grades are released with anyone, in or outside our class community.
Exam exceptions/conflicts: If you have a conflict with any of the exams or you have SSD accomedations related to time or location of the exam, please fill out this form
Catching Up with Course Material if You Miss a Lecture
Review course materials: Check the class notebook or slides, depending on your section.
Do the first attempt for the module quiz: Complete your first attempt on the module quiz associated with the lecture. They are labeled M1 through M40 and you can find then under the Quizzes on Canvas.
Seek help if needed: If you have questions or need clarification on incorrect answers, please use Piazza or visit any of the office hours (OHs). For the TA OH, you can always use the online Discord option if you cannot attend the in person.
Do the second attempt for the module quiz: After reviewing the materials and addressing any issues, complete your second attempt on the module quiz.
Completing In-Class Activities (Quizzes) if You Miss a Lecture
Completing the Activity: You may complete the in-class quiz at any time and with as many attempts as you wish to support your learning. Feel free to discuss questions with classmates or instructors.
Receiving Participation Credit: To receive participation credit for the quiz, you must be present in class unless you have an excused absence approved by the Dean of Students.
Attending Class via Zoom
This class is held exclusively in person, except when the instructor must work remotely on a temporary basis. Students with an approved extended absence from the Dean of Students are encouraged to contact the instructor in advance to arrange remote attendance via Zoom. Please note that our policy only permits remote attendance for students with an excused absence, which typically requires prior documentation. With approximately 150 students in class, it is logistically unfeasible to provide a Zoom link for every student who unexpectedly misses class.
Verified Absences Steps
No Need to Email Your Instructor Initially: There is no need to send an email to your instructor if you plan to miss class.
Contact the Dean of Students: All verified absences must be processed through the Dean of Students. Once your absence is verified, both you and your instructor will receive an email notification.
Contact your instructor: After your absence is verified, please email your instructor to discuss possible extensions on your assignments. Your instructor will grant you participation credit for the duration of your approved absence, regardless of whether you complete the in-class activities.
Follow up: A few days after your absence ends, check your participation credit spreadsheet to ensure you have received credit for the excused missed lectures.