Sensors form a core foundation for nearly every embedded system, but how an embedded software engineer interfaces to them can vary dramatically. This course will explore various software techniques for interfacing to digital and analog sensors using both C and C++. Attendees will learn how to not just interface to sensors but write reusable interfaces and drivers.
Registration and Playback located here (May require login to access)
October 19 – Day 1 – Introduction to Modern Sensor Interfacing The number and types of sensors that are available to embedded developers has skyrocketed and is nearly uncountable. In this session, we will introduce and discuss common sensors that are used in embedded products, the analog and digital interfaces that are used to interact with them and discuss common challenges.
October 20 – Day 2 – Designing Sensor Interfaces One major challenge with interfacing to sensors is that software drivers often become tightly coupled to the hardware. This decreases the scalability and flexibility of the driver and in many cases makes it so that it cannot be easily reused. In this session, we will explore how to design a proper driver software architecture so that the sensor is abstracted from the microcontroller hardware, allowing the sensor to be easily reused and applied to multiple applications. Attendees will walk away with an understanding on how to architect a modern driver. October 21 – Day 3 – Sensor Driver Techniques Part 1 There are several different models and techniques that developers can leverage to write a driver such as polled, interrupt driven and direct memory access. In this session, we will explore how to write a driver using polled and interrupt driven techniques. Attendees will walk away with an understanding of how to choose the right technique for their application. October 22 – Day 4 – Sensor Driver Techniques Part 2 There are several different models and techniques that developers can leverage to write a driver such as polled, interrupt driven and direct memory access. In this session, we will continue to explore an example interrupt driven driver and explore how to leverage DMA effectively. October 23 – Day 5 – Leveraging C++ in Sensor Interfacing Over 20% of embedded systems are written using C++, which lends itself well to writing reusable and scalable sensor-based drivers. In this session, we will revisit the techniques we’ve examined so far except we will be using C++ rather than C. Attendees will walk away with an appreciation for how C++ can simplify sensor interfaces and improve code reusability.
Jacob’s General Embedded System Resources:
- Sign-Up for the Embedded Bytes Newsletter here
- Embedded Software Design Techniques – An API Standard for MCU’s here
- Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers here
- MicroPython Projects Book here
- Doxygen C Templates Download can be here
- DesignNews Blog Articles can be found here
- Jacob’s YouTube Channel – here