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.
Quiz Submission Late Policy
All quizzes remain open throughout the semester but late submissions receive zero points.
Project and Homework Submission Late Policy
Projects and homework remain open 48 hours after the due date and time. However, late submissions receive zero points unless the student has enough participation credit to qualify for extensions.
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 SSD accommodations,
please fill out this form: SSD form
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 help 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, non-SSD accommodations, life situations,
please contact Dr. Ali (leyla+2564@vt.edu) or your section's instructor
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)!
General no-extension policy
As already mentioned in Grades section of this page, late assignments receive zero points in this course. Nevertheless, given many students experience situations that can delay their completion of their work, we provide a mechanism in which any student can receive up to 2 days of extension for homework and projects.
Here are some of the examples of students who typically request for an extension:
Students traveling for interviews, extracurricular activities, competitions, sports, etc.
Students dealing with friends and family emergencies and activities: weddings, funerals, hospital visits, etc.
Students experiencing short term medical issues such as food poisonings, cold, etc.
Students with SSD accommodations that allows a day or two of extension at instructor’s discretion.
Students who have submitted wrong files or made a mistake in their submission and wish to fix their submission.
Students experiencing hardware or software issues.
Students procrastinating, not realizing the assignment takes longer than they expected.
Regardless of the reason, all students can use 1-2 days of extension as long as they have enough class participation credit, which we describe later in this section.
Students who are experiencing major illness or life situations that requires more than 2 days of extension need to contact the Dean of Students or their ECE Academic and Career advisor. The Dean of Students or the academic advisor will work with the student and after verifying the situation, they contact the instructors for further actions.
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.
Spending CPC
You can spend your points to get extensions on your assignments as a reward. You can use up to a maximum of 2 days' extension for any assignment if you can afford it. One day of extension on a
project costs 7 points
homework costs 4 points
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