Course ID: CS2101
Course Credits: 4
Course Type: Foundation
Pre-requisites: CS1101 - Introduction to C Programming
Course ID: CS2101
Course Credits: 4
Course Type: Foundation
Pre-requisites: CS1101 - Introduction to C Programming
What you’ll learn
Course structure & Assessments
6 credit course, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.
WEEK 1 | Types of microcontrollers; programmability, memory, compute capacity, functionality, interfacing |
WEEK 2 | Memory maps; peripheral interfacing; register mapping |
WEEK 3 | Typical data structures and programming styles for embedded systems |
WEEK 4 | General purpose IO, low speed interfaces |
WEEK 5 | Bus interfaces: UART, SPI, I2C; introduction Modbus, CANbus |
WEEK 6 | Human-Computer Interaction; keyboard, mouse, touchscreen |
WEEK 7 | High performance IO; buffering, DMA; USB, ethernet, networking |
WEEK 8 | Real-time operating systems; latency constraints; scheduling; FreeRTOS, Linux concepts |
WEEK 9 | Video interfaces |
WEEK 10 | System-level design, integration; SoC concepts |
Prescribed Books
The following are the suggested books for the course:
Class Notes
The C Programming Language, Kernighan and Ritchie
Curated online reference material
About the Instructors
Nitin Chandrachoodan received his BTech (electronics and communication engineering) from IIT Madras in 1996, and PhD from the University of Maryland at College Park in 2002, in the area of high-level synthesis techniques for mapping DSP algorithms to architectures. He has been with the department of electrical engineering at IIT Madras since 2004, where he is currently an professor.
His research interests include digital systems design and design automation tools and techniques, as well as design of embedded systems with a special focus on assistive technologies. He has taught graduate courses on digital integrated circuit design and on mapping algorithms to architectures, and a UG course on data structures and algorithms, as well as a laboratory course on digital design using FPGAs. He is an associate editor of the Springer Journal of Signal Processing Systems.
Other courses by the same instructor: EE2103 - Digital System Design , EE3102 - Control Engineering , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective and - Humanities Elective