Editing Microcontrollers

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 6: Line 6:
 
* a '''CPU''' is something that can execute software programs. The earliest CPUs were built out of many parts, but now most CPUs are in microprocessors.
 
* a '''CPU''' is something that can execute software programs. The earliest CPUs were built out of many parts, but now most CPUs are in microprocessors.
 
* a '''microprocessor''' is a kind of single [[Integrated Circuits|integrated circuit]] that includes an entire CPU. In the earliest microprocessors, and some famous kinds of microprocessors still being made, the CPU fills the entire chip, and so require external RAM and ROM/FLASH memory. But now most CPUs sold are in microcontrollers[http://www.circuitcellar.com/library/designforum/silicon_update/3/index.asp].
 
* a '''microprocessor''' is a kind of single [[Integrated Circuits|integrated circuit]] that includes an entire CPU. In the earliest microprocessors, and some famous kinds of microprocessors still being made, the CPU fills the entire chip, and so require external RAM and ROM/FLASH memory. But now most CPUs sold are in microcontrollers[http://www.circuitcellar.com/library/designforum/silicon_update/3/index.asp].
* A '''microcontroller''' is a kind of microprocessor that, in addition to the CPU, also includes RAM, ROM/FLASH memory, and digital I/O on a single chip. Many microcontrollers also have a UART, analog to digital convertors, and even comparators on the same chip/die/package.
+
* A '''microcontroller''' is a kind of microprocessor that, in addition to the CPU, also includes RAM, ROM/FLASH memory, digital I/O, analog to digital convertors, and even comparators on a single die/package.
  
A microcontroller is a little computer on a single Die/Package.  The computer includes a CPU core, RAM, ROM/FLASH, and peripherals often including UARTS, A/D converters, SPI, and I2C. Microcontrollers differ from microprocessors in that the microprocessors generally have bigger more powerful central processing units, but need support chips for ram, rom and other peripherals.  Most modern microcontrollers use FLASH ram instead of a ROM so they can be programmed over and over. Most modern microcontrollers support in-system programming (ISP) or in-circuit serial programming (ICSP) or some similar protocol to enable a programmer/debugger to burn a program (often a bootloader) into the microcontroller after the microcontroller has been soldered in, without pulling the chip from the circuit.  Many modern microcontrollers allow self-flashing to enable bootloading or a firmware update without using a programmer/debugger.
+
A microcontroller is a little computer on a single Die/Package.  The computer includes a CPU core, RAM, ROM/FLASH, and peripherals including UARTS, A/D converters, SPI, and I2C. Microcontrollers differ from microprocessors in that the microprocessors generally have bigger more powerful central processing units, but need support chips for ram, rom and other peripherals.  Most modern microcontrollers use FLASH ram instead of a ROM so they can be programmed over and over.  Many modern microcontrollers allow self-flashing to enable bootloading or a firmware update without pulling the chip from the circuit or using a programmer/debugger.
  
 
Unlike PCs, which have a wide range of programming languages available, microcontrollers have only a few programming languages available -- C programming language, Basic programming language, Forth programming language, assembly language, and (on a few microcontrollers) Python programming language.
 
Unlike PCs, which have a wide range of programming languages available, microcontrollers have only a few programming languages available -- C programming language, Basic programming language, Forth programming language, assembly language, and (on a few microcontrollers) Python programming language.
Line 108: Line 108:
 
Combined with an AVRDragon for about 60€ everybody with a budget of about 70€ is able to build and debug his own microprocessor applications. The AVRDragon allows you to debug all ATmega & ATtiny processors with less than 32k flash using DebugWire or JTAG and to program all ATmega / ATtiny devices using HVPP, ISP and JTAG.
 
Combined with an AVRDragon for about 60€ everybody with a budget of about 70€ is able to build and debug his own microprocessor applications. The AVRDragon allows you to debug all ATmega & ATtiny processors with less than 32k flash using DebugWire or JTAG and to program all ATmega / ATtiny devices using HVPP, ISP and JTAG.
  
=== [[ATtiny]] ===
+
=== ATtiny ===
  
 
Small and somewhat lacking in I/O, but still quite powerful (20MHz System Clock, 20MIPS, 64MHz Fast  Peripheral Clock). Ideal for small spaces, limited resources, or a tight budget.
 
Small and somewhat lacking in I/O, but still quite powerful (20MHz System Clock, 20MIPS, 64MHz Fast  Peripheral Clock). Ideal for small spaces, limited resources, or a tight budget.
  
 
Features include 10bit ADCs, USI, 8/16bit timer, PWM, I²C, SPI , BOD, and WDT.
 
Features include 10bit ADCs, USI, 8/16bit timer, PWM, I²C, SPI , BOD, and WDT.
 +
 +
Processors:
 +
 +
* ATtiny4/5/9/10
 +
* ATtiny13
 +
* ATtiny20
 +
* ATtiny24/44/84
 +
* ATtiny25/45/85
 +
* ATtiny26
 +
* ATtiny28L
 +
* ATtiny40
 +
* ATtiny43U
 +
* ATtiny48/88
 +
* ATtiny87/167
 +
* ATtiny261/461/861
 +
* ATtiny441/841
 +
* ATtiny828
 +
* ATtiny1634
 +
* ATtiny2313
 +
* ATtiny4313
  
 
=== ATmega ===
 
=== ATmega ===
Line 192: Line 212:
  
 
== further reading ==
 
== further reading ==
 
* [[Microcontrollers for Beginners]]
 
* [[Using ADCs]]
 
* [[Microcontroller Serial Communications Articles]]
 
  
 
* [http://www.instructables.com/id/How-to-choose-a-MicroController/ Instructables: How to choose a MicroController]
 
* [http://www.instructables.com/id/How-to-choose-a-MicroController/ Instructables: How to choose a MicroController]
* Thomas A. Coonan. [https://web.archive.org/web/20120117133103/http://www.mindspring.com/~tcoonan/design.html "Microcontroller Design Checklist. Or, My Top Seven uController Issues"].
 
* [http://www.digikey.com/techxchange/thread/4280 "Help Me Select a Microcontroller"].
 
 
* [http://en.wikibooks.org/wiki/Embedded_Systems/Particular_Microprocessors#brief_selection_guide Wikibooks: brief selection guide]
 
* [http://en.wikibooks.org/wiki/Embedded_Systems/Particular_Microprocessors#brief_selection_guide Wikibooks: brief selection guide]
 
*[http://www.veys.com/index.php?title=Main_Page Main Page] May have been a one man effort, now dropped.  Has a bit of content that looks good.
 
*[http://www.veys.com/index.php?title=Main_Page Main Page] May have been a one man effort, now dropped.  Has a bit of content that looks good.
Line 206: Line 220:
 
*[http://www.ladyada.net/library/picvsavr.html PIC vs. AVR Ultimate fight]
 
*[http://www.ladyada.net/library/picvsavr.html PIC vs. AVR Ultimate fight]
 
* [http://chiphacker.com/questions/1092/whats-the-difference-between-a-microcontroller-and-a-microprocessor Chiphacker: "What’s the difference between a microcontroller and a microprocessor?"]
 
* [http://chiphacker.com/questions/1092/whats-the-difference-between-a-microcontroller-and-a-microprocessor Chiphacker: "What’s the difference between a microcontroller and a microprocessor?"]
* [http://piclist.com/techref/piclist/begin.htm "Beginners checklist for PIC Microcontrollers"].
 
  
  
 
[[category:microcontroller]][[Category:Components]]
 
[[category:microcontroller]][[Category:Components]]

Please note that all contributions to OpenCircuits may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see OpenCircuits:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)