May 22 - Day 5: Low-Power Design Techniques
Continuing Education Center 5/22/2015 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 4 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.
April 10 - Day 5: Engineering Systems for Emergency Preparedness: Long-Term Concerns and Other Issues
Continuing Education Center 4/10/2015 312 comments It may not be ideal or comfortable by any means, but surviving a week is doable. But what about longer term situations? You will need systems for growing food, animal care, as well as efficient-energy systems. Designing systems that can help automate many of these extended survival requirements is not difficult, but they need to be intelligent to be useful in the long term. In a long-term disaster, survival favors the prepared and well engineered.
April 9 - Day 4: Engineering Systems for Emergency Preparedness: Systems and Services
Continuing Education Center 4/9/2015 381 comments Preparations need to sustain basic life-support systems and services even for short durations. Such systems we will discuss include those for energy, water, air, light, heat, cooling and refrigeration, medical, communications, filtration, and tools. These systems must not be wasteful. Design of smart environments means low-energy conditions and automated systems to restrict water, turn off unnecessary systems and communicate with each other.
April 8 - Day 3: Engineering Systems for Emergency Preparedness: Supplies and Storage
Continuing Education Center 4/8/2015 348 comments What we store and how long we need to store it are critical. Some supplies will come naturally in certain regions, and we can depend on them -- like rain and snow supplying water. We need foods that won’t spoil in storage. Short-term supplies are not a problem, but long term we will need other solutions. Our systems must be designed to operate in many modes, including multi-fuel engines, wide-range, efficient and flexible power regulators, protection circuitry, redundancy and fault tolerance.
April 7 - Day 2: Engineering Systems for Emergency Preparedness: Regional Differences
Continuing Education Center 4/7/2015 322 comments Where we live affects what we need to survive. It also can determine the types of disasters that we are prone to and the types of structures, supplies and equipment needed to protect ourselves. These are also affected by population densities. Inhabitants of cities have different concerns compared to rural dwellers. Designing a system to meet these challenges means extended temperature ranges, robust electromechanical systems and serviceability.
April 6 - Day 1: Engineering Systems for Emergency Preparedness: Living Things
Continuing Education Center 4/6/2015 332 comments In most cases we will need to have survival systems for a few necessities. Having an independent air supply may not be needed, but having a fresh and clean supply of water may. On Day 1 we will examine what is required to sustain life short and long term and how these systems should be engineered. These overview examples will be covered in more detail in successive days. We will also analyze past disasters for valuable lessons.
April 3 - Day 5: PSoC BLE Part 2
Continuing Education Center 4/3/2015 411 comments This final session is a continuation of the PSoC BLE CapSense proximity sensor project. In this last class, you will walk away with the knowledge of how to connect the integrated circuit with the CySmart PC tool using the CapSense proximity sensor discussed in the Day 4 class. Lastly, the Make PSoC BLE challenge will be presented, as well.
April 2 - Day 4: PSoC BLE Part 1
Continuing Education Center 4/2/2015 423 comments The ability to improve process and product performance using wireless techniques is a driving force of product innovation today. Cypress Semiconductor’s PSCoC BLE -- for Bluetooth Low Energy -- is a development platform that provides such innovation for engineers working in the consumer and industrial markets. In this session, PSoC BLE will be introduced via the PSoC BLE Pioneer Kit. The highlight of this session will be a PSoC BLE CapSense proximity sensor project.
April 1 - Day 3: PSoC and Physical Computing
Continuing Education Center 4/1/2015 494 comments The PSoC is capable of being used in a multitude of applications and products. One design technique that allows PSoC to be interactive within its environment is known as physical computing. Definitions of physical computing and examples will be examined in this session. We will also show you how to build a touch interface using Cypress Semiconductor’s CapSense technology.
March 31 - Day 2: Getting Started with PSoC
Continuing Education Center 3/31/2015 524 comments This session will include a discussion on how to start using PSoC for electronics project prototyping. Definitions of key terms used in the development of PSoC projects will be explained along with the differences between the PSoC Designer and PSoC Creator development tools. In this class, we will look at a hands-on project of controlling a LED with PWM (pulse-width modulation) using a PSoC.
March 30 - Day 1: The World of PSoC
Continuing Education Center 3/30/2015 594 comments The Programmable System-on-Chip is a user-friendly rapid development platform used by engineers (and educators and Makers) to design products for the consumer and industrial markets. An overview of the PSoC’s architecture will be explained, along with a presentation of the examples illustrating the use of this Programmable System-on-Chip component.
March 13 - Day 5: Development Kits and Reference Designs
Continuing Education Center 3/13/2015 579 comments MCU and FPGA manufacturers often provide complete reference designs to help accelerate motor control implementations; some kits even provide example motors. This class wraps up the course by demonstrating some development kits and reference designs that might be appropriate for your next design.
March 12 - Day 4: Software Tools
Continuing Education Center 3/12/2015 685 comments Once the hardware features are understood, it is useful to see what software tools and techniques are available to simplify the development of common motor control algorithms. This class provides an overview of some of the common tools through some typical application examples.
March 11 - Day 3: Device Features and Functions
Continuing Education Center 3/11/2015 668 comments Motor control algorithms have some common functions and peripherals that are key elements in any motor control implementation. This class provides an overview of several of the most common and useful MCU and FPGA features that enable motor control implementations, presenting some common application examples.
March 10 - Day 2: Motor Control Algorithms
Continuing Education Center 3/10/2015 779 comments Motor control algorithms have evolved over the last several years to take advantage of the increased processing power and features available on modern MCUs and FPGAs. This class provides a short history of motor control algorithms, showing how key MCU and FPGA capabilities have enabled new, more efficient algorithms.
March 9 - Day 1: An Introduction to Motor Control
Continuing Education Center 3/9/2015 773 comments Motor control is a pervasive application for MCUs and a growing application area for FPGAs and thus has significantly influenced the evolution of these devices. This introductory class provides a quick overview of the markets, devices, key features and development environment available for modern MCU devices.
February 27 - Day 5: Writing Portable Code
Continuing Education Center 2/27/2015 601 comments One technique to minimize project costs and time to market is to leverage a reusable code base. A code base usually isn’t developed overnight and requires careful thought and consideration in order to maximize the benefit. This session will cover how to develop a reusable code base starting with the design of APIs. An example will be provided on how to create a portable EEPROM chip driver that pulls together concepts and source from the GPIO and SPI drivers in earlier sessions.
February 26 - Day 4: Design Patterns for Firmware
Continuing Education Center 2/26/2015 628 comments This session will demonstrate common design patterns that are used to develop embedded software. A continuation of driver design concepts will be presented to include a discussion on blocking vs non-blocking drivers with a reusable SPI driver example. There will also be a look at data handling techniques such as circular buffer implementation, leaving the attendee with functional, reusable code that can be used in their next design project.
February 25 - Day 3: Driver Design Techniques
Continuing Education Center 2/25/2015 668 comments This session will walk attendees through three different methods for developing drivers. The methods will start with the simplest and least reusable through an advanced technique that is easily portable to multiple systems. Attendees will walk away with an understanding of how to use bit manipulation, structures and unions in driver design, in addition to portable driver design concepts and example driver source.
February 24 - Day 2: Baremetal Scheduling Techniques
Continuing Education Center 2/24/2015 710 comments It isn’t uncommon for developers to default to a real-time operating system (RTOS) when developing an embedded system. As it turns out there are a number of scheduling techniques that can be used to achieve real-time performance before an RTOS is even necessary. This session will explore baremetal scheduling techniques, RMA theory and analysis while peering into the time domain of the microcontroller. Attendees will be equipped with an expert understanding of scheduling techniques.
February 23 - Day 1: C Concepts for Embedded Systems
Continuing Education Center 2/23/2015 938 comments This session will review important concepts every developer needs to understand when developing an embedded system using C. These concepts will form the foundation for topics the rest of the week. These concepts will include a look at scope, proper register access techniques, understanding complex declarations, function pointers, memory allocation, interrupts and assertions to name a few. Attendees will walk away with an understanding of the fundamentals of C and some advanced concepts too.
February 13 - Day 5: Coding Smart Module Device Drivers with the CCS C Compiler
Continuing Education Center 2/13/2015 382 comments The CCS C Compiler has a wealth of built-in serial EEPROM, serial SRAM, real time clock and digital potentiometer IC drivers, enabling creation of unique device drivers for AM/FM data radio modules, WiFi modules, Bluetooth modules, sensor modules, digital control modules and LCD panels. The CCS C Compiler also can code an interface between the smart module and a PC application. This lecture will demonstrate how driver coding can be done quickly.
February 12 - Day 4: Bluetooth on Your Phone Courtesy of the CCS C Compiler
Continuing Education Center 2/12/2015 376 comments Bluetooth Low Energy technology is bringing phone-based sensor monitor and control applications to the forefront. Putting together the embedded hardware and sensor firmware is the relatively easy part. Placing those pretty widgets on the phone’s LCD and communicating with them can be tricky. This lecture will show you how the CCS C Compiler simplifies embedded BLE programming on the PIC as well as the phone.
February 11 - Day 3: The Internet of Things According to CCS C
Continuing Education Center 2/11/2015 440 comments TCP clients and servers have become the “thing” in the embedded world. The Microchip PIC microcontrollers have the necessary hardware attributes to participate in this new “world” and the CCS C Compiler has the firmware tools to support them. After today’s lecture, you will be able to use the CCS C Compiler to fling bits around on LANs, WANs and the internet.
February 10 - Day 2: Embedded USB Tasks with CCS C
Continuing Education Center 2/10/2015 446 comments When it comes to embedded USB with a PIC microcontroller, you namethe task and the CCS C Compiler can probably do it. Today, with the help of the CCS C Compiler, we will breathe life into USB-enabled PIC devices. We will use the CCS C Compiler to create a USB bootloader, a USB HID class device, a USB CDC device and a USB-to-serial converter device.
January 29 - Day 4: IPv6 for Micros: Project Phase II – Simple Web Server
Continuing Education Center 1/29/2015 499 comments One common function of M2M or IoT nodes is to use HTTP to communicate via simple web pages. This allows a sensor (and perhaps control) node to interface with a human via a web browser as well as with other machine nodes. We will design and build a simple web server on our target board to monitor a single input variable.
January 27 - Day 2: IPv6 for Micros: Setting up the Development Environment
Continuing Education Center 1/27/2015 522 comments Our “hands-on” environment for this class will consist of the inexpensive Freescale FRDM-K64F development board, the Kinetis Development System IDE (downloadable free from Freescale), and the FNET open source IPv.6 stack that is downloadable from Sourceforge.net. We will look at the setup needed to develop our defined project, as well as some tools we will need, such as Wireshark.
January 26 - Day 1: IPv6 for Micros: IPv.6 Review and Defining Our Project
Continuing Education Center 1/26/2015 581 comments A review ofIPv.6 and its major differences from IPv.4, including some of the challenges of implementing it on smaller microcontrollers. We will also look briefly at IPv.6’s role in the developing standards for the IoT and how we may wish to use our design to be a part of that network. We will then define our project and what we’ll accomplish for the week.
Programmable Logic - Software Tools
Continuing Education Center 1/16/2015 419 comments How do the software tools translate your design into the configuration bit streams needed to configure your programmable device? This class will provide an introduction to many of the key parts of the common tool flows and an understanding of how they interact with the hardware infrastructure described in the previous classes.
Programmable Logic - Adding Processors
Continuing Education Center 1/15/2015 524 comments An even higher level of specialized logic that is being added to many high-capacity programmable logic devices are complete MCU subsystems. These ‘hardened’ blocks have processors, memory and peripherals- all the elements needed for a complete processing subsystem and the programmable logic can be used for many custom features.
Programmable Logic - Specialized Functions
Continuing Education Center 1/14/2015 540 comments The general purpose nature of programmable logic switches and logic elements are very flexible, but inefficient for implementing common high-level building blocks for most digital sub-systems. Most programmable logic devices add some fixed function elements to avoid these inefficiencies and this class will describe the most common ones.
Programmable Logic - Switches and Logic
Continuing Education Center 1/13/2015 606 comments Once the underlying configuration technology is understood, it is important to understand how the logic elements and their associated switches are implemented. This class will give some examples showing how logic elements and switches can be used to create a general purpose programmable fabric used in most modern devices.
An Introduction to Programmable Logic
Continuing Education Center 1/12/2015 815 comments Programmable logic starts first with the technology used to implement the configurable logic that makes up a programmable logic device. This class will review the primary technology used to implement the configurable elements common to all programmable logic devices.
Samsung's Galaxy line of smartphones used to fare quite well in the repairability department, but last year's flagship S5 model took a tumble, scoring a meh-inducing 5/10. Will the newly redesigned S6 lead us back into star-studded territory, or will we sink further into the depths of a repairability black hole?
In 2003, the world contained just over 500 million Internet-connected devices. By 2010, this figure had risen to 12.5 billion connected objects, almost six devices per individual with access to the Internet. Now, as we move into 2015, the number of connected 'things' is expected to reach 25 billion, ultimately edging toward 50 billion by the end of the decade.
NASA engineer Brian Trease studied abroad in Japan as a high school student and used to fold fast-food wrappers into cranes using origami techniques he learned in library books. Inspired by this, he began to imagine that origami could be applied to building spacecraft components, particularly solar panels that could one day send solar power from space to be used on earth.
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.