training:embedded_systems

Most of the projects in this lab include embedded systems and microprocessors, so this article will serve as your introduction to these components. You will most likely be working with embedded systems and microprocessors, so it is imperative that you get comfortable with these concepts.

An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. A lot of the time, embedded systems are only designed to do specific tasks. They're not as robust as, say, a home PC. Because of this, the advantages of designing an embedded system is it's reduced size, low production cost, and improved performance. If you are doing a weatherbox project, you are most likely tasked with designing an embedded system from scratch; complete with sensors, circuitry, and a microprocessor/microcontroller. As you design your system, remember that your goal is to make it as small, cheap, and efficient as possible. If you need more information on embedded systems, this wikipedia article is a good resource to start with.

A microcontroller is a small computer on a single integrated circuit. In modern terminology, it is a system on a chip or SoC. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Program memory in the form of Ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips. microprocessor wikipedia page.

Whether it be sensors or a transceiver, modules that you implement onto your board will have to communicate with each other. Communication protocols are used to format and dictate how these modules communicate with each other. Different protocols have different pros and cons. A deep understanding of all the different protocols isn't necessary for what we do in the lab, but a basic understanding of some of them will benefit you and your project. The ones the lab uses most are I2C, UART, and SPI. Please review this table. If you desire further information on any of these protocols, the embedded link on the name of the protocol will lead you to more details.

Communication Protocol Description
Universal Asynchronous Receiver/Transmitter (UART) Allows a microcontroller to communicate asynchronously(without CLK support) with a device. Uses only two data lines (Tx/Rx) for communication.
Serial Peripheral Interface (SPI) Allows microcontroller to communicate synchronously(with CLK). Usually has four lines: Master In Slave out (MISO), Master out Slave in (MOSI), CLK, and an enable pin.
Inter-integrated Circuit (I2C) A complex compromise between UART and SPI. Uses two lines: SDA and SCL.

You should ask yourself these questions to determine whether or not you properly understand the material on this page:

  1. What is an embedded system?
  2. What is a microcontroller?
  3. SPI, UART, I2C
    1. What do they stand for?
    2. What are they?
    3. What are they useful for?
    4. How are they all related?
  4. How do you think this information will relate to this lab?

Next Steps

Authors

Contributing authors:

aobatake klauritzen kluong

Created by kluong on 2016/02/01 20:06.

  • training/embedded_systems.txt
  • Last modified: 2021/09/19 21:59
  • (external edit)