390 likes | 572 Views
en.wikipedia.org/wiki/Microcontroller. A microcontroller can be considered a self-contained system with a processor, memory and peripherals and can be used as an embedded system.. Typical Peripherals. Digital I/OParallel Slave PortTimers and CountersInput CaptureOutput ComparePulse Width Modula
E N D
1. Designing with Components Wilmer Arellano
2. en.wikipedia.org/wiki/Microcontroller A microcontroller can be considered a self-contained system with a processor, memory and peripherals and can be used as an embedded system.
3. Typical Peripherals Digital I/O
Parallel Slave Port
Timers and Counters
Input Capture
Output Compare
Pulse Width Modulator
Synchronous Serial
Asynchronous Serial
A/D Converter
Analog Comparator
Miscellaneous
4. Pin Multiplexing In a microcontroller the pins usually serve more than one purpose
5. Choosing a Microcontroller Choose one that you are familiar with or that is easy to learn
6. http://arduino.cc/
7. Choosing a Microcontroller When possible select a self contained board that can be used as a learning lab
8. http://www.mikroe.com
10. http://mbed.org/
11. Choosing a Microcontroller Additional boards and accessories available may help
12. http://www.mikroe.com
13. http://arduino.cc/
14. http://elmicro.com
15. Choosing a Microcontroller Select one where many libraries are available
21. Choosing a Microcontroller Make sure that good online documentation is available http://www.mikroe.com/en/books/
http://arduino.cc/en/Tutorial/HomePage
22. Choosing a Microcontroller If you are new to this type of components and the project allows:
Start with a simple microcontroller
Then switch to a more powerful one
24. Traffic Light Control Int ledRed = 13; int ledGreen = 11;int ledYellow = 12;
void setup(){ pinMode(ledRed, OUTPUT); // sets the digital pin as output pinMode(ledYellow, OUTPUT); // sets the digital pin as output pinMode(ledGreen, OUTPUT); // sets the digital pin as output}
void loop(){ digitalWrite(ledGreen, HIGH); // sets the Green LED on delay(1000); // waits for a second digitalWrite(ledGreen, LOW); // sets the Green LED off digitalWrite(ledYellow,HIGH); // sets the Yellow LED on delay(1000); // waits for a second digitalWrite(ledYellow, LOW); // sets the Yellow LED off digitalWrite(ledRed, HIGH); // sets the Red LED on delay(1000); // waits for a second digitalWrite(ledRed, LOW); // sets the Reed LED off}
25. Arduino UNO Board
26. Arduino UNO Board
27. Prototyping Example
28. Arduino Ethernet Shield
30. Example
#include <Ethernet.h>
// network configuration. gateway and subnet are optional.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
byte gateway[] = { 10, 0, 0, 1 };
byte subnet[] = { 255, 255, 0, 0 };
// telnet defaults to port 23
Server server = Server(23);
void setup()
{
// initialize the ethernet device
Ethernet.begin(mac, ip, gateway, subnet);
// start listening for clients
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
server.write(client.read());
}
}
31. Arduino ADK The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface to connect with Android based phones, based on the MAX3421e IC.
32. Arduino ADK
33. Choosing a Microcontroller Make sure you can meet the throughput
One line of C code can transform into many lines of assembly
If necessary take one step further
34. ColdFire V1 ColdFire® Core brings 8-bit ease of use to 32-bit performance
V2 ColdFire Core
36. ColdFire V3 ColdFire Core: Single-Issue + Pipelined Local
Refined instruction prefetch pipeline
Branch prediction capabilities
Higher frequencies of operation
V4e ColdFire Core: Limited Superscalar
High performance IP Core for the 68K/ColdFire family
Partial superscalar execution
Harvard memory architecture resulting in enhanced bandwidth
Support for variable sized instruction caches and data caches
Minimal change-of-flow program execution time via sophisticated 2 level branch acceleration
Virtual memory management unit (MMU)
37. ColdFire
39. Summary Choose one that you are familiar with or that is easy to learn
When possible select a self contained board that can be used as a learning lab
Make a pin count per peripheral required ADC, UARTS, etc
Additional boards and accessories available may help
Select one where many libraries are available
If you are new to this type of components and the project allows:
Start with a simple one
Make sure you can meet the throughput
One line of C code can transform into many lines of assembly
If necessary take one step further