We may earn an affiliate commission when you visit our partners.
Shivkumar Iyer

The course will describe how to use the The course is targeted towards beginners who are new to microcontroller programming and therefore, is ideal for electrical engineering undergraduates and graduate students who will be seeking their first job in the power industry. The course describes how a student can setup a basic home lab for the course, as this course is a hardware course and needs basic electronic equipment for hands-on experience. The course covers both theory and programming. The emphasis of the course is on creating projects and on programming the microcontroller. However, to make the material complete, the course deals with microcontroller architecture and describes the working of the processor and the peripherals.

Read more

The course will describe how to use the The course is targeted towards beginners who are new to microcontroller programming and therefore, is ideal for electrical engineering undergraduates and graduate students who will be seeking their first job in the power industry. The course describes how a student can setup a basic home lab for the course, as this course is a hardware course and needs basic electronic equipment for hands-on experience. The course covers both theory and programming. The emphasis of the course is on creating projects and on programming the microcontroller. However, to make the material complete, the course deals with microcontroller architecture and describes the working of the processor and the peripherals.

The course will begin with very simple examples such as how to make LEDs glow and flash. However, it will progress to more practical scenarios as found in power electronics applications where gating signals will be produced for practical converters. The course will also describe how the microcontroller can be used for control applications by feeding measured signals into the microcontroller and processing them. The course will use the Code Composer Studio IDE provided for free by Texas Instruments and also example projects and starter files provided through the C2000Ware package. The course will describe how necessary software can be be downloaded and how the student can interpret and understand the example projects.

To be able to complete all examples in this course, the student will need to setup a home electronics lab which will cost around USD 150. Details of the components required are described in the introduction and all videos in the introduction are preview enabled.

Enroll now

What's inside

Learning objectives

  • Basic features of the ti tms320f28069 microcontroller
  • Installing and using code composer studio ide
  • Installing and using c2000ware from ti
  • Basic microcontroller architecture and operation
  • Setting up projects and understanding compiler options and dependencies
  • Understanding and interpreting example projects from ti
  • Controlling gpio pins
  • Using timers and interrupts
  • Using the enhanced pulse width modulation module
  • Receiving analog signals using the analog to digital converter

Syllabus

Introduction
Welcome
Target audience
Course requirements
Read more
Completing the course
Texas Instruments
How to install software and download necessary documents
Changing the state of a GPIO pin
Installing Code Composer Studio
Installing C2000Ware
Technical documents and guides
Contents of C200Ware
Details on the TMDSDOCK28069 kit
Details on the LAUNCHXL-F28069 kit
Testing the TMDSDOCK28069 kit
Testing the LAUNCHXL-F28069M kit
Tips for starting with electronics
Understand the project layout and learn how to create a blank project to toggle GPIO pins
Microcontroller architecture and peripherals
Linker files - part 1
Linker files - part 2
Linker files - part 3
Description of Timed LED blink project files
Using GPIO pins as digital outputs
Configuration of GPIO pins (theory)
Data types in C programming language
How header files (.h) are included in the project
Reading the data types used in source code
Understanding the GPIO header file contents
GPIO data register structures
Setting up a new Code Composer Studio project
Fixing project dependencies
Connecting external LEDs to GPIO pins
Completing control code
Executing code - TMDSDOCK28069 kit
Mistake on the use of GPASET
Executing code - LAUNCHXL-F28069 kit
GPIO as digital inputs
Conclusions
How system clock is generated, how timers can be configured and how interrupts can be setup with PIE module.
Event Trigger and Interrupts Sub-module
Importance of timing in digital control
Oscillators and clock signals
Setting up the system clock
Examining the InitSysCtrl() function
Overview of CPU timers
Interrupts and how they are handled
PIE Vector Table
Code browsing - setting up of interrupts
Code browsing - PIE vector table
Code browsing - initialising CPU timers
Code browsing - setting up CPU timer
Setting up our project and defining objectives
Configuring timers using timer registers
Setting different configurations for the three timers
Completing project - writing ISRs and re-enabling interrupts
Fixing bugs
Executing code in the TMDSDOCK28069 kit
Executing code in the LAUNCHXL-F28069 kit
How to generate different gating signals, dead band and fault feedback handling.
Overview of sub-modules in an ePWM module
Time Base Sub-module
Code browsing - selecting an ePWM example project
Code browsing - configuration of ePWM Time Base Sub-module registers
Code browsing - ePWM header file
Code browsing - ePWM ISRs
ePWM interrupt project - setup
ePWM interrupt project - initialising system and interrupts
ePWM interrupt project - time base and interrupt sub-modules
ePWM interrupt project - completing main configuration
ePWM interrupt project - ISRs and compiling project
ePWM interrupt project - executing on TMDSDOCK28069
ePWM interrupt project - executing on LAUNCHXL-F28069
ePWM interrupt project - triangular waveform as carrier
Counter Compare Sub-module
Action Qualifier Sub-module
ePWM gating signal project - setup and configuration
ePWM gating signal project - choosing PWM pins
ePWM gating signal project - compare registers
ePWM gating signal project - emulating a controller
ePWM gating signal project - executing on TMDSDOCK28069
ePWM gating signal project - executing on LAUNCHXL-F28069
ePWM gating signal project - sine-triangle modulation for dc-ac converters
Dead Band Generator Sub-module
Dead band project - setup and configuration
Dead band project - calculating dead time interval
Dead band project - executing on TMDSDOCK28069
Dead band project - executing on LAUNCHXL-F28069
Synchronization feature in the TMS320F28069
Phase-shift control of a full-bridge converter
Phase shift project - setup and basic configuration
Phase shift project - control algorithm
Phase shift project - completing project setup and compiling
Phase shift project - executing on TMDSDOCK28069
Phase shift project - executing on LAUNCHXL-F28069

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses the Code Composer Studio IDE and C2000Ware package from Texas Instruments, which are industry-standard tools for microcontroller programming in power electronics
Begins with simple examples like making LEDs glow and flash, then progresses to practical scenarios found in power electronics applications, easing learners into more complex topics
Requires learners to set up a home electronics lab costing around USD 150, which may be a barrier for some students without access to these resources
Covers microcontroller architecture and operation, providing a comprehensive understanding of the processor and peripherals, which is essential for power electronics applications
Focuses on creating projects and programming the microcontroller, offering hands-on experience that is valuable for practical application in the power industry
Emphasizes the use of microcontrollers for control applications by processing measured signals, which is a core skill for power electronics engineers working on converter control

