Table of Contents

Advertisement

Quick Links

Advertisement

Table of Contents
loading

Summary of Contents for FIGnition FUZE

  • Page 1: Table Of Contents

    FUZE Hardware Ref Contents Introduction! 1 Overview! 1.1 System Circuit Diagram! 2. Keypad! 2.1 Circuit Diagram! 2.2 Operation! 2.2.1 Reading the switches.! 2.2.2 Ghost Keys! 2.2.3 Debouncing the Keypad! 2.2.4 Converting Single and Double Keypresses to Characters! 3 Video ! 3.1 Circuit Diagram!
  • Page 2 7.3.1 AVR Flash Memory Organization! 7.3.2 The Bootloader Key! 7.3.3 Realtime Requirements! 7.3.4 Chicken And Egg! 7.3.5 Licensing! 8. Microcontroller! 8.1 Circuit Diagram! 8.2 Operation! 8.2.1 How FIGnition Uses Pins! 8.2.2 AVR Block Diagram! 8.2.3 FIGnition's Firmware Overview! 9. Expanding FIGnition!
  • Page 3 9.1 Circuit Diagram! 9.2 Operation! 9.2.1 Controlling the LED! 9.2.2 Default I/O ! 9.2.3 Reading Analog Channel 5.! 9.2.4 I/O Trade-Off! 9.3 Using SPI to talk to an Arduino! 9.4 Using I2C to talk to a Maxim Digital To Analogue Converter.! 9.5 Using I2C to talk to a Microchip I/O Expander! 9.6 Using SPI to backup the external Flash.! Appendix A: Potential Dividers!
  • Page 4: Introduction

    Introduction FIGnition FUZE's hardware contains the essentials of a true computer: a keypad for typing programs and entering text; a power supply connector; it can output data to the user (via video and audio); it runs programs from RAM; it has built-in storage for when the computer is turned off;...
  • Page 5: Overview

    5. RAM. The external RAM chip is loaded with a program and the program runs from it. 6. USB. The connector is used to power a FIGnition and upgrade the firmware as FIGni- tion is improved.
  • Page 6: System Circuit Diagram

    1.1 System Circuit Diagram A circuit diagram for FIGnition represents a detailed, logical diagram of the computer, a schematic; showing all components and their connections to every signal. Every section of the FIGnition hardware reference starts with its part of the circuit diagram.
  • Page 7: Keypad

    2. Keypad The keypad uses 8 switches and 6 input ports on the AVR Microcontroller to implement a switch-matrix keypad. Using individual keys and combinations of two keys pressed one after the other a full set of letters, numbers and symbols can be typed. 2.1 Circuit Diagram Fig 2.1 The visible part of the circuit includes only the switches, but inside the microcontroller, the...
  • Page 8: Operation

    Fig 2.2a! Fig2.2b In the opposite way that a small resistor is like a wire causing a tiny voltage to drop across it; an open switch is like a nearly infinite resistor taking the place of R2; so R1 will pull a PortC input up to very nearly 5v [Fig 2.2a].
  • Page 9: Ghost Keys

    0. This time SW3 has no effect on PortC inputs, but SW5 does, meaning PortC3 to PortC0 will read 1110. KeyScan- In the FiGnition firmware, the basic switch reading is handled by the 'C' function in the manner described here. 2.2.2 Ghost Keys A switch-matrix keyboard can't read more than two keys at a time without getting con- fused.
  • Page 10: Debouncing The Keypad

    Fig 2.5 Normal computer keyboards suffer from the same problem. If I press any pair of keys (e.g. 'w' and 'n') then it will choose to display both and repeat one of them. However, if I press (e.g 'e', 'd' and 'u') on my laptop simultaneously then the laptop recognizes that there could be a ghost key and types nothing at all.
  • Page 11: Converting Single And Double Keypresses To Characters

    So, the job of a computer keyboard is to filter out all the key-bounce without missing any keys you intended to press. The way FIGnition does it is entirely in software. It reads the keypad 50 times per second and if it sees the same set of keys being pressed at least twice, it concludes that the key presses have settled down.
  • Page 12 A keypad state machine is actually (in FIGnition's case) just a byte variable (the state) that's used to select which piece of code is executed on every scan (the machine). A state machine is always one of several straight-line pieces of code that gets executed depend- ing on the current state: it reads some inputs;...
  • Page 13: Video

    3 Video Video support on FIGnition requires just 2 diodes, 2 resistors and a phono socket to pro- vide PAL or NTSC monochrome video. It uses the internal serial port to output pixels; a timer to generate TV synchronisation signals and another timer to manage the top and bot- tom margins without CPU intervention.
  • Page 14 Composite video doesn't need to convert the stream of dots. Instead, they are sent directly along a cable from the source (e.g. FIGnition) to the TV. For PAL TV, every frame consists of 312.5 scan lines and every scan line is 64µs long of which no more than 51.2µs can be used for dots.
  • Page 15: Video Circuit Basics

    Fig 3.4 3.2.2 Video Circuit Basics To generate video, FIGnition must be able to produce three voltages: a 0v Synchronisation voltage, a 0.3v voltage for black and a 1.0v voltage for white. It does this using two diodes and two resistors.
  • Page 16: Video Firmware Details

    4.3x75/(320+75) = 0.817v; which is close to 1v. This means 'white' on FIGnition is only 75% as bright as it could be. The ideal resistor would be 328.9Ω instead of 470Ω, but I chose 470Ω, because it is much easier to get hold of than a 330Ω...
  • Page 17 TV expects. The image scan states generate the actual image. Generating Synchronisation Signals. FIGnition uses some built-in hardware called a timer (Timer 2) to automatically generate synchronisation signals. During initialisation, Timer 2 is set to tick at 2.5MHz, which is the 20MHz crystal frequency / 8 and set to oper-...
  • Page 18: Composite Video Details

    Fig 3.7 Generating A Text Screen. FIGnition FUZE uses 25x24 = 600 bytes of internal RAM for display memory, and each byte contains a character not a bit pattern. The bit patterns are stored in the AVR's internal Flash memory starting at the location kChrSet. There are 8 bit-pattern bytes per character.
  • Page 19: Bitmapped Video Basics

    = 11 in total, about 3x faster [Fig 3.9]. FIGnition Forth executes byte codes (which are byte values in the range 0 to 79) and compiled commands which are two-byte addresses in ROM or RAM. The worst case for a scan line order would be 24 command bytes + 16 data bytes = 40 if the 8x8 images...
  • Page 20 Fig 3.8 Fig 3.9 SRAM Buffering. A consequence of using a tiled video image format is that it must be read in and converted to scan lines for the TV and this means 16 scans of SRAM must be buffered in internal RAM. That's because the end of the first scan line in a row of tiles will require reading in the last tile in the row, so all the tiles must be read in first.
  • Page 21 For this reason, the bitmapped video code prepares to prefetch SRAM 16 scan lines be- fore bitmapped image generation starts. The firmware allocates 320 bytes of the Text mode video buffer for prefetching the two rows of tiles (in bitmapped mode the text mode video buffer is free for other uses).
  • Page 22: Audio

    There are two main challenges with designing a simple audio interface for FIGnition: • FIGnition outputs 0v and 5v, but audio requires a -1v to +1v range. • FIGnition would normally output pure square waves, but these have very high fre- quency components which we should filter out.
  • Page 23 Fig 4.2 When the audio is turned on, the voltage on the output of D6 drops to 0v; the capacitor discharges by 2.5v producing a -2.5v transition on the output which is heard as a click. The capacitor then discharges returning the voltage back to 0v [Fig 4.3].
  • Page 24 Fig 4.3 When 5v is output from the capacitor, the voltage on the output of D6 rises to 5v; the ca- pacitor charges by 5v producing a 7.5v transition on the output which is heard as a click. The capacitor then discharges returning the voltage back to 0v [Fig 4.4].
  • Page 25 Fig 4.4 When producing an audible tone, the capacitor doesn't have time to fully discharge and so a not-quite-square wave is produced on the output. If you look closely you can see the peaks are actually curves [Fig 4.5].
  • Page 26 Fig 4.5 In addition, as the pitch rises, the peak of the wave drops from +/-5v to +/-2.5v [Fig 4.6]. Fig 4.6 At high pitches, you can see that the capacitor does not instantly charge, there is a sharp curve which becomes more gradual near the top (or bottom) of the wave [Fig 4.7].
  • Page 27: Using Timer 0 To Generate Audio

    4.2.2 Using Timer 0 To Generate Audio Audio works by making use of a timer circuit inside the FIGnition's processor, the AVR. The timer logic is fairly simple (at least it is the way the audio uses it). There is an internal 8-bit counter, which increments every CPU clock cycle divided by either 1, 8, 64, 256 or 1024 (which is held in a 3-bit internal variable called the prescalar).
  • Page 28: Making It Easy With Pitch

    0); configure the timer as described above; set the match_value and prescalar value and finally setting the prescalar value starts the timer, which generates a note. This can be wrapped up in a command, which is bundled with FIGnition in- beep FUZE, and re-listed here:...
  • Page 29 For tuneful music we therefore need to use large match_values. It turns out we can create a useful range of about 2 octaves from match_values of about 64 to 255, and because the prescalar shifts by 2 octaves at a time, we can obtain a continual musical range of about 8 octaves.
  • Page 30 Low Oct Values: High Oct Values: n pitch> converts a semitone pitch of in the range -128 to 127 into the correct presca- lar and match_value (from the pitch table). It offsets by the value in the variable trans- pose so that by default a pitch of 0 is middle C on a piano.
  • Page 31: Audio In

    4.2.4 Audio In The FIGnition Audio circuit is also designed to be able to sample 1-bit digital audio inputs. In this case, Port D6 is set up as an input and audio from a computer, MP3 player or other audio device is set to play a simple audio encoding of digital data.
  • Page 32: Storage

    FIGnition includes 0.4Mb (or 0.9Mb) of serial Flash storage for saving programs and data when FIGnition is turned off. The chip must operate at no more than 3.6V and therefore we need to convert between the AVR's 5v signals and the Flash chip. Flash storage can't be freely modified so FIGnition contains firmware which enables it to be used as a true solid-...
  • Page 33: The Spi Protocol

    Fig 5.2 In addition, the Amic serial Flash has two other connections we don't need. Pin 3 is a write-protect pin and we connect it to 3.6v to ignore the /WP. Pin 7 is a /HOLD pin used to suspend operations on the chip. We ignore it by connecting it to 3.6v. 5.2.2 The SPI Protocol The Spi protocol is a widely-used minimal complexity serial hardware protocol.
  • Page 34: The Flash Chip Commands

    Fig 5.4a (Master sending $4B to device) Fig 5.4b (Device sending $CA to Master) 5.2.3 The Flash Chip Commands FIGnition only uses some of the Flash chip's commands: Code Address Bytes Data Bytes RDID (Read Device Code) READ (Read bytes) 3 (The most sig- 1 or more...
  • Page 35: Firmware Operation

    0 to 1. Therefore the FIGnition firmware must work hard to emulate the behaviour of a disk. It does this using three techniques: Virtual Blocks, Block Purging, Virtual Table purging.
  • Page 36 Fig 5.6 That way, whenever we need to write 1s to a block where it contains 0s, we just use the next available physical page in flash and then set the cell in the virtual table to reference the new block [Fig 5.7]. Fig 5.7 This technique has another advantage, because we end up using different physical blocks whenever we need to overwrite 0s with 1s, we reduce the number of times the same...
  • Page 37: Purging

    In practice the FIGnition Virtual block driver uses the first two sectors of Flash storage to store the inverse Virtual block number table and it uses the Flash after the first 32Kb for the actual physical pages.
  • Page 38 Fig 5.10 Finding these blocks turns out to be quite easy; any physical block that replaces an older physical block will have two (or more) entries in the inverse block number table in Flash. All we have to do is look for the last one of them and all the previous ones will in fact be what's called dirty blocks.
  • Page 39: Virtual Table Purging

    5.13]! Fig 5.13 FIGnition's solution is to manage the list in two different sectors: when the first sector fills up, we carry on copying into to the second sector. When there are as many pages used in the second sector as there are on the Flash disk we'll know that the first sector doesn't contain any current information and so we can erase it [Fig 5.14].
  • Page 40: Conclusions

    Flash memory in a simplistic way that doesn't provide for re-use. FIGnition's Flash driver by-passes the SD Card protocol (which isn't open and free) and implements a fully-reusable Flash driver in about 1.5Kb of compiled AVR code. It demon- strates how flash memory can be used effectively within a constrained environment.
  • Page 41: Ram

    The chip must operate at no more than 3.6V and therefore we need to convert between the AVR's 5v signals and the Serial RAM chip. Random access to Serial RAM is relatively slow and FIGnition's firmware takes some effort to use it effectively.
  • Page 42: Firmware Operation

    The Serial RAM uses the same SPI interface and protocol as described in section 5.2.2. The Serial RAM chip uses a different set of commands and FIGnition only uses a few of them: Code Address Bytes Data Bytes WRSR (Write Status)
  • Page 43: Locality

    6.3.1 Locality If FIGnition sent out a new address every time it needed to read a new command it would need to send 4 bytes to read a single byte from Serial RAM. Fortunately, most of the time FIGnition needs to execute command codes that follow on directly from the previous command code, rather than addresses of other commands.
  • Page 44: Branch Caching

    FIGnition's hardware can be made to read in a byte from SPI while the AVR is executing code. This means that if the firmware starts the read for the next command code in the program and then starts executing the current one, FIGnition can do two jobs at the same time.
  • Page 45: Conclusions

    Fig 6.8 6.3.4 Conclusions Fignition's Serial RAM circuitry shares most of the same connections and shares the same SPI protocol with the Flash chip. Serial RAM access is relatively slow for executing pro- grams, but there are a number of ways we can speed it up.
  • Page 46: Usb

    7. USB FIGnition contains a USB interface, circuitry and firmware which allows the computer to receive firmware upgrades to its internal Flash memory and transfer data (slowly) through its internal EEPROM. The USB connection is managed entirely in software using the V- USB bootloader written by Objective Development [http://www.obdev.at].
  • Page 47 (Fig 7.3]. Fig 7.3 USB requires signal voltages to be between 0 and 3v, but FIGnition's AVR chip needs to operate at 5v to run at 20MHz. The standard V-USB circuit contains two 3v 500mA Zener diodes to clamp voltages to between 0 to 3v. Zener diodes are described in Appendix B.
  • Page 48: Firmware Operation

    firmware upgrade, because the bootloader is in control to begin with. FIGnition sets up both port C and port D at the beginning of the bootloader so that SW1 on the keypad, rather than a separate pin, acts as the bootloader key.
  • Page 49: Chicken And Egg

    Licensing limits the kind of data transfer FIGnition can support for free. It's not permissible for FIGnition to transfer programs to and from serial RAM; to treat the serial Flash chip as an external drive or provide serial-over-USB unless licensing fees are paid per FIGnition...
  • Page 50: Microcontroller

    8.2.1 How FIGnition Uses Pins 1. /Reset. FIGnition leaves this as a /Reset pin so that the AVR can be fully repro- grammed from scratch. 2. PD0/RxD. FIGnition leaves this as a general purpose I/O pin: Port D0. It cannot be used as RxD while video is being generated, because the USART is used to transmit video.
  • Page 51 3. PD1/TxD. FIGnition enables this pin as the USART's TxD pins and transmits video pix- els through it. It can't be used as a general purpose IO pin unless video is turned off. 4. PD2/INT0. FIGnition's Bootloader uses this as the USB Interrupt pin.
  • Page 52: Avr Block Diagram

    28. PC5. This pin is free. Of all the pins on FIGnition's AVR chip, only Port D0, Port D3; Port D5 and Port C5 are generally available for I/O. Port C4 can be used if the LK1 track is cut. Port D6 may have some limited usage and some other I/O ports can be used with a corresponding loss of basic FIGnition functionality.
  • Page 53: Fignition's Firmware Overview

    Flash Driver 1.95 Blitter 0.83 main 0.07 GraphIO 0.73 0.21 SwUart: 0.13 Video 1.37 MemBlockMove 0.51 ForthVM 1.26 StartScreen 0.17 CharacterSet 1.00 ForthLanguage 3.49 TextEditor 1.26 Because FIGnition's firmware is so small, the entire firmware can be visualized [Fig 8.3].
  • Page 54 Fig 8.3 Here, every byte of firmware is represented by a coloured block whose edge also has a colour. You can figure out a byte's value by looking up it's edge colour and adding it to its central colour using the grids in Fig 8.4: Fig 8.4...
  • Page 55 It's not very practical to read the firmware in this way, but some aspects of the firmware can be identified. Firstly, the top half of the firmware looks brighter and bluer: Fig 8.5 This is the part of the firmware that assembles or compiles to AVR code. The bottom half of the firmware looks slightly darker and greener: Fig 8.6 This is the part of the firmware that has been written in Forth.
  • Page 56 You should just be able to see FIGnition's @ symbol. FIGnition's firmware has two major processes, a background task for generating video and a foreground task for running Forth programs and interacting with the user. The main thread of execution is as follows [Fig 8.4]:...
  • Page 57 Display "OK" <cr> Still in Read a line of text using Query. Interpret Execute the text using Run" Mode? Fig 8.5 This description of FIGnition's firmware covers only the barest outline. An extensive de- scription is covered in the FIGnition Firmware Reference.
  • Page 58: Expanding Fignition

    9. Expanding FIGnition FIGnition FUZE provides a full set of Arduino headers for expansion and the spacing be- tween the each header row has a 0.2" gap to make it easier to interface to stripboard. There are significant limitations Arduino compatibility, because many pins are already as- signed to built-in functions.
  • Page 59: Controlling The Led

    Arduino supports a 3.3v output, but on FIGnition this is a 3.6v output. The 3.6v output is achieved by using a pair of diodes as a voltage regulator. Connecting diodes in a forward- biased direction has the effect of dropping an input voltage by 0.7 at its output [See Ap-...
  • Page 60: Default I/O

    9.2.3 Reading Analog Channel 5. FIGnition can read analog ports by simply connecting an analog input to Pin 28. Here the reference voltage will be Vcc. The adc can measure voltages with smaller voltage steps if you choose a different reference voltage <Vcc by connecting AVRef to a different refer-...
  • Page 61 Fig 9.3 The following Forth code provides a simple interface for reading an analog port: $78 const adData 0 var chan  $84 const Tcnt1 $7A const adCsrA 50 var sampPeriod! ! ( in timer1 periods) $7B const adCsrB : sample ( chan -- data) clock var sampClock $7C const adMux adData i@!
  • Page 62 : analogDemo ( tks port) : degC dup adInit 267 - 704 u* swap drop begin 10 / begin over sample? until dup sample . : tempDemo inkey until $C8 adInit drop drop begin 50 pause $C8 sample degC . inkey until The demonstration program expects you to type tks port analogDemo <exe>...
  • Page 63: I/O Trade-Off

    Tcnt1 sampClock ! <exe> ( clock sampClock ! to switch back) 1250 samplePeriod ! Tcnt1 sampClock ! <exe> would make the sample period 500µs. Note, owing to the video generation on FIGnition, sample periods <10ms cannot be reliably measured. 9.2.4 I/O Trade-Off...
  • Page 64: Using Spi To Talk To An Arduino

    9.3 Using SPI to talk to an Arduino The easiest way for FIGnition to talk to Arduino (also available from RS) is by setting up Arduino as an SPI Slave and then sending and receiving data from it. All you need to do is...
  • Page 65 Fig 9.4 A simple Arduino / FIGnition communication demo follows: Arduino Slave FIGnition Master #include <SPI.h> vram 600 + const spiPckt spiPckt 10 + const spiSrc void setup (void) create spiBuff $2B20 , Serial.begin (115200); // debugging spiSrc , 1 , 0 , 0 , pinMode(MISO, OUTPUT);...
  • Page 66: Using I2C To Talk To A Maxim Digital To Analogue Converter

    SPI slave has received a byte and if so, reads the SPi Data Register and displays the character. The FIGnition code is similarly fairly simple. To use SPI on FIGnition we need to define an SPI Packet format, because FIGnition already uses SPI when executing code so FIGnition needs a special SPI driver.
  • Page 67 Fig 9.5 You only need one pair of resistors to manage all the I2C devices FIGnition controls. A simple circuit for a Maxim517 DAC, with its I2C address offset set to 0 is: Fig 9.6 Next you need to write some Forth code to be able to talk to I2C devices.
  • Page 68: Using I2C To Talk To A Microchip I/O Expander

    A Microchip 23008 I/O Expander (RS Part# 403-563) can provide an extra 8 I/O GPIO pins for a FIGnition. Like FIGnition's GPIOs you can control the data direction of any of the pins as well as reading or writing to them and activate pull-ups. It requires a very similar circuit:...
  • Page 69 A1 and A0 both set to 0v ('0'), which means the address offset is 4. /Reset is held high. First you need to set up FIGnition as in section 9.2.6 up to the code that enables FIGnition to talk to I2C devices. The following code provides access to a Microchip 8-bit I/O Ex- pander.
  • Page 70: Using Spi To Backup The External Flash

    0 to 15 on port bits 0..3 and displays the input value of the port. 9.6 Using SPI to backup the external Flash. As standard, FIGnition only supports a single external Flash chip for storage, which means it isn't possible in Forth to copy blocks to another Flash chip or backup the external Flash.
  • Page 71 . You must first download the .hex files onto FIGnition's normal external Flash using avrdude Turn off your FIGnition and insert the backup flash chip on the shield. Then start up FIGni- tion and from it, load and compile clone by typing: 400 5 loads <exe>...
  • Page 72 vram 600 + const : wrPg ( pg) then  : amicId spiPckt 0 amicWren spiMsg dup virts 4 amicId spiMsg vram const spiSrc spiPckt >spi virtBlks ! spiPckt >spi! vram spiSrc $401 1 virts +! srPckt 1+ i@ >r $9F const amicId spiPckt 4 + i! vram dup 4 + 512 r amic4b = if...
  • Page 73: Appendix A: Potential Dividers

    Then we'll provide a feel for what they do and finally we'll explore a model for why they work as they do along with a simulation (that's also on the FIGnition FUZE web page). Circuit Diagram...
  • Page 74 Fig A3 Intuitively we can see that If the resistors are equal, the voltage will drop equally across each resistor and so will be 2.5v in the middle [Fig A3]. Fig A4 If the R2 is made much smaller than R1 then the voltage will drop a lot across R1, but not much across R2.
  • Page 75: Detailed Explanation

    Fig A5 Similarly, if we restore R2, then make R1 much smaller than R2, the voltage drop across R1 becomes smaller and so the voltage between R1 and R2 is 'pulled up' towards 5v [Fig A5]. Detailed Explanation The point of electricity is that it uses electrical current (electrons) to carry energy and so Electrical/electronic circuits are really just a very flexible means of transporting energy from one place to another.
  • Page 76 Fig A6 In theory pure metals contain a sea of freely moving electrons. so if you pump electrons in at one end, electrons pop out at the same rate at the other. The most useful analogy for resistors I've seen is to imagine them as impurities that slow down the movement of electrons by bouncing them around (and giving off heat) [Fig A6].
  • Page 78 Fig A8 This is all we need to know to simulate and understand potential divid- ers. Let's look at a simple potential divider. At the moment of connection we have 5v at the top of R1 and 0v at the bottom. Electrons would flow through that resistor at the rate: 5v / 100Ω...
  • Page 79: Simulation

    .hex and r . After each file is loaded you will need to copy it to flash by rebooting FIGnition and typing: -1 n cp <exe> Now type to load resSim and then you run it by typing (n+1) load <exe>...
  • Page 80: Code Description

    1.32! 0.37! 0.01! 0.06 1.62! 0.34! 0.00! 0.11 etc to the bottom of the screen where it says: 2.95! 0.21! 0.00! 0.20 more>> Pressing any key refreshes it with a new list which stabilizes at the bottom with: 2.98! 0.20! 0.00! 0.20 more>>...
  • Page 81 Command(s) Code Explanation calcRes First we calculate the current* as the dup v @ over 1+ v @ - voltage difference between the top over res @ >r r 1 >> + and bottom of this resistor divided by r> / this resistor and subtract 10% of the over 1+ curr @ charge left over from the last itera-...
  • Page 82: Appendix B Diodes

    Appendix B Diodes Diodes are the simplest semiconductors. FIGnition uses a simple low-power signal diode in two different ways and a different type of diode (a Zener diode) in one way. Here’s how they work. B.1 Signal Diodes (acceptor)!! (donator) A diode is constructed from silicon (which doesn’t normally conduct) with tiny amounts of...
  • Page 83: Zener Diodes

    0.7V drop in voltage. The overall effect here is to drop the voltage across the diode. FIGnition uses two signal diodes in series in this way to drop the 5v supply to 3.6v for the memory chips to operate (see section 9.2).
  • Page 84 FIGnition uses Zener diodes to limit the voltage on the USB d+ and d- signals to the speci- fied 3.6v while allowing FIGnition's AVR microcontroller to operate at 5v. This is described section 7.1.
  • Page 85: Appendix C Capacitors

    Appendix C Capacitors Capacitors can be used to temporarily store charge and to smooth voltage regularities. FiGnition uses them in both of these ways. C.1 How Capacitors Work Capacitors are basically metal plates with a large surface area separated by a thin insulat- ing material.
  • Page 86: Capacitors As Temporary Power Sources

    So, if we were to draw a graph of the voltage over time across the capacitor it would look like the graph on the left: And a graph of current over time would look like the one on the right: C.2 Capacitors As Temporary Power Sources If the power source dips below 5v then the reservoir of electrical charge on the left plate floods back into the left hand part of the circuit replenishing it with charge, but not for long...
  • Page 87: Coupling Capacitors

    filter out frequencies above 20KHz since 1/(2π * 75 * 100*10 =21.2KHz). For audio output this is useful because the audio pin on a FIGnition outputs square waves, which have nasty high-frequency components which audio equipment won’t like.

Table of Contents