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 711 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 544 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 612 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 822 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.
December 16 – Day 2: Web Application Security: Injection
Continuing Education Center 12/16/2014 330 comments Probably the best known and among the most dangerous of exploits, injection vulnerabilities can result in information disclosure, tampering, denial of service, and elevation of privilege. This session will mostly focus on SQL injection but will address others forms of injection including NOSQL database injection and OS command injection.
December 5 – Day 5: Software Architecture of a UAV
Continuing Education Center 12/5/2014 449 comments This session will summarize and review everything that was discussed in previous sessions by examining the software architecture of a UAV. These fascinating flying systems have a lot going on and wouldn’t be scalable and reusable if it weren’t for the proper design and selection of the right software architecture.
December 4 – Day 4: From Architecture to Implementation
Continuing Education Center 12/4/2014 462 comments Getting the right architecture is important but putting that architecture into practice is just as critical. This session will walk through how to take an architecture and move it into the design and implementation phases. Tips and tricks will be provided on how to make the transition with the result being an elegant and robust software system.
December 3 – Day 3: Understanding Embedded Software Architectures
Continuing Education Center 12/3/2014 492 comments This session will explore real-world considerations when designing an embedded software architecture. Real world examples will be given and comparisons made between different architecture types that solve a problem but may or may not be the correct architecture of choice. Examples include polling, interrupts and event driven systems.
December 2 – Day 2: Software Architecture using UML
Continuing Education Center 12/2/2014 573 comments A number of techniques have been developed over the years to assist engineers in designing an architecture that meets their system requirements. One tool that has been extremely popular is the use of UML. This session will explore the use of UML to design an embedded software architecture. The UML toolset will be explored such as the use of sequence diagrams, state machines, state charts and more!
December 1 – Day 1: Introduction to Embedded Software Architecture
Continuing Education Center 12/1/2014 624 comments This session will introduce what an embedded software architecture is and what it is not. It will provide an overview of some basic software architectures used in real-time embedded software development. Attendees will walk away with the knowledge of why designing a software architecture up front is critical to successfully develop a product in addition to the basic steps to go about identifying the architecture that should be used.
November 21 – Day 5: Analog Design for the Digital World: Design and Test
Continuing Education Center 11/21/2014 490 comments For our final day we will wrap up by looking at the challenges of designing as well as testing analog circuits, particularly in mixed signal design. We will look at analog design and simulation tools including SPICE (around since the mid-70’s!), test methods including probe loading considerations and other topics.
November 20 – Day 4: Analog Design for the Digital World: A/D and D/A
Continuing Education Center 11/20/2014 499 comments As much as we want to keep our analog and digital circuits separated, we still need them to talk to one another. In this class, we will look at the different types of analog to digital (A/D or ADC) and digital to analog (D/A or DAC) converters and some of the tradeoffs as well as design criteria.
November 14 – Day 5: An Example Implementation in Detail
Continuing Education Center 11/14/2014 292 comments This class will pull together information from all the previous classes and illustrate the described techniques using a detailed example design. Several techniques outlined in the previous classes will be used to protect the example design from tampering, reverse engineering, copying and from network-based attacks on security keys and boot blocks, which are two of the most common and most aggressive forms of remote attacks.
November 13 – Day 4: Protecting Your System in the Field
Continuing Education Center 11/13/2014 342 comments Once your hardware is deployed it’s a target, either directly by “invasive” probing of the actual board or via network based attacks. Protecting your hardware from these threats requires additional levels of protection and more complex algorithms and techniques. Luckily manufacturers provide simplifying features and capabilities that can be used to protect field deployed systems.
November 12 – Day 3: Secure Devices - An Overview
Continuing Education Center 11/12/2014 367 comments This class will review several of the current devices that include security capabilities that can be used to protect your design from hacking and theft. Some MCUs, FPGAs and CPUs now include key security features that can be used to protect your design. Additionally, specialized peripherals, memories and accelerators are also available for adding protection. Examples of all of these devices will be described.
November 11 – Day 2: How do you Implement Secure Hardware?
Continuing Education Center 11/11/2014 340 comments This class will cover the key techniques used by modern devices to protect design IP from the most common threats. Starting with simple approaches to tamper protection, and then moving on to protection from copying and cloning, this class will begin to introduce key devices and features needed to successfully protect your design.
November 10 – Day 1: Stealing and Hacking Your Design is Easier than You Think
Continuing Education Center 11/10/2014 307 comments This class will review key concepts from the December 2013 class and lay the groundwork for describing the implementation details you need to be able to select, program and design with devices you can use to protect your valuable IP. Protection from reverse engineering, copying, cloning, hacking and tampering will be the focus of the course.
November 5 – Day 3: Advanced User Interface Technologies: Streaming Signal Interfaces
Continuing Education Center 11/5/2014 361 comments Real time acquisition and processing of data opens the door to usable speech technology as well as camera based 3-D gesture detection. Speech can be speaker dependent (as in security applications), or speaker independent as in general command interfacing. 3-D gestures can direct operations, especially in the next generation of wearable computers.
November 3 – Day 1: Introduction to Advanced User Interface Technologies
Continuing Education Center 11/3/2014 356 comments Join this discussion on modern electronic input interfaces in analog and digital realms, including digital open state conditioning (pull-ups and pull-downs), matrix and multiplexing, scanning technologies, linear joystick, mouse, and an overview of touch. We will also touch on modern high volume display and indicator technologies.
October 22 – Day 3: Embedded TCP/IP Concepts
Continuing Education Center 10/22/2014 511 comments Today’s lecture will cover basic TCP/IP concepts. We will also examine some common protocols that are used on LANs and the Internet. The TCP/IP concepts presented will be supported by actual Wireshark protocol analyzer captures.
October 20 - Day 1: Design & Build a 32-bit Embedded Web Server
Continuing Education Center 10/20/2014 656 comments Dive in by designing and scratch-building a 32-bit microcontroller-based web server. This Ethernet-based web server uses the LAN8720 PHY IC in the physical layer design. Along the way, we will put together just enough supporting firmware to bring our web server online.
Researchers working with additive manufacturing have said multimaterial techniques will allow industry “to fabricate materials with combinations of density, strength, and thermal expansion that do not exist [yet].”
The term "multiphysics" is used to describe the simulation of multiple types of physics and their influence on one another -- for example, the investigation of the behavior of a chemical in liquid form will involve both chemistry and fluid dynamics.
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.