Save this course

Save Microcontroller Programming for Power Electronics Engineers to your list so you can find it easily later:
Save

Reviews summary

Microcontroller programming for power electronics

According to students, this course is a largely positive introduction to microcontroller programming specifically for power electronics engineers. Learners appreciate the strong focus on practical projects and the detailed coverage of the TI TMS320F28069 and associated tools like Code Composer Studio (CCS) and C2000Ware. While many find the lectures clear and detailed, particularly on hardware setup and specific peripherals like ePWM, some note the initial hurdle of the hardware requirement and software setup. The course is seen as highly relevant for those aiming for a career in the power industry.
Best suited for EE students/professionals.
"This course is highly recommended for electrical engineering students looking to work in the power industry."
"If you have a background in power electronics or EE, you will get the most out of this course."
"The content is very specific to power electronics applications, which is great if that's your field."
Explanations are clear and detailed.
"The instructor's explanations are very thorough, especially when covering complex topics like linker files and interrupts."
"Videos on setting up the software and hardware were particularly helpful and well-explained."
"Appreciated the detailed breakdown of microcontroller architecture and peripheral modules."
Focus on power electronics projects is valuable.
"The course shines in its project-based approach, applying microcontroller concepts directly to power electronics scenarios."
"Students specifically interested in power electronics control will find the projects highly relevant and practical."
"Learning how to generate gating signals for converters was a highlight and directly applicable to my work."
Initial setup can be tricky for some learners.
"Installing and configuring Code Composer Studio and C2000Ware took some troubleshooting for me."
"While the course covers software installation, the process can still be a hurdle for beginners."
"Encountered a few issues getting the example projects to build correctly after the initial setup."
Specific hardware is required, adding cost.
"Be aware you need to purchase specific TI hardware kits (around $150) to follow along effectively."
"The requirement for physical hardware is a necessary but sometimes costly aspect of the course."
"Setting up the hardware was a bit challenging initially, but essential for the hands-on labs."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Microcontroller Programming for Power Electronics Engineers with these activities:
Review Embedded Systems Fundamentals
Solidify your understanding of embedded systems concepts to better grasp microcontroller programming principles.
Browse courses on Embedded Systems
Show steps
  • Review notes from previous embedded systems courses.
  • Work through introductory examples on embedded systems.
  • Familiarize yourself with common embedded system architectures.
Read 'Programming Embedded Systems' by Barr
Gain a deeper understanding of embedded systems programming with a focus on C and GNU tools.
Show steps
  • Read the chapters related to microcontroller architecture and programming.
  • Work through the example code provided in the book.
  • Adapt the examples to the specific microcontroller used in the course.
