August 2 - Day 5: Assembly vs 'C' Fight Club
Continuing Education Center 8/2/2013 422 comments We will have some fun looking at different MCU functions and you will get to vote for the winner: ‘C’ or Assembly. In some cases both ‘C’ and Assembly could win. How can that be? It all depends on the design goals. Tune in live to cast your vote!
August 1 - Day 4: 'C' for MCUs
Continuing Education Center 8/1/2013 373 comments C can be a very efficient language with which to program MCUs. This class will show how typical compilers map ‘C’ programs into a target-MCU's hardware. A few common “optimization” techniques will be described that illustrate how code can be transformed, sometimes with surprising consequences.
July 31 - Day 3: Assembly Language for MCUs
Continuing Education Center 7/31/2013 376 comments Now that the target MCU hardware and execution processes are understood, a detailed look at Assembly language is needed. This class will dig into the details of Assembly as a software development vehicle. Several simple examples will show the advantages and disadvantages of using Assembly language for programming MCUs.
July 30 - Day 2: An MCU as a Software Target
Continuing Education Center 7/30/2013 436 comments Once the fundamental building blocks of the MCU are understood, the way in which a program is processed by the MCU can be considered. This class will cover CPU-related concepts such as pipelining, caches, instruction efficiency, and floating point implementation so various MCU architectures can be more easily compared.
July 29 - Day 1: An Introduction to MCU Architecture
Continuing Education Center 7/29/2013 498 comments MCUs provide an impressive set of hardware features over which the designer "pours" the software design. This class will provide an understanding of the key hardware elements inside the processing block of the MCU so we can better understand how a software description is converted into MCU operations.
July 19 - Day 5: Signaling, Inter-Task Communications and Debugging
Continuing Education Center 7/19/2013 254 comments In this class, we’ll show some of the mechanisms provided by a kernel to allow ISRs and Tasks to signal and send messages to other tasks. Debugging with a kernel can be challenging and we’ll briefly describe techniques and tools you can use to visualize your application. This session will end with a brief summary of what we’ve covered.
July 18 - Day 4: Time and Resource Management
Continuing Education Center 7/18/2013 251 comments Most kernels require the presence of a periodic time source called a ‘Clock Tick’. We’ll look at what this is used for and whether it’s mandatory. We’ll also look at the mechanisms provided by a kernel that provide mutual exclusion to shared resources.
July 16 - Day 2: Task Management
Continuing Education Center 7/16/2013 368 comments This class will explain one of the most important aspects of a real-time kernel: task (or thread) management. Here you will learn what a task is and how a real-time kernel knows about how you want it to manage your tasks.
July 15 - Day 1: What is a Real-Time Kernel?
Continuing Education Center 7/15/2013 409 comments A real-time kernel is software that allows you to better manage the allocation of resources available in most of today’s 8-, 16-, 32- and 64-bit processor-based embedded systems. This first class will explain the differences between a "Super Loop" and a real-time kernel.
June 28 - Day 5: Monitor & Control the Basic4android Way
Continuing Education Center 6/28/2013 223 comments Today, we will assemble a Basic4android application that will allow our Samsung tablet to control and monitor our remote TCP/IP-based hardware. Just when you thought it was safe to go back into the water, we’ll revisit Bluetooth from a different perspective.
June 27 - Day 4: Network Firmware the Basic4android Way
Continuing Education Center 6/27/2013 250 comments Yesterday, we mapped out our network paths and performed some preflight checks on our selected network hardware. Today, we will throttle up the firmware and hardware to 100% and flight-test the network. We will also take a look at what needs to be done on the Basic4android side to support our mission tomorrow.
June 26 - Day 3: Network Hardware the Basic4android Way
Continuing Education Center 6/26/2013 258 comments Before the week is up, we are going to write some Basic4android code that will take advantage of an Android device’s ability to communicate via the Internet. So, it might be a good idea to round up some appropriate network hardware. Here we’ll examine the networking devices and lay down plans to put them on the Internet.
June 25 - Day 2: Bluetooth the Basic4android Way
Continuing Education Center 6/25/2013 286 comments In this session, we will explore the Bluetooth capabilities of Basic4android. We will write Basic4android application code to administrate the Bluetooth adapter. Our Basic4android application will allow us to enable the Bluetooth adapter, disable the Bluetooth adapter, monitor the Bluetooth adapter’s state, and discover devices in range.
June 24 - Day 1: ‘Hello World’ the Basic4android Way
Continuing Education Center 6/24/2013 443 comments This class will revolve around the installation of the Basic4android environment and the creation of our very first Basic4android application. It won’t take long to see that Basic4android can be used to painlessly realize industrial-grade Android applications. Our first Android application will prove to be a bit more useful than displaying “Hello World.” We are going to dive right in and write some Basic4android code to communicate with an FTDI FT311D USB Android Host IC.
June 14 – Day 5: Programmable Devices With a New Twist
Continuing Education Center 6/14/2013 188 comments A few devices strike out from the familiar programmable logic territory in the search for the "next big programmable thing" (NBPT). This class will cover some of these new devices and concepts. Put on your life vest because this is white-water rapids country!
June 13 – Day 4: Fixed-Function MCUs With Programmable Fabric
Continuing Education Center 6/13/2013 199 comments Adding fixed functions to programmable logic devices is not new, but the most recent crop of devices with fixed-function MCUs is now addressing more targeted applications. As higher-level software functions and even real-time operating systems (RTOSs) can be easily included, the device reach is extending to specific, targeted applications. This class examines the types of features included and the types of applications these devices are now targeting.
June 12 – Day 3: Programmable Analog, Part 2 & Timing
Continuing Education Center 6/12/2013 230 comments Programmable analog functions are continued in this class along with some of the devices used for programmable timing and clock generation. This class will provide a detailed description of several of these types of devices and will show specific examples of their use.
June 11 – Day 2: Programmable Analog, Part 1
Continuing Education Center 6/11/2013 242 comments One of the first classes of application-specific programmable logic devices combined analog circuits with digital programmable logic. These devices address the increasingly complex area of power management and similar applications. This class will provide a detailed description of several of these types of devices and will show specific examples of their use.
May 24 – Day 5: Remote & Cloud Services, Directions & Products
Continuing Education Center 5/24/2013 171 comments We will look at cloud-based services and monitoring stations that customize automation, control, security, and energy management. Distant signaling techniques all have advantages and disadvantages, and these will be examined for POTS phone lines, smartphones, and Internet cloud-based monitoring and control. Again, architecture is key, and options such as direct control vs. procedural control will be looked at. We will take a look at cloud servers and reflectors that are available.
May 23 – Day 4: Detailed Look at Wireless Technology for Automation & Control
Continuing Education Center 5/23/2013 209 comments Wireless technology is, for the first time, cost-effectively tackling some of the tough issues that have always hindered the widespread deployment of effective automation technologies. We will look at some of the emerging wireless protocols and technologies that the ISM bands make feasible for low-cost use. Advantages, as well as disadvantages and vulnerabilities, will be discussed, along with cost issues and security, especially for life-critical services.
May 22 – Day 3: Architectures & Topologies for Automation & Control
Continuing Education Center 5/22/2013 197 comments We will take a more detailed look at architectural tradeoffs between central control and distributed control. The ability to manage all traffic, all conditions, and respond in a reasonable timeframe will be examined as well as functionality that may exist when a control point is not functioning. The ability of a distributed control network to share information concurrently for higher-level decisions will be looked at.
May 21 – Day 2: Architecture Overviews
Continuing Education Center 5/21/2013 205 comments We will discuss challenges that any technological solutions face. First and foremost is cost. If any technology is too expensive, it will not catch on, even if there is eventual payback and cost advantages. Other challenges include the ability to have a unified approach that addresses both new construction and existing buildings and structures. We will also look at how automation technology reacts in emergency situations.
May 20 – Day 1: Reasons, Benefits, Advantages & Disadvantages of Automation Technology
Continuing Education Center 5/20/2013 267 comments We will begin with an introduction to home/building automation: what is it, why do we need it, how does it work, and so on. We will discuss how any solution must be cost effective and even able to provide a payback. We will also discuss how automation technology can enhance safety, security, comfort, energy efficiency, and remote monitoring and control.
May 10 - DAY 5: Medical Data Storage
Continuing Education Center 5/10/2013 237 comments With the sensitivities of medical data storage and retrieval by unauthorized persons, regulations such as the US HIPAA (Health Insurance Portability and Accountability Act) require data encryption and retrieval controls. We will look at repositories such as Health Vault and some of the issues that may affect embedded systems developers and how these may be approached.
May 8 - DAY 3: Medical Device Communications, Part 1
Continuing Education Center 5/8/2013 194 comments Much is being said about the need for communications between medical instrumentation and the patient/consumer, as well as to caregivers. We will look at some of the major communication protocols and their implementation.
April 19 – DAY 5: Energy Conversion and Management Silicon
Continuing Education Center 4/19/2013 180 comments This discussion presents various commercial devices and circuit topologies used for energy conversion and storage. We will review various silicon integrated circuit components and present some interesting commercial energy harvesting kits that students may wish to explore
April 18 – DAY 4: Energy Storage Devices
Continuing Education Center 4/18/2013 248 comments This discussion will focus on energy storage devices with emphasis on batteries, battery applications, and battery technologies. Super capacitor and large capacitor energy storage devices will be included in the lesson.
April 17 – DAY 3: Energy Generation Discussion 2
Continuing Education Center 4/17/2013 239 comments This discussion will continue our talk about energy generation devices as applied to piezoelectric, thermal, and chemical energy harvesting devices. The instructor will present various devices and review their energy production methods.
April 16 – DAY 2: Energy Generation Discussion 1
Continuing Education Center 4/16/2013 253 comments This discussion will review concepts of energy generation as applied to photoelectric, magnetic inductive, and radiated energy harvesting devices. The instructor will present various devices and review their energy production methods.
April 15 – DAY 1: Energy Review
Continuing Education Center 4/15/2013 312 comments This discussion presents a short review of energy – how it's measured and applied in low-power electronic devices. We'll discuss the promise of "free" and "inexhaustible" energy, battery-life extension, and introduce various energy generation technologies.
Apr 05 - Day 5: Universal Verification Methodology (UVM)
Continuing Education Center 4/5/2013 241 comments Because of the complexity of creating verification environment and the common elements that many of them require, a class library has been created to help jump-start a verification project. This provides a high-level overview of its structure and capabilities.
Apr 04 - Day 4: SystemVerilog
Continuing Education Center 4/4/2013 221 comments SystemVerilog is becoming a very common language for functional verification. In this segment I will provide a high-level overview of the language and its capabilities.
Apr 03 - Day 3: Verification Methodologies
Continuing Education Center 4/3/2013 273 comments There is no single right way to perform verification. It is often described as an art rather than a science. In this section we will examine the most commonly used methodologies and the ways in which progress can be measured.
Apr 02 - Day 2: Models & Model Execution
Continuing Education Center 4/2/2013 286 comments Verification is performed on models of the intended design, but those models can be at many different levels of abstraction and use different software or hardware to execute them. We will look at the major ones in use today and where they are best utilized in a design flow.
Apr 01 - Day 1: Fundamental Concepts
Continuing Education Center 4/1/2013 311 comments The functional verification of electronic systems consumes in excess of 50 percent of the time and resources for most complex chip designs, which certainly leaks into system design. On the first day, we'll define the scope for the course and examine many of the fundamental concepts, terms, and methodologies that will be expanded upon later. Whether you are designing an IC or a system, these concepts will come in handy.
March 22 - Day FIVE: Developing Low-Cost, Low-Power, Small Vision Systems
Continuing Education Center 3/22/2013 210 comments We’ll present a detailed case study of the development of a smart, automotive, rear-view camera system incorporating vision-based object detection and distance estimation. We’ll discuss the challenges associated with creating an embedded vision system that meets very demanding cost, size, power, and performance requirements. We’ll present the lessons learned during algorithm, software, and system development, and how those lessons apply to other embedded vision applications.
March 21 - Day FOUR: When to Use FPGAs to Accelerate Embedded Vision Applications
Continuing Education Center 3/21/2013 189 comments FPGAs can accelerate some image processing algorithms, while reducing latency and jitter compared to using CPUs. We’ll compare CPUs and FPGAs as embedded vision processing engines, exploring which types of vision algorithms and applications can benefit from implementation on an FPGA, and which are better suited for a CPU or other type of processor. We’ll share benchmark results comparing FPGA and CPU implementations of vision applications, and introduce high-level programming of FPGAs.
March 19 - Day TWO: Interfacing to and Processing Data From Image Sensors
Continuing Education Center 3/19/2013 217 comments Image sensors use varied hardware interfaces and output data formats, which can complicate system design and make it difficult to switch sensors. Their high output rate can overwhelm data connections and processors. Programmable logic devices can solve both problems: Their flexibility can comprehend normally incompatible interfaces, and they can accelerate common functions like color space conversion, image resizing, frame rate transformation, aspect ratio alteration, and edge detection.
March 18 - Day ONE: What Can You Do With Embedded Vision?
Continuing Education Center 3/18/2013 288 comments Embedded vision is the incorporation of computer vision techniques into embedded systems, mobile devices, PCs, and the cloud. In this session, we’ll look at some of the coolest new applications of embedded vision, such as systems that read a person’s emotional state from facial images and systems that help prevent driving accidents by monitoring the road. We’ll touch on the algorithms that enable these capabilities and the types of processors used to run those algorithms.
March 7 - Day 4: Choosing the Right Storage Media
Continuing Education Center 3/7/2013 207 comments There are more new types of storage media offered every year, and making the right choice for your application is becoming more complex. In this class, you will discover the strengths and weaknesses of different technologies. We will cover the basics of different storage media types, including SD, e-MMC, NAND, NOR, PCM, and USB Mass Storage devices.
March 5 - Day 2: Understanding How the File Allocation Table (FAT) Operates
Continuing Education Center 3/5/2013 233 comments The FAT file system has become the de facto standard for data exchange between systems. It is ubiquitous on USB drives, memory cards, and other portable devices because of its wide compatibility with operating systems for personal computers. In this class, we will discuss how this industry standard works and consider its strengths and limitations.
March 4 - Day 1: Introduction to File Systems
Continuing Education Center 3/4/2013 353 comments In this introductory session, we will review some historical and theoretical information on file systems. We will also discuss the different definitions and types of file systems in order to provide a broader view of the field.
Are they robots or androids? We're not exactly sure. Each talking, gesturing Geminoid looks exactly like a real individual, starting with their creator, professor Hiroshi Ishiguro of Osaka University in Japan.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This discussion will examine what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.