====== Sitemap ====== This is a sitemap over all available pages ordered by [[doku>namespaces|namespaces]].
Page Actions
Wiki Actions
User Actions
====== Differences ====== This shows you the differences between two versions of the page.
|
guides:microcontroller [2010/09/26 15:51] fishy STM |
guides:microcontroller [2010/09/26 17:09] (current) fishy |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Microcontroller concepts ====== | ====== Microcontroller concepts ====== | ||
| + | |||
| + | Tiny computers surround your life. In your coffee maker, remote control, vacuum cleaner, telephone, and clock radio. Unlike your personal computer, where a | ||
| + | central processor has a huge amount of processing power, these tiny computers | ||
| + | are special purpose devices that have relative low performance requirements. | ||
| + | These tiny computers are, in general, microcontrollers. | ||
| + | |||
| + | Microcontrollers are getting more and more available to the general hobby-hacker through the advent of devices like the BasicStamp and the Arduino. | ||
| ===== The difference of processors and controllers ===== | ===== The difference of processors and controllers ===== | ||
| Line 47: | Line 54: | ||
| you will probably be using a microcontroller, and by that, reducing | you will probably be using a microcontroller, and by that, reducing | ||
| development time, complexity and cost. | development time, complexity and cost. | ||
| + | |||
| ===== Families of microcontrollers ===== | ===== Families of microcontrollers ===== | ||
| Line 53: | Line 61: | ||
| often the original developer of the controller family. The most commonly | often the original developer of the controller family. The most commonly | ||
| used controller families in embedded hobby electronics are as far as I can tell: | used controller families in embedded hobby electronics are as far as I can tell: | ||
| - | |||
| ==== AVR ==== | ==== AVR ==== | ||
| - | Developed my Atmel, the AVR family is a quite popular modified Harvard architecture 8-bit RISC. The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. | + | {{ :guides:atmega168.jpg?100}} |
| + | |||
| + | Developed by Atmel, the AVR family is a quite popular modified Harvard architecture 8-bit RISC. The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. | ||
| AVR microcontrollers are today split in a set of (8 bit) sub-families: | AVR microcontrollers are today split in a set of (8 bit) sub-families: | ||
| Line 63: | Line 72: | ||
| * **XMEGA**\\ the ATxmega series, extended performance features, such as DMA, "Event System", and cryptography support, extensive peripheral set with DACs | * **XMEGA**\\ the ATxmega series, extended performance features, such as DMA, "Event System", and cryptography support, extensive peripheral set with DACs | ||
| * **FPSLIC**\\ AVR with FPGA | * **FPSLIC**\\ AVR with FPGA | ||
| - | |||
| ==== PIC ==== | ==== PIC ==== | ||
| + | {{ :guides:pic18-150-40-dip.jpg?150}} | ||
| The PIC family is very popular among hobbyists and industry developers alike, | The PIC family is very popular among hobbyists and industry developers alike, | ||
| - | and ha a wide variety of devices with varying interfaces and capabilities. | + | and has a wide variety of devices with varying interfaces and capabilities. |
| These microcontrollers are supplied by Microchip, who currently holds the | These microcontrollers are supplied by Microchip, who currently holds the | ||
| - | patents and trademarks for PIC technology. Like AVR, PIC is based on ah Harvard architecture, where code and data space is separated. The PIC technology | + | patents and trademarks for PIC technology. Like AVR, PIC is based on a Harvard architecture, where code and data space is separated. The PIC technology |
| derives from the PIC1640 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to "Programmable Interface Controller" | derives from the PIC1640 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to "Programmable Interface Controller" | ||
| Line 79: | Line 88: | ||
| * **PIC18**\\ high-performance 8-bit architecture with 16 bit code-space. Quite a lot of developers who used PIC16 previously is now moving to PIC18. | * **PIC18**\\ high-performance 8-bit architecture with 16 bit code-space. Quite a lot of developers who used PIC16 previously is now moving to PIC18. | ||
| * **PIC24 and dsPIC**\\ 16 bit architecture, high performance devices. Mulitple registers make them very powerful compared to 8-bit PIC's | * **PIC24 and dsPIC**\\ 16 bit architecture, high performance devices. Mulitple registers make them very powerful compared to 8-bit PIC's | ||
| - | * **PIC32**\\ These differ from previos PIC's by being Von Neumann devices, not Harvard. A leap up from PIC24, they 32 bit devices with very high MIPS and capabilities. The first sets of PIC32 devices are pin-compatible with PIC24. | + | * **PIC32**\\ These differ from previous PIC's by being Von Neumann devices, not Harvard. A leap up from PIC24, they 32 bit devices with very high MIPS and capabilities. The first sets of PIC32 devices are pin-compatible with PIC24. |
| ==== ARM ==== | ==== ARM ==== | ||
| + | {{ :guides:lpc214x_chip.jpg?150}} | ||
| The ARM is a 32-bit reduced instruction set computer architecture developed by ARM Holdings. It was known as the Advanced RISC Machine, and before that as the Acorn RISC Machine, and initially comes from a microprocessor for desktop computers produced by Acorn Computers. The ARM architecture is provided as a series of | The ARM is a 32-bit reduced instruction set computer architecture developed by ARM Holdings. It was known as the Advanced RISC Machine, and before that as the Acorn RISC Machine, and initially comes from a microprocessor for desktop computers produced by Acorn Computers. The ARM architecture is provided as a series of | ||
| Line 90: | Line 101: | ||
| ARM microcontrollers are provided by several manufacturers, most notably: | ARM microcontrollers are provided by several manufacturers, most notably: | ||
| - | * **Altera**\\ | + | * **Altera**\\ Supplying FPGA's with ARM cores |
| - | Supplying FPGA's with ARM cores | + | * **Freescale**\\ The MAC7100 family of controllers geared towards automotive use |
| - | * **Freescale**\\ | + | * **Philips/NXP**\\ Most notable microcontroller are the LPC2000-series ARM based, high performance, high-memory devices. Highly rated, but I am told they are not trivial to develop for. |
| - | The MAC7100 family of controllers geared towards automotive use | + | |
| - | * **Philips/NXP**\\ | + | |
| - | Most notable microcontroller are the LPC2000-series ARM based, high performance, high-memory devices. Highly rated, but I am told they are not trivial to develop for. | + | |
| Personally, I have no experience working with ARM-based microcontrollers. If you have information fitting this section that you would like to have added, please contribute by registering and editing, or simply send me an email... | Personally, I have no experience working with ARM-based microcontrollers. If you have information fitting this section that you would like to have added, please contribute by registering and editing, or simply send me an email... | ||
| Line 107: | Line 115: | ||
| of ST controllers in hobbyist designs. | of ST controllers in hobbyist designs. | ||
| + | ===== Development boards ===== | ||
| + | |||
| + | {{ :guides:picdem2-plus.jpg?150}} | ||
| + | Learning to use a new type or family of microcontroller can be limited severely | ||
| + | by the fact that the device is unfamiliar to the developer, so the design of | ||
| + | a circuit to use the device becomes difficult. Learning how to program and use | ||
| + | a controller is often a crucial step in learning to use and interface to | ||
| + | a given controller, and commonly you want to start experimenting with code and | ||
| + | interfacing before committing to designing a special purpose design. | ||
| + | |||
| + | The controller manufacturers realize this, and produce demo boards, evaluation | ||
| + | kits and trainers for their microcontrollers. These boards include all supporting | ||
| + | circuitry needed, and facilitate rapid prototyping and experimentation, allowing | ||
| + | rapid learning of a controllers features. | ||
| + | |||
| + | Third-party manufacturers, like Olimex, also create development boards, both special- and general-purpose for the variety of microcontrollers. These third-party development boards often combine microcontrollers with other circuitry, | ||
| + | like sensors or I/O level converters, or allow demonstration of advanced usage, like Ethernet connectivity or wireless communication. | ||
| + | |||
| + | {{ :guides:arduino.jpg?150}} | ||
| + | Demo-, prototype- and evaluation boards are a good way to rapidly get experience | ||
| + | with controllers and peripherals without having to invest in complex circuit design and production. A very prominent example of how a prototype-kit can make microcontroller-oriented development very easily available, is the Arduino platform. The Arduino has opened up Controller-based systems to an enormous audience, who without the Arduino would not consider developing. A downside to this, is that systems tend to be centered around the prototype-platform (Arduino) rather than being more efficiently built directly around the microcontroller (Atmel Atmega AVR). | ||