Practice GPIO Control Exercises
Reinforce your understanding of GPIO control by completing a series of practical exercises.
Show steps
  • Write code to toggle an LED on and off using a GPIO pin.
  • Implement a simple input/output system using GPIO pins and a button.
  • Experiment with different GPIO configurations and settings.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document Your Learning Journey
Improve retention by documenting your learning process, challenges, and solutions.
Show steps
  • Create a blog or online journal to record your progress.
  • Document the code you write, explaining the purpose and functionality.
  • Reflect on the challenges you face and how you overcame them.
Explore 'Designing Embedded Systems with Arduino'
Broaden your understanding of embedded systems with a focus on practical Arduino projects.
Show steps
  • Read the chapters related to interfacing with sensors and actuators.
  • Adapt the Arduino examples to the TI microcontroller used in the course.
  • Explore different communication protocols used in Arduino projects.
Build a Simple PWM-Controlled LED Dimmer
Apply your knowledge of PWM to control the brightness of an LED, simulating a basic power electronics application.
Show steps
  • Configure the microcontroller's PWM module.
  • Write code to adjust the PWM duty cycle based on user input.
  • Connect an LED to the PWM output and observe the brightness changes.
Create a Presentation on Microcontroller Applications in Power Electronics
Deepen your understanding by researching and presenting on real-world applications of microcontrollers in power electronics.
Show steps
  • Research different applications of microcontrollers in power electronics.
  • Prepare a presentation outlining the applications, benefits, and challenges.
  • Present your findings to your peers or colleagues.

Career center

