`
`Page 1 of 41
`
`Archive-name: microcontroller-faq/primer
`Posting-Frequency: monthly
`Last-modified: Jan. 26, 1994
`This article is a primer and general FAQ about microcontrollers.
`Included is a collection of information sources on various
`microcontrollers.
`The following topics are addressed:
` 0) Rantings and ravings (to make the FAQ zero-based)
` 1) ABOUT THIS FAQ
` 1.1) Who put this FAQ together?
` 1.2) How can I contribute to this FAQ?
` 1.3) What newsgroups will this FAQ be posted to?
` 1.4) May I distribute this FAQ or post it somewhere else?
` 2) MICROCONTROLLERS
` 2.1) What is a Microcontroller?
` 2.2) Applications
` 2.3) Flavors
` 3) SOME POPULAR MICROCONTROLLERS
` 3.1) Fabrication techniques
` 3.2) Architectural features
` 3.3) Advanced Memory options
` 3.4) Power Management and Low Voltage
` 3.5) I/O
` 3.6) Special microcontroller features
` 4) SPECIAL MICROCONTROLLER FEATURES
` 5) GETTING STARTED WITH MICROCONTROLLERS
` 6) MICROCONTROLLER PROGRAMMING LANGUAGES
` 6.1) Machine/Assembly language
` 6.2) Interpreters
` 6.3) Compilers
` 6.4) Fuzzy Logic and Neural Networks
` 7) DEVELOPMENT TOOLS
` 7.1) Simulators
` 7.2) Resident Debuggers
` 7.3) Emulators
` 7.4) Good Stereo System
` 8) FINDING OUT MORE ABOUT MICROCONTROLLERS
` 8.1) Books
` 8.2) Data and Reference Books
` 8.3) Periodicals
` 8.4) Internet newsgroups
` 8.5) Internet sources of information on specific microcontrollers
` 9) MICROCONTROLLER FREE SOFTWARE SOURCES
` 9.1) FTP sites
` 9.2) BBSs
` 9.3) Mailing lists
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 1 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 2 of 41
`
`0) Rantings and ravings
` Disclaimer: Just so it is understood, the "rantings and ravings" are
` my rantings and ravings. My readers are refined and sophisticated
` and would never rant or rave. I, on the other hand, sit in front of
` the TV in torn underwear and drink beer out of the bottle.
` Yeah, I know, this FAQ is getting a just a BIT long. I apologize to
` those who aren't able to retrieve the whole document. I'm now
` working on reformatting and splitting it up into multiple parts. I
` avoided this for as long as possible, since it is much more
` convenient when the entire article is only one piece, but - that's
` life :-).
` Tom Kellet's FAQ on the PIC line of microcontrollers has just been
` approved for posting to news.answers. If you're into the PIC, then
` his FAQ is a must. See section 8.4 for more information on his FAQ
` and others. Good job Tom!
` If you're interested in porting GCC to the processor you're using,
` check out the Cross GCC mailing list. See section 9.3 for details on
` how to subscribe.
`
` The other day I was watching my 8 year old daughter play with her
` Barbie Dolls. She has about 7 or so, including two that used to
` belong to my wife (Roz) when she was a girl. I noticed an
` interesting difference between the old dolls and the new dolls. The
` old Barbies could only move their heads sideways, while the new
` Barbies not only can move their heads sideways, but also up and down.
` AMAZING - the old Barbies were good girls - they could only say no.
` The new Barbies however can also say yes. Progress - isn't it
` wonderful!
` Dave Perry adds: "My Daughter got a gymnast Barbie for Christmas -
` wait'll you see what *she* can do ;-)"
` Which leads me to an amazing fact. Most everyone thinks of the PIC
` microcontroller line as being a recent introduction. However,
` they've been around for over 20 years. What's the difference? The
` new chips are fabricated in CMOS, some features have been added, new
` family lines have been introduced, and the company name is Microchip
` and not General Instrument. Microchip actually seems to care - they
` are aggressive and are providing a product that their customers want.
` Whatever the differences might be, these chips are really dynamite.
` PSST! Hey kid! Want a naked Barbie Doll?!
`
`Just a reminder to please be kind and send in your suggestions.
` Thanks.
`
` Take care of yourselves,
` Uncle Russ
`
`1) ABOUT THIS FAQ
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 2 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 3 of 41
`
`1.1) Who put this FAQ together?
` Me again! This FAQ is just a way to tie up loose ends. From time to
` time, general questions about microcontrollers (from beginners to
` experienced designers) pop up in the newsgroups. It seemed that a
` general primer/FAQ on microcontrollers might be useful.
` Much of this document could be considered as a sort of a primer on
` microcontrollers. For those of you with previous experience,
` sections 8 and 9 might be of special interest (especially for those
` of you looking for that elusive "free COBOL compiler for the 1802").
`
`1.2) How can I contribute to this list?
` I please ask that if you have any suggestions or additions, or you
` would like to correct any of the information contained herein, please
` send me a note.
` My Email address is: sibit@datasrv.co.il
` My Smail address is:
` Russ Hersch
` HaVradim 11
` Ginot Shomron
` ISRAEL
` Thanks to the following who have contributed to this document:
` Robin L. Getz (National Semiconductor)
` Robert Boys
` Dave Dunfield (Dunfield Development Systems)
` Jeff Fox (Ultra Technology)
` Zack Lau
` Also, thanks to those who have posted questions and to those who have
` posted answers. Thanks to "my new friends" who send suggestions and
` encouragement, as well as the occasional question. Special thanks to
` my mother-in-law, who thankfully will probably never read this
` document ;-).
` I hope that those of you who have special knowledge on the subject of
` microcontroller use, or know of sources of information on
` microcontrollers, will share with everyone by contributing to
` document.
`
`1.3) What newsgroups will this FAQ be posted to?
` This FAQ will be posted to the following newsgroups:
` comp.robotics
` comp.sys.intel
` comp.sys.m68k
` comp.sys.6809
` sci.electronics
` alt.comp.hardware.homebuilt
` I will post once a month - on or about the 26th of each month.
`
`1.4) May I distribute this FAQ or post it somewhere else?
` I am putting no restrictions on the use of this FAQ except - It must
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 3 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 4 of 41
`
` be distributed in its entirety with the copyright notice, and no
` financial gain may be realized from it. After all, I have spent, and
` continue to spend, a lot of time on this.
` For this reason I have appended a copyright statement to the end of
` this FAQ. I feel pretty silly doing this, but I just want to protect
` myself. The copyright does not limit the use of this list for
` noncommercial purposes. I hereby give my permission to one and all
` to pass this list around and post it wherever you want - as long as
` it is not for financial gain.
` Thank you.
`
`2) MICROCONTROLLERS
`
`2.1) What is a Microcontroller?
` A controller is used to control (makes sense!) some process or aspect
` of the environment. A typical microcontroller application is the
` monitoring of my house. As the temperature rises, the controller
` causes the windows to open. If the temperature goes above a certain
` threshold, the air conditioner is activated. If the system detects
` my mother-in-law approaching, the doors are locked and the windows
` barred. In addition, upon detecting that my computer is turned on,
` the stereo turns on at deafening volume (for more on this, see the
` section on development tools).
` At one time, controllers were built exclusively from logic
` components, and were usually large, heavy boxes (before this, they
` were even bigger, more complex analog circuits). Later on,
` microprocessors were used and the entire controller could fit on a
` small circuit board. This is still common - you can find many [good]
` controllers powered by one of the many common microprocessors
` (including Zilog Z80, Intel 8088, Motorola 6809, and others).
` As the process of miniaturization continued, all of the components
` needed for a controller were built right onto one chip. A one chip
` computer, or microcontroller was born. A microcontroller is a highly
` integrated chip which includes, on one chip, all or most of the parts
` needed for a controller. The microcontroller could be called a
` "one-chip solution". It typically includes:
` CPU (central processing unit)
` RAM (Random Access Memory)
` EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
` I/O (input/output) - serial and parallel
` timers
` interrupt controller
` By only including the features specific to the task (control), cost
` is relatively low. A typical microcontroller has bit manipulation
` instructions, easy and direct access to I/O (input/output), and quick
` and efficient interrupt processing. Microcontrollers are a "one-chip
` solution" which drastically reduces parts count and design costs.
`
`2.2) Applications
` In addition to control applications such as the above home monitoring
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 4 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 5 of 41
`
` system, microcontrollers are frequently found in embedded
` applications. Among the many uses that you can find one or more
` microcontrollers: appliances (microwave oven, refrigerators,
` television and VCRs, stereos), automobiles (engine control,
` diagnostics, climate control), environmental control (greenhouse,
` factory, home), instrumentation, aerospace, and thousands of other
` uses.
` Microcontrollers are used extensively in robotics. In this
` application, many specific tasks might be distributed among a large
` number of microcontrollers in one system. Communications between
` each microcontroller and a central, more powerful microcontroller (or
` microcomputer, or even large computer) would enable information to be
` processed by the central computer, or to be passed around to other
` microcrontrollers in the system.
` A special application that microcontrollers are well suited for is
` data logging. Stick one of these chips out in the middle of a corn
` field or up in a ballon, and monitor and record environmental
` parameters (temperature, humidity, rain, etc). Small size, low power
` consumption, and flexibility make these devices ideal for unattended
` data monitoring and recording.
`
`2.3) Flavors
` Microcontrollers come in many flavors and varieties. Depending on
` the power and features that are needed, you might choose a 4 bit, 8
` bit, 16 bit, or 32 bit microcontroller. In addition, some
` specialized versions are available which include features specific
` for communications, keyboard handling, signal processing, video
` processing, and other tasks.
`
`3) MICROCONTROLLER FEATURES
`
`3.1) Fabrication techniques
` CMOS - Complementary Metal Oxide Semiconductor
` This is the name of a common technique used to fabricate most (if
` not all) of the newer microcontrollers. CMOS requires much less
` power than older fabrication techniques, which permits battery
` operation. CMOS chips also can be fully or near fully static,
` which means that the clock can be slowed up (or even stopped)
` putting the chip in sleep mode. CMOS has a much higher immunity
` to noise (power fluctuations or spikes) than the older fabrication
` techniques.
`
` PMP - Post Metal Programming (National Semiconductor)
` PMP is a high-energy implantation process that allows
` microcontroller ROM to be programmed AFTER final metalization.
` Usually ROM is implemented in the second layer die, with nine or
` ten other layers then added on top. That means the ROM pattern
` must be specified early in the production process, and completed
` prototypes devices won't be available typically for six to eight
` weeks. With PMP, however, dies can be fully manufactured through
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 5 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 6 of 41
`
` metalization and electrical tests (only the passivation layers
` need to be added), and held in inventory. This means that ROM can
` be programmed late in production cycle, making prototypes
` available in only two weeks.
`
`3.2) Architectural features
` Von-Neuman Architecure
` Microcontrollers based on the Von-Neuman architecture have a
` single "data" bus that is used to fetch both instructions and
` data. Program instructions and data are stored in a common main
` memory. When such a controller addresses main memory, it first
` fetches an instruction, and then it fetches the data to support
` the instruction. The two separate fetchs slow the controllers
` operation.
`
` Harvard Architecture
` Microcontrollers based on the Harvard Architecture have a separate
` data bus and an instruction bus. This allows execution to occur
` in parallel. As an instruction is being "pre-fetched", the
` current instruction is executing on the data bus. Once the
` current instruction is complete, the next instruction is ready to
` go. This pre-fetch theoretically allows for much faster execution
` than a Von-Neuman architecture, but there is some added silicon
` complexity.
`
` CISC
` Almost all of today's microcontrollers are based on the CISC
` (Complex Instruction Set Computer) concept. The typical CISC
` microcontroller has well over 80 instructions, many of them very
` powerful and very specialized for specific control tasks. It is
` quite common for the instructions to all behave quite differently.
` Some might only operate on certain address spaces or registers,
` and others might only recognize certain addressing modes.
` The advantages of the CISC architecture is that many of the
` instructions are macro-like, allowing the programmer to use one
` instruction in place of many simpler instructions.
`
` RISC
` The industry trend for microprocessor design is for Reduced
` Instruction Set Computers (RISC) designs. This is beginning to
` spill over into the microntroller market. By implementing fewer
` instructions, the chip designed is able to dedicate some of the
` precious silicon real-estate for performance enhancing features.
` The benefits of RISC design simplicity are a smaller chip, smaller
` pin count, and very low power consumption.
` Among some of the typical features of a RISC processor:
`- Harvard architecture (separate buses for instructions and
` data allows simultaneous access of program and data, and
` overlapping of some operations for increased processing
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 6 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 7 of 41
`
` performance
`- Instruction pipelining increases execution speed
`- Orthogonal (symmetrical) instruction set for programming
` simplicity; allows each instruction to operate on any
` register or use any addressing mode; instructions have no
` special combinations, exceptions, restrictions, or side
` effects
`
` SISC
` Actually, (at least in my opinion) a microcontroller by definition
` is a reduced instruction set computer - or at least a specific
` instruction set computer (SISC). The [original] idea behind the
` microcontroller was to limit the capabilities of the chip,
` allowing a complete computer (memory, I/O, interrupts, etc) to fit
` on the available real estate. At the expense of the more general
` purpose instructions that make the standard microprocessors (8088,
` 68000, 32032) so easy to use, the instruction set was designed for
` the specific purpose of control (powerful bit manipulation, easy
` and efficient I/O, and so on).
` Microcontrollers now come with a mind boggling array of features
` that aid the control engineer - watchdog timers, sleep/wakeup
` modes, power management, powerful I/O channels, and so on. By
` keeping the instruction set specific (and reduced), and thus
` saving valuable real estate, more and more of these features can
` be added, while maintaining the economy of the microcontroller.
`
`3.3) Advanced Memory options
` EEPROM - Electrically Erasable Programmable Read Only Memory
` Many microcontrollers have limited amounts of EEPROM on the chip.
` EEPROM seems more suited (becuase of its economics) for small
` amounts of memory that hold a limited number of parameters that
` may have to be changed from time to time. This type of memory is
` relatively slow, and the number of erase/write cycles allowed in
` its lifetime is limited.
`
` FLASH (EPROM)
` Flash provides a good better solution than regular EEPROM when
` there is a requirement for large amounts of non-volatile program
` memory. It is both faster and permits more erase/write cycles
` than EEPROM.
`
` Battery backed-up static RAM
` Battery backed-up static RAM is useful when a large non-volatile
` program and DATA space is required. A major advantage of static
` RAM is that it is much faster than other types of non-volatile
` memory so it is well suited for high performance application.
` There also are no limits as to the number of times that it may be
` written to so it is perfect for applications that keep and
` manipulate large amounts of data locally.
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 7 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 8 of 41
`
` Field programming/reprogramming
` Using nonvolatile memory as a place to store program memory allows
` the device to be reprogrammed in the field without removing the
` microcontroller from the system that it controls. One such
` application is in automotive engine controllers. Reprogrammable
` non-volatile program memory on the engine's microcontroller allows
` the engine controller program to be modified during routine
` service to incorporate the latest features or to compensate for
` such factors as engine ageing and changing emissions control laws
` (or even to fix bugs!!). Reprogramming of the microcontroller
` could become a standard part the routine engine tune-up.
` Almost every application could benifit from this type of program
` memory - If a modem's hardware supported it, you could remotely
` upgrade your modem from Vfast to V.34, or incorporate new features
` such as voice control or a digital answering machine.
`
` OTP - One Time Programmable
` An OTP is a PROM (Programmable Read-Only-Memory) device. Once
` your program is written into the device with a standard EPROM
` programmer, it can not be erased or modified. This is usually
` used for limited production runs before a ROM mask is done in
` order to test code.
` A OTP (One Time Programmable) part uses standard EPROM, but the
` package has no window for erasing. Once your program is written
` into the device with a standard EPROM programmer, it cannot be
` erased or modified. (Well, sort of - any bit that is a zero can
` be changed to a one - but a bit that is a one can not be changed
` into a zero).
` As product design cycles get shorter, it is more important for
` micro manufacturers to offer OTPs as an option. This was commonly
` used for limited production runs before a ROM mask in order to
` test code. However, one problem with Mask ROM is that
` programming, setup, and engineering charges make it economical
` only when the systems manufacturer purchases large quanties of
` identically programmed micros. Then when you discover THAT bug
` (and find it and fix your code), you have quanities of *old buggy*
` micros around that you have to throw away. Not to mention that
` lead time (the time when you submit your code to the micro
` manufacture, to the time you receive your micro with your code on
` it) can be at least 8 weeks, and as bad as 44 weeks.
`
` Software protection
` Either by encryption or fuse protection, the programmed software
` is protected against unauthorized snooping (reverse engineering,
` modifications, piracy, etc.).
` This is ONLY an option on OTPs and Windowed devices. On Masked
` ROM devices, security in not needed - the only way to read your
` code out be to rip the microcontroller apart with a scanning
` electron microscope - and how many people really have one of
` those?
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 8 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 9 of 41
`
` Although - this is a manufacture's little know fact - when a
` silicon manufacturer makes your ROMed microcontroller - they have
` to test it in order to make sure that it is programmed properly.
` (You should see what a spec of dust does on a mask :-) In order
` to test this, they must be able to read out the ROM and compare it
` to the code you submitted. This mode is known as test mode. IN
` TEST MODE YOU CAN READ OUT THE ROM OF ANY DEVICE. Anybody who
` tells you different, does not know what they are talking about -
` or is lieing. This is usually not a big deal because test mode is
` ***VERY*** confidential, and (usually) only known by that
` manufacturer (i.e. you cannot put a device into test mode by
` accident). Test mode is ONLY applicaible with ROMed devices.
`
`3.4) Power Management and Low Voltage
` Low voltage parts
` Since automotive applications have been the driving force behind
` most microcontrollers, and 5 Volts is very easy to do in a car,
` most microcontrollers have only supported 4.5 - 5.5 V operation.
` In the recent past, as consumer goods are begining to drive major
` segments of the microcontroller market, and as consumer goods
` become portable and lightweight - the requirement for 3 volt (and
` lower) microcontrollers has become urgent (3 volts = 2 battery
` solution / lower voltage = longer battery life). Most low voltage
` parts in the market today are simply 5 volt parts that were
` modified to operate at 3 volts (usually at a performance loss).
` Some micros being released now are designed from the ground up to
` operate properly at 3.0 (and lower) voltages, which offer
` comparable performance of the 5 volt devices.
`
` Brownout Protection
` Brownout protection is usually an on-board protection circuit that
` resets the device when the operating voltage (Vcc) is lower than
` the Brownout voltage. The device is held in reset and will remain
` in reset when Vcc stays below the Brownout voltage. The device
` will resume execution (from reset) after Vcc has risen above the
` Brown Out Voltage.
`
` Idle/Halt/Wakeup
` The device can be placed into IDLE/HALT mode by software control.
` In both Halt and Idle conditions the state of the microcontroller
` remains. RAM is not cleared and any outputs are not changed. The
` terms idle and halt often have different definitions, depending on
` the manufacturer. What some call idle, others may call halt, and
` vice versa. It can be confusing, so check the data sheet for the
` device in question to be sure.
` In IDLE mode, all activities are stopped except:
`- associated on-board oscillator circuitry
`- watchdog logic (if any)
`- the clock monitor
`- the idle timer (a free running timer)
` Power supply requirements on the microcontroller in this mode are
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 9 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 10 of 41
`
` typically around 30% of normal power requirements of the
` microprocessor. Idle mode is exited by a reset, or some other
` stimulus (such as timer interrupt, serial port, etc.). A special
` timer/counter (the idle timer) causes the chip to wake up at a
` regular interval to check if things are OK. The chip then goes
` back to sleep.
` IDLE mode is extremely useful for remote, unattended data logging
`- the microprocessor wakes up at regular intervals, takes its
` measurements, logs the data, and then goes back to sleep.
` In Halt mode, all activities are stopped (including timers and
` counters). The only way to wake up is by a reset or device
` interrupt (such as an I/O port). The power requirements of the
` device are minimal and the applied voltage (Vcc) can sometimes be
` decreased below operating voltage without altering the state
` (RAM/Outputs) of the device. Current consumption is typically
` less than 1 uA.
` A common application of HALT mode is in laptop keyboards. In
` order to have maximum power saving, the controller is in halt
` until it detects a keystroke (via a device interrupt). It then
` wakes up, decodes and sends the keystroke to the host, and then
` goes back into halt mode, waiting either for another keystroke, or
` information from the host.
`
` Multi-Input Wakeup (National Semiconductor)
` The Multi-Input WakeUp (MIWU) feature is used to return (wakeup)
` the microcontroller from either HALT or IDLE modes. Alternately
` MIWU may also be used to generate up to 8 edge selectible external
` interrupts. The user can select whether the trigger condition on
` the pins is going to be either a positive edge (low to high) or a
` negative edge (high to low).
`
`3.5) I/O
` UART
` A UART (Universal Asynchronous Receiver Transmitter) is a serial
` port adapter for asynchronous serial communications.
`
` USART
` A USART (Universal Synchronous/Asynchronous Receiver Transmitter)
` is a serial port adapter for either asynchronous or synchronous
` serial communications. Communications using a USART are typically
` much faster (as much as 16 times) than with a UART.
`
` Synchronous serial port
` A synchronous serial port doesn't require start/stop bits and can
` operate at much higher clock rates than an asynchronous serial
` port. Used to communicate with high speed devices such as memory
` servers, display drivers, additional A/D ports, etc. Can also be
` used to implement a simple microcontroller network.
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 10 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 11 of 41
`
` SPI (Motorola)
` An SPI (serial peripheral interface) is a synchronous serial port.
`
` SCI
` An SCI (serial communications interface) is an enhanced UART
` (asynchronous serial port).
`
` I2C bus - Inter-Integrated Circuit bus (Philips)
` The I2C bus is a simple 2 wire serial interface developed by
` Philips. It was developed for 8 bit applications and is widely
` used in consumer electronics, automotive and industrial
` applications. In addition to microcontrollers, several
` peripherals also exist that support the I2C bus.
` The I2C bus is a two line, multi-master, multi-slave network
` interface with collision detection. Up to 128 devices can exist
` on the network and they can be spread out over 10 meters. Each
` node (microcontroller or peripheral) may initiate a message, and
` then transmit or receive data. The two lines of the network
` consist of the serial data line and the serial clock line. Each
` node on the network has a unique address which accompanies any
` message passed between nodes. Since only 2 wires are needed, it
` is easy to interconnect a number of devices.
`
` MICROWIRE/PLUS (National Semiconductor)
` MICROWIRE/PLUS is a serial synchronous bi-directional
` communications interface. This is used on National Semiconductor
` Corporation's devices (microcontrollers, A/D converters, display
` drivers, EEPROMS, etc.).
`
` CAN & J1850
` CAN (Controller Area Network) is a mutiplexed wiring scheme that
` was developed jointly by Bosh and Intel for wiring in automobiles.
` J1850 is the SAE (Society of Automotive Engineers) multiplexed
` automotive wiring standard that is currently in use in North
` America.
` Both of these groups have the "NOT INVENTED HERE" syndrome and
` refuse to work with each other's standard. The standards are quite
` different and are not compatible at all.
` The CAN specification seems to be the one that is being used in
` industrial control both in North American and Europe. With lower
` cost microcontrollers that support CAN, CAN has a good potential
` to take off.
`
` Analog to Digital Conversion (A/D)
`
`http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/microcontroller-faq/primer/faq.html
`
`COMPASS EXH. 1011 - 11 of 41
`
`
`
`Microcontroller primer and FAQ
`
`Page 12 of 41
`
` Converts an external analog signal (typically relative to voltage)
` and converts it to a digital representation. Microcontrollers
` that have this feature can be used for instrumention,
` environmental data logging, or any application that lives in an
` analog world.
` The various types of A/D converters that can be found:
` Succesive Approximation A/D converters -- This the most common
` type of A/D and is used in the majority of microcontrollers. In
` this technique, the converter figures out each bit at a time (most
` significant first) and finds if the next step is higher or lower.
` This way has some benefits - it takes exactly the same amount of
` time for any conversion - it is very common - (and therefore very
` cheap). However it also has some disadvantages - it is slow - for
` every bit it takes at least one clock cycle - the best an 8-bit
` A/D can do is at least 8 clock cycles (and a couple for
` housekeeping). Because it takes so long - it is a power hog as
` compared to the other types of A/Ds.
` Single Slope A/D converters -- This is the type of converter that
` you can build yourself (if the microcontroller has a couple of
` analog blocks on it). Your single slope A/D converter would
` include Analog Mux / comparator / timer (8-bit timer = 8 bit A/D -
` 16-bit timer = 16 bit A/D) with input capture and a constant
` current source. The only microcontroller (that I know of) that
` has all of this on it is National's COP888EK.
` First Step is to clear the timer to 0000 and then start it. It is
` a simple matter to hang an external capacitor, and charge it with
` the constant current source (linearly becuase of the current
` source) when the voltage on the cap exceeds the sampling voltage,
` the comparitor toggles, stops the timer - and voila - you have the
` voltage in uSecs - with 16-bit accuracy. The only drawback is you
` can't really expect 16 bits (14 yes) - the conversion time varies
` quite a bit, and it is SLOW.
` Delta-Sigma A/Ds converters -- This type of A/D converter is found
` on higher-end DSPs. These are the hardest to understand of the
` A/Ds because it just makes a best guess (a little National
` Semiconductor humor here :-). Delta sigma A/Ds can be broken down
`