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 | + | * A '''microcontroller''' is a kind of microprocessor that, in addition to the CPU, also includes RAM and ROM/FLASH memory 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 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. | ||
People often have strong opinions about their favorite programming language[http://embeddedadventures.blogspot.com/2008/04/4compilers.html]. | People often have strong opinions about their favorite programming language[http://embeddedadventures.blogspot.com/2008/04/4compilers.html]. | ||
− | |||
Line 31: | Line 28: | ||
Somebody always thinks their microcontroller is the best microcontroller, so we have listed all of them as best. | Somebody always thinks their microcontroller is the best microcontroller, so we have listed all of them as best. | ||
+ | |||
+ | |||
+ | [http://www.ladyada.net/library/picvsavr.html "PIC vs. AVR"]: "OK, I know what you people want. You want ultimate fighting, embedded E.E. style. You want to know WHICH IS BETTER, PIC OR AVR?" | ||
+ | |||
+ | |||
+ | |||
+ | [[MC RS232 Comm|Some notes on Microcontroller RS232 Communications]] | ||
== Microchip PIC == | == Microchip PIC == | ||
Line 49: | Line 53: | ||
Things to consider as a hobbiest or making a small production run: | Things to consider as a hobbiest or making a small production run: | ||
− | * Microchip tends to produce the same chip with minor variations. The exact same chip with the exact same pinout may be available in 8k, 16k, or 32k flash. Spend a few extra | + | * Microchip tends to produce the same chip with minor variations. The exact same chip with the exact same pinout may be available in 8k, 16k, or 32k flash. Spend a few extra pennyies and take the best. |
* SMT parts take practice to work with, so beginners should focus on DIP package parts with <= 40 pins. On the other hand, SMT parts can yield simpler and smaller PCB designs so they are worth consideration even for a hobbiest. | * SMT parts take practice to work with, so beginners should focus on DIP package parts with <= 40 pins. On the other hand, SMT parts can yield simpler and smaller PCB designs so they are worth consideration even for a hobbiest. | ||
* Contrary to common sense, older parts are often more expensive then newer parts. | * Contrary to common sense, older parts are often more expensive then newer parts. | ||
Line 104: | Line 108: | ||
== Atmel AVR == | == Atmel AVR == | ||
− | + | The AVR series is split into 4 different types: | |
− | + | {| border="1" | |
− | + | | Series | |
− | + | | Description | |
− | + | | Processors | |
− | + | | Facts | |
− | Small | + | |- |
− | + | |ATtiny | |
− | + | | Small (2 Ports or less) 8 bit RISC PU but extremely powerful (20MHz System Clock, 20MIPS, 64MHz Fast Peripheral Clock) | |
− | + | | ATtiny25/45/85, ATtiny 26/46/86, ... | |
− | = | + | | 10bit ADCs, USI, 8/16bit timer, PWM, I²C, SPI , BOD, WDT, ... |
+ | |- | ||
+ | |ATmega | ||
+ | | Powerful 8bit RISC PU with up to 10 IO Ports and up to 256k flash (20MHz system clock, 20 MIPS) | ||
+ | | ATmega88, ATmega16/32, ATmega640/1280/2560, ATmega1281/2561, ... | ||
+ | | 10bit ADCs, USARTs, 8/16bit timer, I²C, SPI, BOD, WDT, ... | ||
+ | |- | ||
+ | |ATxmega | ||
+ | | Extremely powerful 8/16bit RISC CPU with up to 10 IO Ports and up to 256k flash (32 MHz system clock, 32 MIPS) | ||
+ | | ATxmega64A1/128A1/192A1/256A1, ATxmega64A3/128A3/192A3/256A3, .... | ||
+ | | 12bit ADC, 12bit DAC, 16 bit timer, USARTs, SPI, I²C, DMA, Real time clock, crypto engine,.. | ||
+ | |- | ||
+ | |AVR32 | ||
+ | | High End 32bit RISC CPU for multimedia purposes (system clocks up to 200 MHz and more) | ||
+ | | AP7000, AP7001, AP7002, AT32UC3A0128/0256/0512, ... | ||
+ | | A lot =), see atmel.com for futher details | ||
+ | |} | ||
− | + | Especially the ATmega series is very easy to use and is the best processor for beginners. All small chips are available in the easy to use DIL package and 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. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* [[Atmel]] AVR 8 bit FLASH microcontrollers | * [[Atmel]] AVR 8 bit FLASH microcontrollers | ||
* [http://www.atmel.com/products/AVR/ Atmel] ATmega & ATtiny | * [http://www.atmel.com/products/AVR/ Atmel] ATmega & ATtiny | ||
* [http://www.atmel.com/products/AVR/default_xmega.asp Atmel] ATxmega | * [http://www.atmel.com/products/AVR/default_xmega.asp Atmel] ATxmega | ||
* [http://www.atmel.com/products/AVR32/ Atmel] AVR 32 | * [http://www.atmel.com/products/AVR32/ Atmel] AVR 32 | ||
− | |||
== Development Boards == | == Development Boards == | ||
Development Boards are printed circuit boards that contain a microcontroller and enough circuitry to get it going, typically at least some of the following: clock, voltage regulator, reset button, communications chip, buffer amplifiers, led's, prototyping area, and/or off chip connections. Sometimes the manufacturer of the chip sells development boards ( often called evaluation boards ). Development boards can be really basic, just enough to make the processor run, with connections to the IO pins. Or the boards can include communications, displays, input buttons etc. Often you can jump start a project by using a development board that does the boring standard stuff and let you focus on your project. The development board can let you use high density parts and surface mount parts that you might not want to mess with. The BitWacker kit from [[SparkFun]] is priced close the to the total price of the parts. This is probably true of some other development boards as well. Note that some development boards require you to build them they have not been made available as kits, some come both ways. | Development Boards are printed circuit boards that contain a microcontroller and enough circuitry to get it going, typically at least some of the following: clock, voltage regulator, reset button, communications chip, buffer amplifiers, led's, prototyping area, and/or off chip connections. Sometimes the manufacturer of the chip sells development boards ( often called evaluation boards ). Development boards can be really basic, just enough to make the processor run, with connections to the IO pins. Or the boards can include communications, displays, input buttons etc. Often you can jump start a project by using a development board that does the boring standard stuff and let you focus on your project. The development board can let you use high density parts and surface mount parts that you might not want to mess with. The BitWacker kit from [[SparkFun]] is priced close the to the total price of the parts. This is probably true of some other development boards as well. Note that some development boards require you to build them they have not been made available as kits, some come both ways. | ||
− | *[[Chalk Roach]] | + | *[[Chalk Roach]] |
*[[Arduino Links]] Arduino is based on AVR Microcontrollers | *[[Arduino Links]] Arduino is based on AVR Microcontrollers | ||
− | *[[USB Bit Whacker]] This is a PIC 18 based system ... can be used with [[BitWacker Java Communications]] | + | * [[USB Bit Whacker]] This is a PIC 18 based system ... can be used with [[BitWacker Java Communications]] |
*[[RS232 Dev Board]] | *[[RS232 Dev Board]] | ||
*[[dsPIC30F 5011 Development Board]] | *[[dsPIC30F 5011 Development Board]] | ||
− | |||
− | |||
Other demo boards: see [[demo board]]. | Other demo boards: see [[demo board]]. | ||
Line 173: | Line 156: | ||
== Cypress PSoC == | == Cypress PSoC == | ||
− | * Cypress PSoC 8 | + | * Cypress PSoC 8 bit FLASH microcontrollers. |
External Links: | External Links: | ||
− | |||
* [http://en.wikibooks.org/wiki/Embedded_Systems/Cypress_PSoC_Microcontroller Wikibooks: Cypress PSoC] | * [http://en.wikibooks.org/wiki/Embedded_Systems/Cypress_PSoC_Microcontroller Wikibooks: Cypress PSoC] | ||
− | |||
== ARM == | == ARM == | ||
Line 184: | Line 165: | ||
* [[Image:lpc2103.jpg|69px|LPC2103]] [http://www.k9spud.com/arm/lpc2103/ LPC2103] Low cost 70MHz ARM7TDMI-S FLASH Microcontroller from Philips. The [http://coridiumcorp.com/arm7/ "$49" "Coridium ARMmite"] does use this chip. | * [[Image:lpc2103.jpg|69px|LPC2103]] [http://www.k9spud.com/arm/lpc2103/ LPC2103] Low cost 70MHz ARM7TDMI-S FLASH Microcontroller from Philips. The [http://coridiumcorp.com/arm7/ "$49" "Coridium ARMmite"] does use this chip. | ||
* the [http://www.open-research.org.uk/ARMuC/ ARM microcontroller wiki]. | * the [http://www.open-research.org.uk/ARMuC/ ARM microcontroller wiki]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== further reading == | == further reading == | ||
− | |||
− | |||
− | |||
− | |||
* [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] | ||
− | |||
− | |||
* [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. | ||
− | *[http:// | + | *[http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/ Cornell University ECE 4760 Designing with Microcontrollers Final Projects] A ton on projects. |
− | |||
− | |||
− | |||
− | |||
[[category:microcontroller]][[Category:Components]] | [[category:microcontroller]][[Category:Components]] |