EENG 348/CPSC 338: Digital Systems
Yale University



 Prep for midterm

 Background Info

 Assembly language programming

  • AVR-specific information
    • Datasheet for the ATmega328P, the micocontroller used by the Arduino Uno board. Page 429 has a summary of the instruction set.
    • AVR ISA manual, which contains a detailed description of each instruction, its encoding, and how it works.
    • Arduino Uno schematic, showing how the Atmel AVR chip is wired up on the Uno board.
  • On Holy Wars and a Plea for Peace by Danny Cohen (1980). This is the Internet Engineering Task Force (IETF) note that coined the phrase "Endianness."
  • For those looking for additional/supplemental reading material on assembly language programming: "Computer Organization and Design: The Hardware/Software Interface" by David Patterson and John Hennessy (Morgan-Kaufmann) has a good introduction. The chapter of interest is Chapter 2 (or 3, depends on the edition) called "Instructions: Language of the Machine". (Dave Patterson's group developed what became the SPARC ISA, and more recently also helped develop the RISC-V ISA. John Hennessy's group developed the MIPS ISA.)

 Component datasheets

  • Breadboard: if you are not familiar with a breadboard, there is a nice tutorial on sparkfun's web site.
  • Jumper wires (75): These are just wires to be used to build a circuit.
  • 5x7 LED matrix.
    • On the component I tested, pin 1 can be identified as follows:
      • Orient the component so that the markings on the side of the display are on the right hand side with the pins facing away.
      • In this orientation, pin 1 is the top left pin.
    • The terminals of a diode are called an anode and a cathode; the anode of the device is where the higher (more positive) voltage is to be applied relative to the cathode if you want current to flow through the diode.
  • Photo cells
  • Shift register (2)
  • Push button (2)
  • Rotary encoder
  • Ultrasonic sensor
  • Resistors: 330 Ohm (10), 10 KOhm (2). Resistor values can be read off the color coded bands on the resistor

 Case Studies and Reading
It is extremely important that embedded software be correct, robust, and take its embedded context into account. Below are some real-world scenarios that illustrate the consequences of mistakes in the design of embedded systems and software.

  • Parliamentary elections:
       Debora Weber-Wulff. Rounding error changes Parliament makeup. The Risks Digest, Vol. 13, Issue 37, April 1992.
  • Science missions:
       Mars Climate Orbiter Mishap Investigation Board Phase 1 Report, November 1999.
  • National defense:
       General Accounting Office report on a patriot missile mishap, February 1992.
  • Medical instrumentation:
       Nancy G. Leveson and Clark Turner. An investigation of the Therac-25 accidents. IEEE Computer, 1993 (pdf)
  • Satellite launches:
       Ariane 5 Flight 501 failure. Report by the Inquiry Board, 1996.
The two main professional organizations related to what we're covering this semester are the IEEE and ACM. Both have a code of ethics.