throbber
Microcontroller primer and FAQ
`
`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
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket