Changes RSS

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

guides:microcontroller [2010/09/26 15:43]
fishy ARM
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 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...
- 
 ==== STM ==== ==== STM ====
 +
 +STMicroelectronics produce 8-bit microcontrollers, and their ST6/7 controllers
 +are common in appliances like washing machines, and the ST8 32-bit memory devices
 +are used in sensing and safety systems.
 +
 +Personally, I have no experience with these, and I have not seen much use
 +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).