September 4 - Day 5: Robust Firmware Concepts
Continuing Education Center 9/4/2015 Post a comment There are many concepts that can be used to help increase the robustness of embedded software. This session will review a wide variety of them. An in depth look at watchdog design, stack monitoring and memory management will be explored. Attendees will walk away with the ability to implement a reliable watchdog and perform essential checks such as RAM and ROM testing.
September 3 - Day 4: ASSERT and printf
Continuing Education Center 9/3/2015 Post a comment The ASSERT macro is a critical component of embedded software development but an often under implemented and misunderstood tool. Using printf has also held a stigma that often leaves devlopers confused and hesitant. This session will walk attendees through how to setup these two tools and use them properly to help improve the reliability of their embedded system.
September 2 - Day 3: UART Driver and STM32CubeMx
Continuing Education Center 9/2/2015 Post a comment This session will examine how to create a UART driver that will be used in later sessions with printf and assert. Driver development can be greatly accelerated by using available vendor tools such as the STM32CubeMx toolset. The tool will be examined in detailed as part of the driver development exercise. Attendees will walk away with software examples on how to create a UART driver and an understanding of the STM32CubeMx tool.
September 1 - Day 2: Doxygen and PC-Lint
Continuing Education Center 9/1/2015 Post a comment In a fast paced environment, properly documenting and checking code for errors often goes ignored but they are absolutely critical to robust product design. This session will examine how to use Doxygen to document code and also generate the code documentation for the developer. PC-Lint configuration and utilization will also be examined. Attendees will walk away with a deep understanding of how to use these two crucial development tools.
August 31 - Day 1: Portable C Concepts
Continuing Education Center 8/31/2015 1 comment This session will introduce a subset of the C language and design techniques that are suitable for writing portable code. An STM32 Nucleo development kit utilizing a Cortex-M0+ will be used for example code. Attendees will walk away from this session with the knowledge of how to design software that can be reused through APIs and HALs.
August 20 - Day 4: Advanced Device Applications
Continuing Education Center 8/20/2015 Post a comment Beyond the basic SoC, ARM processors are being used in configurable devices including those with FPGAs and other types of programmable logic. We will discuss a couple of these devices and look at how the ARM processor integrates with the device to enhance functionality.
August 19 - Day 3: ARM Based Devices – Standard SoC
Continuing Education Center 8/19/2015 Post a comment ARM provides and architecture and the Intellectual Property (IP) for chip designers to implement devices. In this lecture we will look at several specific implementations in the basic System on Chip (SoC) market. This will not be an exhaustive list, but will give a good overview of how the Cortex-M architecture is used and will arm the student with knowledge that can be used to intelligently decide which implementation to use in a specific application.
August 18 - Day 2: Cortex-M Series Details
Continuing Education Center 8/18/2015 Post a comment In this lecture we will go over the Cortex-M architecture. This includes the instruction set variations, which are many. We will also discuss power management, interrupts, memory management and related topics of the basic Cortex-M family.
August 17 - Day 1: Understanding ARM
Continuing Education Center 8/17/2015 Post a comment Just what is ARM (the company and the product)? In this lecture we will look at what ARM is, where it came from and give an overview of the various families of products available and their areas of application.
August 7 - Day 5: Using Wireshark to Test an Embedded IPv6 Project
Continuing Education Center 8/7/2015 Post a comment In our final class, we will program a FRDM-K64 demo board from Freescale Semiconductor to perform some IPv4 and IPv6 functions and monitor them with Wireshark. We will then use this to troubleshoot our application. We will close the class with some looks at the strengths and weaknesses of the program and some alternative TCP/IP tools.
July 24 - Day 5: Processor and FPGA - The Full Flow
Continuing Education Center 7/24/2015 419 comments An example, suggested by the students, will illustrate the full development flow from project definition to a running design with selected screen shots in the class PPT. Students with the software or hardware can follow along as a homework exercise.
July 23 - Day 4: Targeting the Development Board
Continuing Education Center 7/23/2015 449 comments In this class the process of targeting an existing development board will be demonstrated. Students without the board will still be able to follow along with the class and will see a working application using the software debugger.
July 22 - Day 3: A Simple Example Design
Continuing Education Center 7/22/2015 488 comments A simple example design is used in this class to demonstrate the use of the processor oriented tools in the Vivado tool suite. The on-chip processor will be configured and some simple code will be used to demonstrate how to go from an idea to a working application.
July 21 - Day 2: Downloading, Installing and Running Design Software
Continuing Education Center 7/21/2015 505 comments This class will go step by step through the process of obtaining and using a typical SoC FPGA design tool chain. The Xilinx Vivado 30-day evaluation will be used and students are encouraged (optional) to download and install the software to follow along with the rest of the classes.
July 20 - Day 1: An Introduction to SoC FPGAs
Continuing Education Center 7/20/2015 680 comments FPGAs with embedded processors are powerful devices, but can be complicated to design with. This class will introduce some example SoC FPGAs, the typical design flow, target applications and resources available to speed YOUR design.
July 10 - Day 5: Raspibot Board Part 2
Continuing Education Center 7/10/2015 835 comments This final session is a continuation of the Raspibot board discussion. We’ll take a look at how to create awesome visual displays using an LED matrix cube. A discussion of the cube’s construction and attaching it to the Raspibot will be presented. Final testing of the LED matrix cube with RRB and RPi.GPIO libraries will be discussed in this concluding session.
July 9 - Day 4: Raspibot Board Part 1
Continuing Education Center 7/9/2015 920 comments The Raspibot board is an accessory controller that allows control of DC and stepper motors, LED matrices and LCDs, allowing basic mobile robots and electronic controllers to be built quite easily (uses the RRB library dev’d by Simon Monk). We’ll discuss the board architecture, a hands-on activity of installing the Raspibot RRB library to the Raspberry Pi, and how to operate two DC motors and onboard LEDs by way of sending simple RRB scripting commands to the board using the “sudo python” IDLE.
July 8 - Day 3: A Detailed Look at the RPi.GPIO Library
Continuing Education Center 7/8/2015 1143 comments The Python library used in connecting the platform to the physical world for electronic controls is the RPi.GPIO code. In this session we’ll investigate the RPi’s GPIO (General Input Output) pins and how to enable them with the RPi.GPIO library. We’ll investigate how to install the library using LXTerminal/Linux commands. The final test of the RPi.GPIO library installation will consist of controlling an LED and reading an electric switch wired to the Raspberry Pi.
July 7 - Day 2: Introduction to the Python Programming Language
Continuing Education Center 7/7/2015 1060 comments This session will include a discussion on Python, the purpose of the interpretive programming language, and the inventor who created it. A review of the Python IDLE (Integrated DeveLopment Environment) will be provided in this session. The discussion will also focus on Python 2, 3, and “sudo python” IDLEs. Also, basic hands-on scripting activities (building a simple calculator) on using Python will be presented in this session, as well.
July 6 - Day 1: Introduction to Building Raspberry Pi Controllers
Continuing Education Center 7/6/2015 1089 comments The Raspberry Pi is a user-friendly, credit-card-size, Linux-based computer that design engineers (and educators and Makers) can use as a rapid development platform to design products for the consumer and industrial markets. An overview of the Raspberry Pi’s architecture will be explained, along with a presentation of the examples illustrating the use of this credit-card-size, Linux-based computer.
June 26 - Day 5: Roll Your Own to Wireless
Continuing Education Center 6/26/2015 350 comments Today we focus on designing a base piece of Internet-capable hardware. The design can be used as an entry gateway, an intermediate node, or an exit gateway. We will also code the firmware for the aforementioned nodal functions.
June 25 - Day 4: WICED Use of the Internet
Continuing Education Center 6/25/2015 371 comments Technology provided by Anaren shines in this class, as we will drive an Anaren A20737 radio module across the Internet. We will ride the electron highway in luxury aboard Anaren’s new WiFi gateway. Today’s hardware project involves moving the A20737 from the factory demo board to a user-designed printed circuit board.
June 24 - Day 3: Internet Connectivity from Down Under
Continuing Education Center 6/24/2015 329 comments The ACKme WiFi networking modules mean Numbat and Wallaby. In this lecture we also will tame an ACKme Bobcat Bluetooth module and watch it walk peacefully with a Numbat module on the Internet trail. This hardware project is based on the ACKme AMW006 (Numbat) module.
June 23 - Day 2: Internet-Based Bluetooth Control
Continuing Education Center 6/23/2015 371 comments In this lecture we will design and implement a trans-Internet Bluetooth session using Microchip’s RN4020 Bluetooth Low Energy module. This class also will have you ready for designing and implementing the Bluetooth session’s Internet gateway framework.
June 22 - Day 1: Low-Cost Internet via RF
Continuing Education Center 6/22/2015 445 comments This class will demonstrate how an $8 set of ASK radio modules can perform monitor and control operations using the Internet. Our project task for this class will involve designing and building the ASK radio entry and exit Internet gateways.
June 12 - Day 5: Digital Filters III: Finite Impulse Response Filters and Conclusion
Continuing Education Center 6/12/2015 567 comments As we will have learned in Day 4, there are limitations in IIR filters that can create challenges in design and response. In this class we will look at the finite impulse response (FIR) filter and compare the design criteria as well as the resultant output of the two types of filters. We will conclude by reviewing the various filters and some of the resulting solutions, comparing the results.
June 10 - Day 3: Digital Filters I: Sampling and the Z-Transform
Continuing Education Center 6/10/2015 701 comments Computation – particularly with the advent of digital signal processing (DSP) – allows us to create very powerful filters that can add new capabilities. Here, we go into digital filters with a review of the transform from the continuous time domain to the sampled domain. We will look at not only the Z-transform but also some tricks and tips, such as oversampling, which allows us to simplify filters.
June 9 - Day 2: Analog Filters II: Active Filters
Continuing Education Center 6/9/2015 626 comments As we will have learned in Day 1, a resonant circuit is affected by the circuits that exist at its input and output. In this class, we will look in depth at the addition of operational amplifiers (and in RF – other amplifiers) to make powerful and accurate filters for our applications.
May 22 - Day 5: Low-Power Design Techniques
Continuing Education Center 5/22/2015 429 comments One of the most important features of the ARM Cortex-M processors is their extensive focus on low-power capabilities. This makes them perfect for battery-operated devices. This session will examine low-power design techniques such as energy profiling and measurement, in addition to unique features such as low-power modes, wait-for-interrupt, and sleep-on-exit . You will learn to implement a basic sleep function on their development kits.
May 21 - Day 4: Writing Embedded Software with CMSIS
Continuing Education Center 5/21/2015 434 comments The Cortex Microcontroller Software Interface Standard (CMSIS) is becoming a critical component in the embedded software development toolkit. This session will walk you through CMSIS: What it is and why a developer would consider using it. An application example will give attendees the switch debounce code that can be implemented on their own development kits.
May 20 - Day 3: ARM Cortex-M Architecture
Continuing Education Center 5/20/2015 475 comments This session will examine the intricate details of the ARM Cortex-M architecture. The register model and system control block will be explored in detail, in addition to useful core features such as the nested interrupt vector controller and the system tick. Attendees will leave with software examples on how to optimize bit manipulation and know how to set up a system scheduler using the system tick.
May 19 - Day 2: Project Setup and Compilation
Continuing Education Center 5/19/2015 639 comments There is a lot that goes on behind the scenes to compile that first empty project. These details are often ignored but absolutely critical to properly mapping out and optimizing a device. This session will examine how to create a project, set up a baseline, and modify the linker and processor memory map, in addition to elucidating the compiling process. Attendees will gain a deep understanding of the microcontroller boot sequence in addition to a working LED blink program.
May 18 - Day 1: Overview of STM32 ARM Cortex-M0+
Continuing Education Center 5/18/2015 801 comments This session will introduce the ARM Cortex-M family of processors, along with its features, instruction set and scalability. We will examine an STM32 Nucleo development kit utilizing a Cortex-M0+, along with how to set it up and use it for prototyping work. Attendees will walk away from this session with the knowledge to get the platform up and running.
May 8 - Day 5: Example Low-Power Designs
Continuing Education Center 5/8/2015 538 comments Drawing your input from the first two days of classes, a set of example designs will be used to illustrate the key concepts covered in class. This will also provide a head start for students that have particular design objectives in mind for their next low-power system project.
May 7 - Day 4: Low-Power MCUs and FPGAs
Continuing Education Center 5/7/2015 497 comments Example MCUs and FPGAs will be described, as well as the key features needed for low-power operation -- either from batteries or energy harvesting approaches. This class will also describe software and hardware tools that are helpful in developing low-power applications.
May 6 - Day 3: Energy Harvesting for Low Power
Continuing Education Center 5/6/2015 585 comments Energy harvesting provides a new source of power for MCU and FPGA designs. Energy is all around us; we just need to turn it into power that our devices can use. This class will describe the most common energy harvesting techniques and how to use them for MCUs and FPGAs.
May 5 - Day 2: Battery Power for MCUs and FPGAs
Continuing Education Center 5/5/2015 574 comments Batteries are used in a wide range of MCU- and FPGA-based applications. Understanding the key power requirements and how to use power efficiently provides the basis for all battery-operated applications. This knowledge is power.
May 4 - Day 1: An Introduction to Low-Power Systems
Continuing Education Center 5/4/2015 738 comments This class will lay the groundwork for mastering the key concepts that will come up during the rest of the course. The key requirements for low-power systems - both when powered from batteries or from energy harvesting systems - will be described.
April 23 - Day 4: Building a Solution Using an ARM Controller
Continuing Education Center 4/23/2015 425 comments As IoT/IIoT nodes become more scalable (numerous), they will also need to become more autonomous. In this and the next class we will look at a possible solution via a representative “low-end” ARM microcontroller, using the Freescale K64 ARM Cortex M4 controller on an inexpensive FRDM-K64 board and Oracle Java ME to directly interface to a cloud application and data store.
April 22 - Day 3: Solutions for Cloud Storage in the IoT
Continuing Education Center 4/22/2015 459 comments After the Day 2 class, where we investigate procedures for interfacing with cloud services and storage solutions, we will look at methods in current use to interface IoT/IIoT networks to cloud computing and storage. We will also look at tools for developing and monitoring cloud applications, using Google as an example.
April 21 - Day 2: Introduction to Cloud Computing
Continuing Education Center 4/21/2015 544 comments This class will cover a brief history of the cloud, identify the major providers of cloud services, and examine the needs for interfacing to these services. We will compare high-level services such as Google Drive and Dropbox with the basic toolbox of services from Google Cloud Services, Amazon, and others.
April 20 - Day 1: Internet of Things Overview and Requirements
Continuing Education Center 4/20/2015 611 comments In this class we will take a look at the definition and structure of the Internet of Things and the Industrial Internet of Things, review some competing protocols that are being used, and identify some of the data storage and analysis needs of the IoT and IIoT.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.