Learners who complete Microcontroller Programming for Power Electronics Engineers will develop knowledge and skills that may be useful to these careers:
Power Electronics Engineer
A power electronics engineer designs and develops electronic systems for power conversion, control, and conditioning. This course is highly relevant, as the course title mentions the role directly. It teaches microcontroller programming specifically for power electronics applications. The course progresses from basic examples to practical scenarios like producing gating signals for converters. Power electronics engineers leverage microcontrollers, which this course details along with their architecture and operation. Students will be able to confidently work with Code Composer Studio IDE, example projects, and starter files, as power electronics engineers often do.
Embedded Systems Engineer
An embedded systems engineer designs, develops, and tests embedded systems, which are computer systems with a dedicated function within a larger mechanical or electrical system. This course may be useful as it provides hands-on experience with microcontroller programming, which is a core skill for embedded systems engineers. The course covers the architecture and operation of microcontrollers, and emphasizes creating projects and programming, focusing on the Texas Instruments TMS320F28069. The course also addresses reading analog sensors using the Analog to Digital Converter. Furthermore, the course describes setting up a home electronics lab, essentials for any budding embedded systems engineer.
Control Systems Engineer
A control systems engineer designs and implements systems to control dynamic systems, for example in robotics, aerospace, and automotive applications. Control systems rely heavily on feedback and microcontroller-based processing. The course may be useful because it describes how a microcontroller can be used for control applications along with receiving analog signals which are then fed into the microcontroller. This course also covers the use of timers and interrupts, essential for implementing real-time control algorithms. The course's emphasis on hands-on projects using the Texas Instruments TMS320F28069 microcontroller also provides very relevant and specific experience for a control systems engineer.
Firmware Engineer
A firmware engineer develops the software that controls hardware devices. This course may be useful as it offers targeted training in microcontroller programming, crucial for firmware development. The course covers microcontroller architecture, setting up development environments, and using peripherals which are all essential to the firmware engineer. Students will gain experience with creating and debugging firmware using Code Composer Studio and the C2000Ware package. This course also enables someone interested in becoming a firmware engineer to acquire hands-on experience, including setting up a home electronics lab.
Robotics Engineer
A robotics engineer designs, builds, and programs robots. Microcontrollers are at the heart of most robotic systems for performing calculations and interfacing with sensors and actuators. This course may be useful as it provides a solid foundation in microcontroller programming, including controlling GPIO pins, using timers and interrupts, and receiving analog signals via the ADC. Robotics applications commonly require real-time control, which this course touches upon. The course's use of the Texas Instruments TMS320F28069 microcontroller gives aspiring robotics engineers experience with a widely used platform.
Automation Engineer
An automation engineer designs, develops, and implements automated systems in manufacturing or other industries. Automation often relies on microcontrollers for real-time control and data acquisition. The course may be useful as it covers microcontroller programming, including the use of timers, interrupts, and analog-to-digital conversion, making it valuable for control systems applications. Automation engineers can benefit from the hands-on experience with the Texas Instruments TMS320F28069 microcontroller, as well as the focus on practical projects and coding.
Electrical Engineer
Electrical engineers design, develop, test, and supervise the manufacturing of electrical equipment. The course may be useful to electrical engineers who want to specialize in microcontroller applications, particularly within power electronics. It provides hands-on experience with setting up a home electronics lab and programming microcontrollers using industry-standard tools like Code Composer Studio. Electrical engineers can use the knowledge gained in the course to work on projects involving embedded systems and power control.
Hardware Engineer
A hardware engineer designs, develops, and tests computer hardware. Microcontroller knowledge is crucial for hardware engineers working on embedded systems or interacting with digital circuits. This course may be useful because it provides a practical introduction to microcontroller architecture, peripherals, and programming. The specific focus on the Texas Instruments TMS320F28069 may provide hardware engineers with experience on a common microcontroller platform. The course's emphasis on setting up a home lab may also be useful given that hardware engineers need hands-on experience.
Mechatronics Engineer
A mechatronics engineer integrates mechanical, electrical, and computer engineering to design automated systems. Microcontrollers are at the heart of mechatronic systems integrating sensors, actuators, and control algorithms. The course may be useful because it introduces the fundamentals of microcontroller programming. The hands-on projects and practical examples, using the Texas Instruments TMS320F28069 microcontroller, will show how to design and implement embedded control systems. Mechatronics engineers can utilize the knowledge gained to develop custom solutions for automated machines and devices.
Energy Systems Engineer
An energy systems engineer designs and optimizes energy generation, distribution, and consumption systems. Microcontrollers play a role in energy management systems, smart grids, and renewable energy converters. The course may be useful if it helps the energy systems engineer who wants to gain practical skills in microcontroller programming, especially for power electronics applications. The course's emphasis on hands-on experience and project-based learning, using tools like Code Composer Studio, will allow engineers to implement, simulate, and test their energy systems.
Power System Protection Engineer
A power system protection engineer designs and implements systems to protect electrical power grids from faults and disturbances. Microcontrollers are increasingly used in protection relays and control systems to provide intelligent protection. The course may be useful because it provides insight into microcontroller architecture, programming, and interfacing with analog signals. The focus on generating gating signals for converters aligns with the control aspects of power system protection. The power system protection engineer may find that this course provides a starting point for implementing custom protection algorithms.
Internet of Things Engineer
An Internet of Things engineer designs and develops connected devices and systems. These devices often contain microcontrollers for sensing, processing, and communication. The course may be useful as it teaches the fundamentals of microcontroller programming. Understanding microcontroller architecture, peripherals, and programming techniques helps the Internet of Things engineer develop custom firmware for their devices. Specifically, this course's discussion of GPIO pins and ADC may be valuable. An Internet of Things engineer can also benefit from the hands-on approach, setting up and testing microcontroller-based circuits.
Aerospace Engineer
An aerospace engineer designs, develops, and tests aircraft, spacecraft, and related systems. These are used in guidance systems, engine control, and other embedded applications. The course may be useful because experience in microcontroller programming will allow the aerospace engineer to control components of aerospace vehicles. The use of timers, interrupts, and analog signal processing, as covered in this course, may apply to aerospace control systems. Experience in setting up and coding a microcontroller system can be valuable to the aerospace engineer.
Systems Engineer
A systems engineer focuses on the overall design, integration, and management of complex systems. While they may not directly program microcontrollers, understanding the underlying technology is beneficial. The course may be useful because it exposes the systems engineer to the workings of microcontrollers and the complexities of embedded systems. This knowledge facilitates better communication and collaboration with hardware and software teams. The hands-on experience and practical examples help the systems engineer appreciate the challenges involved in embedded system development.
Product Development Engineer
A product development engineer is involved in the design and launch of new products. This encompasses many fields, and many products today contain embedded electronics. The course may be useful to product development engineers who want to understand the role of microcontrollers in product design. Familiarity with microcontroller architecture, peripherals, and programming techniques, along with the ability to set up and test microcontroller circuits, enhances the product development engineer's ability to oversee the integration of microcontrollers into new products.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Microcontroller Programming for Power Electronics Engineers.
Provides a comprehensive guide to programming embedded systems using C and GNU development tools. It covers essential topics such as memory management, interrupt handling, and device drivers. It is particularly useful for understanding the underlying principles of microcontroller programming and provides practical examples that can be adapted for power electronics applications. This book is commonly used as a textbook in academic institutions.
Provides a practical introduction to embedded systems design using the Arduino platform. While the course focuses on TI microcontrollers, understanding Arduino can provide a broader perspective on embedded systems development. It covers various sensors, actuators, and communication protocols commonly used in embedded applications. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser