Slideshow transcript
Slide 1: Electronics, LEDs, Communications and Data-sheets CS4062 - Eoin Brazil - Semester 2 - 2008
Slide 2: Ohm’s Law
Slide 3: Power
Slide 4: Calculating power using resistance and current or voltage
Slide 5: Kirchhoff’s Laws first law / current law The current flowing through a given circuit point is equal to the sum of the currents flowing into that point and is equal to the sum of currents flowing out of that point. Resistors in series - RTOTAL = R1 + R2 VOUT = VIN * R2 / (R1 + R2) e.g. 5V input, 2 x 1 k Ohm Resistors 5V * 1k / (1k + 1k) ... 5V * 1k/2k ... 5V * 0.5 = 2.5V = VOUT
Slide 6: Kirchhoff’s Laws second law / voltage law The sum of the voltage differences around a closed circuit is zero. Resistors in parallel - RTOTAL = 1 / (1/R1 + 1/R2) V3 = VT * R2/(R1 + R2) e.g. VT = 9V, R1 = 2K, R2 = 1K V3 = 9*1000/2000+1000 = 3V
Slide 7: Potentiometers Practical use - variable LED brightness Some parts of the circuit may require different voltage Arduino had 6 ADC (10 bit), typically use voltage divider circuit for control with connections to ground and to +5V on the board 10 bit = 1024 values on input of 0 to 5V so 5/1024 = 4.8mV lowest measurable value Ranged input
Slide 8: Potentiometers
Slide 9: Potentiometers
Slide 10: Switches Types and contacts Knives and toggles Knive (SPST) Single pole = control of one circuit Double pole = two circuits controlled at once Single throw = one path for circuit Double throw = two paths for circuit Toggle (SPDT) Foot, tape / mat, roller, hair trigger, tilt, magnetic / reed
Slide 11: High and Low Practical switching Arduino looks for 0V (low) to 5V (high) Digital inputs float between these values Resistor “pulls” input to ground (0 volts) Pressing switch “pushes” input to 5 volts Switch pressed = HIGH, not pressed = LOW setup(): pinMode(myPin,INPUT) loop(): digitalRead(myPin)
Slide 12: /* Digital reading, turns on and off a light emitting diode (LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. It illustrates the concept of * Active-Low, which consists in connecting buttons using a 1K to 10K pull-up resistor. */ int ledPin = 13; // choose the pin for the LED int inPin = 7; // choose the input pin (button) int buttonval = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // set LED as output pinMode(inPin, INPUT); // set pushbutton as input beginSerial(19200); // start serial communication to computer } void loop() { buttonval = digitalRead(inPin); // read the pin and get the button's state if (buttonval == HIGH) { // check if the input is HIGH (button released) digitalWrite(ledPin, LOW); // turn LED OFF serialWrite('0'); // Button off (0) sent to computer } else { digitalWrite(ledPin, HIGH); // turn LED ON serialWrite('1'); // Button on (1) sent to computer } }
Slide 13: /* Digital reading, turns on and off a light emitting diode (LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. It illustrates the concept of * Active-Low, which consists in connecting buttons using a 1K to 10K pull-up resistor. */ int ledPin = 13; // choose the pin for the LED Setup the LED, int inPin = 7; // choose the input pin (button) int buttonval = 0; // variable for reading the pin status switch pins and void setup() { variable to hold pinMode(ledPin, OUTPUT); // set LED as output pinMode(inPin, INPUT); // set pushbutton as input switch values beginSerial(19200); // start serial communication to computer } void loop() { buttonval = digitalRead(inPin); // read the pin and get the button's state if (buttonval == HIGH) { // check if the input is HIGH (button released) digitalWrite(ledPin, LOW); // turn LED OFF serialWrite('0'); // Button off (0) sent to computer } else { digitalWrite(ledPin, HIGH); // turn LED ON serialWrite('1'); // Button on (1) sent to computer } }
Slide 14: /* Digital reading, turns on and off a light emitting diode (LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. It illustrates the concept of * Active-Low, which consists in connecting buttons using a 1K to 10K pull-up resistor. */ int ledPin = 13; // choose the pin for the LED Set the LED pin for int inPin = 7; // choose the input pin (button) output, set the switch int buttonval = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // set LED as output pin for input, and pinMode(inPin, INPUT); // set pushbutton as input setup for serial beginSerial(19200); // start serial communication to computer } communications void loop() { buttonval = digitalRead(inPin); // read the pin and get the button's state if (buttonval == HIGH) { // check if the input is HIGH (button released) digitalWrite(ledPin, LOW); // turn LED OFF serialWrite('0'); // Button off (0) sent to computer } else { digitalWrite(ledPin, HIGH); // turn LED ON serialWrite('1'); // Button on (1) sent to computer } }
Slide 15: /* Digital reading, turns on and off a light emitting diode (LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. It illustrates the concept of * Active-Low, which consists in connecting buttons using a 1K to 10K pull-up resistor. */ int ledPin = 13; // choose the pin for the LED Loop - Read the int inPin = 7; // choose the input pin (button) int buttonval = 0; // variable for reading the pin status switch, if its pressed void setup() { turn LED off and pinMode(inPin, INPUT); // set pushbutton as inputsend a 0 otherwise pinMode(ledPin, OUTPUT); // set LED as output } turn LED on and beginSerial(19200); // start serial communication to computer void loop() { send a 1 buttonval = digitalRead(inPin); // read the pin and get the button's state if (buttonval == HIGH) { // check if the input is HIGH (button released) digitalWrite(ledPin, LOW); // turn LED OFF serialWrite('0'); // Button off (0) sent to computer } else { digitalWrite(ledPin, HIGH); // turn LED ON serialWrite('1'); // Button on (1) sent to computer } }
Slide 16: Capacitors Stores charge With resistors I = C * dV/dt RC Circuit, parallel or series removal of electrical noise low-pass or high-pass filtering
Slide 17: Resistor Color Code 4-band Color Code 10K ! ± 5% 5 - band Color Code 47.5 K ! ± 1% 6 - band Color Code 276 ! ± 5% Multiplier Tolerance SLV 0.01 SLV ± 10% 1st Digit 2nd Digit 3rd Digit GLD 0.1 GLD ± 5% Temperature BLK-0 BLK-0 BLK-0 BLK-1 Coefficient BRN-1 BRN-1 BRN-1 BRN-10 BRN-100ppm BRN ± 1% RED-2 RED-2 RED-2 RED-100 RED-50ppm RED ± 2% ORN-3 ORN-3 ORN-3 ORN-1K ORN-15ppm YEL-4 YEL-4 YEL-4 YEL-10K YEL-25ppm GRN-5 GRN-5 GRN-5 GRN-100K GRN ± 0.5% BLU-6 BLU-6 BLU-6 BLU-1M BLU- ± 0.25% VIO-7 VIO-7 VIO-7 VIO-10M VIO ± 0.1% GRY-8 GRY-8 GRY-8 WHT-9 WHT-9 WHT-9 GRY-8
Slide 18: Measuring Resistance
Slide 19: Measuring Voltage
Slide 20: Diodes LEDs, Zener, Schottky, Photo Pass current in one direction only Forward voltage drop e.g. forward voltage drop of 0.7 V in circuit where input is 5V will have voltage of 4.3V on its far side Rectification Removal of negative voltages from signal, i.e. a bridge rectifier LED, 1.6V forward voltage drop, current limit 36mA, circuit total voltage 5V. VR = 5 - 1.6 = 3.4V R = V / I = 3.4 / 0.036 = 94.44 Ohm (at least 100 Ohm) P = V * I = 3.4 * 0.036 = 0.1224 W (at least 0.125W)
Slide 21: RGB LEDs
Slide 22: RGB LEDs
Slide 23: Cross Fading 3 LEDS
Slide 24: Cross Fading 3 LEDS
Slide 25: /* * Code for cross-fading 3 LEDs, red, green and blue, or one tri-color LED, using PWM * The program cross-fades slowly from red to green, green to blue, and blue to red * The debugging code assumes Arduino 0004, as it uses the new Serial.begin()-style functions * originally "dimmingLEDs" by Clay Shirky <clay.shirky@nyu.edu> */ / Output int redPin = 9; // Red LED, connected to digital pin 9 int greenPin = 10; // Green LED, connected to digital pin 10 int bluePin = 11; // Blue LED, connected to digital pin 11 // Program variables int redVal = 255; // Variables to store the values to send to the pins int greenVal = 1; // Initial values are Red full, Green and Blue off int blueVal = 1; int i = 0; // Loop counter int wait = 15; // 50ms (.05 second) delay; shorten for faster fades int DEBUG = 0; // DEBUG counter; if set to 1, will write values back via serial void setup() { pinMode(redPin, OUTPUT); // sets the pins as output pinMode(greenPin, OUTPUT); continued pinMode(bluePin, OUTPUT); if (DEBUG) { // If we want to see the pin values for debugging... Serial.begin(9600); // ...set up the serial ouput on 0004 style on next } } slide
Slide 26: /* * Code for cross-fading 3 LEDs, red, green and blue, or one tri-color LED, using PWM * The program cross-fades slowly from red to green, green to blue, and blue to red * The debugging code assumes Arduino 0004, as it uses the new Serial.begin()-style functions * originally "dimmingLEDs" by Clay Shirky <clay.shirky@nyu.edu> */ Setup the LED pins, / Output int redPin = 9; // Red LED, connected to digital pin 9 LED variables, and int greenPin = 10; // Green LED, connected to digital pin 10 int bluePin = 11; // Blue LED, connected to digital pin 11program variables // Program variables int redVal = 255; // Variables to store the values to send to the pins int greenVal = 1; // Initial values are Red full, Green and Blue off int blueVal = 1; int i = 0; // Loop counter int wait = 15; // 50ms (.05 second) delay; shorten for faster fades int DEBUG = 0; // DEBUG counter; if set to 1, will write values back via serial void setup() { pinMode(redPin, OUTPUT); // sets the pins as output pinMode(greenPin, OUTPUT); continued pinMode(bluePin, OUTPUT); if (DEBUG) { // If we want to see the pin values for debugging... Serial.begin(9600); // ...set up the serial ouput on 0004 style on next } } slide
Slide 27: /* * Code for cross-fading 3 LEDs, red, green and blue, or one tri-color LED, using PWM * The program cross-fades slowly from red to green, green to blue, and blue to red * The debugging code assumes Arduino 0004, as it uses the new Serial.begin()-style functions * originally "dimmingLEDs" by Clay Shirky <clay.shirky@nyu.edu> */ Setup the LED / Output int redPin = 9; // Red LED, connected to digital pin 9 pins for output int greenPin = 10; // Green LED, connected to digital pin 10 int bluePin = 11; // Blue LED, connected to digital pin 11 and if in // Program variables DEBUG mode, int redVal = 255; // Variables to store the values to send to the pins int greenVal = 1; // Initial values are Red full, Green and Blue off int blueVal = 1; setup serial int i = 0; // Loop counter communications int wait = 15; // 50ms (.05 second) delay; shorten for faster fades int DEBUG = 0; // DEBUG counter; if set to 1, will write values back via serial void setup() { pinMode(redPin, OUTPUT); // sets the pins as output pinMode(greenPin, OUTPUT); continued pinMode(bluePin, OUTPUT); if (DEBUG) { // If we want to see the pin values for debugging... Serial.begin(9600); // ...set up the serial ouput on 0004 style on next } } slide
Slide 28: // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { redVal -= 1; // Red down greenVal += 1; // Green up blueVal = 1; // Blue low } else if (i < 509) // Second phase of fades { redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up } else if (i < 763) // Third phase of fades { redVal += 1; // Red up greenVal = 1; // Green lo2 } blueVal -= 1; // Blue down continued else // Re-set the counter, and start the fades again { i = 1; on next } slide
Slide 29: // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { Start the counter redVal -= 1; // Red down greenVal += 1; // Green up and setup the } blueVal = 1; // Blue low first fade else if (i < 509) // Second phase of fades { redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up } else if (i < 763) // Third phase of fades { redVal += 1; // Red up greenVal = 1; // Green lo2 } blueVal -= 1; // Blue down continued else // Re-set the counter, and start the fades again { i = 1; on next } slide
Slide 30: // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { redVal -= 1; // Red down greenVal += 1; // Green up blueVal = 1; // Blue low } else if (i < 509) // Second phase of fades { Setup the second and redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up the third fades } else if (i < 763) // Third phase of fades { redVal += 1; // Red up greenVal = 1; // Green lo2 } blueVal -= 1; // Blue down continued else // Re-set the counter, and start the fades again { i = 1; on next } slide
Slide 31: // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { redVal -= 1; // Red down greenVal += 1; // Green up blueVal = 1; // Blue low } else if (i < 509) // Second phase of fades { redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up Restart the counter } else if (i < 763) // Third phase of fades { for the next set of redVal += 1; // Red up greenVal = 1; // Green lo2 fades } blueVal -= 1; // Blue down continued else // Re-set the counter, and start the fades again { i = 1; on next } slide
Slide 32: // we do "255-redVal" instead of just "redVal" because the // LEDs are hooked up to +5V instead of Gnd analogWrite(redPin, 255 - redVal); // Write current values to LED pins analogWrite(greenPin, 255 - greenVal); analogWrite(bluePin, 255 - blueVal); if (DEBUG) { // If we want to read the output DEBUG += 1; // Increment the DEBUG counter if (DEBUG > 10) { // Print every 10 loops DEBUG = 1; // Reset the counter Serial.print(i); // Serial commands in 0004 style Serial.print("t"); // Print a tab Serial.print("R:"); // Indicate that output is red value Serial.print(redVal); // Print red value Serial.print("t"); // Print a tab Serial.print("G:"); // Repeat for green and blue... Serial.print(greenVal); Serial.print("t"); Serial.print("B:"); Serial.println(blueVal); // println, to end with a carriage return } } delay(wait); // Pause for 'wait' milliseconds before resuming the loop } // END of Main program
Slide 33: // we do "255-redVal" instead of just "redVal" because the // LEDs are hooked up to +5V instead of Gnd analogWrite(redPin, 255 - redVal); // Write current values to LED pins analogWrite(greenPin, 255 - greenVal); analogWrite(bluePin, 255 - blueVal); Write the current if (DEBUG) { // If we want to read the output DEBUG += 1; // Increment the DEBUG counter values to the LED if (DEBUG > 10) { // Print every 10 loops DEBUG = 1; // Reset the counter pins Serial.print(i); // Serial commands in 0004 style Serial.print("t"); // Print a tab Serial.print("R:"); // Indicate that output is red value Serial.print(redVal); // Print red value Serial.print("t"); // Print a tab Serial.print("G:"); // Repeat for green and blue... Serial.print(greenVal); Serial.print("t"); Serial.print("B:"); Serial.println(blueVal); // println, to end with a carriage return } } delay(wait); // Pause for 'wait' milliseconds before resuming the loop } // END of Main program
Slide 34: // we do "255-redVal" instead of just "redVal" because the // LEDs are hooked up to +5V instead of Gnd analogWrite(redPin, 255 - redVal); // Write current values to LED pins analogWrite(greenPin, 255 - greenVal); analogWrite(bluePin, 255 - blueVal); if (DEBUG) { // If we want to read the output DEBUG += 1; // Increment the DEBUG counter The DEBUG section if (DEBUG > 10) { // Print every 10 loops DEBUG = 1; // Reset the counter sents information Serial.print(i); // Serial commands in 0004 style Serial.print("t"); // Print a tab back every 10 loops Serial.print("R:"); // Indicate that output is red value Serial.print(redVal); // Print red value Serial.print("t"); // Print a tab about the current Serial.print("G:"); // Repeat for green and blue... Serial.print(greenVal); Serial.print("t"); LED states Serial.print("B:"); Serial.println(blueVal); // println, to end with a carriage return } } delay(wait); // Pause for 'wait' milliseconds before resuming the loop } // END of Main program
Slide 35: // we do "255-redVal" instead of just "redVal" because the // LEDs are hooked up to +5V instead of Gnd analogWrite(redPin, 255 - redVal); // Write current values to LED pins analogWrite(greenPin, 255 - greenVal); analogWrite(bluePin, 255 - blueVal); if (DEBUG) { // If we want to read the output DEBUG += 1; // Increment the DEBUG counter if (DEBUG > 10) { // Print every 10 loops DEBUG = 1; // Reset the counter Serial.print(i); // Serial commands in 0004 style Serial.print("t"); // Print a tab Serial.print("R:"); // Indicate that output is red value Serial.print(redVal); // Print red value Serial.print("t"); // Print a tab Pause for a time in Serial.print("G:"); // Repeat for green and blue... Serial.print(greenVal); ms determined by Serial.print("t"); Serial.print("B:"); wait variable Serial.println(blueVal); // println, to end with a carriage return } } delay(wait); // Pause for 'wait' milliseconds before resuming the loop } // END of Main program
Slide 36: Lab Exercise
Slide 37: RGB LEDs Ambient orb Cube of LEDS
Slide 38: RGB LEDs TiniTinct, Arduino-based monome compatible
Slide 39: Accelerometer & RGB LED
Slide 40: Accelerometer & RGB LED
Slide 41: Communications Wired Wireless XPort TCP/IP for IrDa Ethernet connectivity Bluetooth RS232 "RF" / Radio I3C WiPort TCP/IP CAN Cell Phone Data GPRS ZigBee & 802.15.4 802.11b,g,n
Slide 42: Botanicalls @ ITP Botanicalls, thirsty plants make phone calls for human help. Wired & Wireless Light & Soil sensors Arduino XBee XPort Asterisk
Slide 43: 802.15.4 Topologies Single peer Broadcast Multi peer
Slide 44: ZigBee Topologies Peer Star Mesh Routing
Slide 45: Protocols and Proxies Proxy: Conversion of Protocol: Structured communication to another type conversation Network serial (Serial to TCP) Midi / OSC TinkerProxy / Griffin Proxi DMX512 osculator X10, INSTEON Girder (Windows) Shion, Indigo Sydewynder
Slide 46: Beware Communications Troubleshooting use wired versions of your project or idea first, debugging a problem is hard when its wired directly together, wireless adds an additional layer of problems chatter, too much or too fast can result in loss wireless is slower than wired more expensive approaches can improve speed and reliability but all are battery hogs NAT, routers, and traversing firewalls Sessions or Messages TCP or UDP Session makes connection, does handshaking, information is transferred, and then closed Datagram, similar to physical letter or postcard Point to Point, Point to Many (multicast), Point to All (Broadcast)
Slide 47: Data Sheets Manufacturer’s details for particular electronic product typical device performance minimum and maximum requirements and characteristics device tolerances, what you can do without harming it suggestions for applications, uses, or just hints You don’t need to understand everything only need to focus on the parts that are of interest to your current problem
Slide 48: Features • High Performance, Low Power AVR® 8-Bit Microcontroller • Advanced RISC Architecture – 120 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 20 MIPS Througput at 20 MHz • High Endurance Non-volatile Memory segments – 1K Bytes of In-System Self-programmable Flash program memory – 64 Bytes EEPROM – 64K Bytes Internal SRAM – Write/Erase cyles: 10,000 Flash/100,000 EEPROM 8-bit – Data retention: 20 years at 85°C/100 years at 25°C(1) – Optional Boot Code Section with Independent Lock Bits Microcontroller In-System Programming by On-chip Boot Program True Read-While-Write Operation with 1K Bytes – Programming Lock for Software Security • Peripheral Features In-System – One 8-bit Timer/Counter with Prescaler and Two PWM Channels – 4-channel, 10-bit ADC with Internal Voltage Reference Programmable Example: – Programmable Watchdog Timer with Separate On-chip Oscillator • – On-chip Analog Comparator Special Microcontroller Features Flash – debugWIRE On-chip Debug System – In-System Programmable via SPI Port – External and Internal Interrupt Sources ATtiny13V – Low Power Idle, ADC Noise Reduction, and Power-down Modes Models – Enhanced Power-on Reset Circuit – Programmable Brown-out Detection Circuit ATtiny13 ATtiny13 – Internal Calibrated Oscillator • I/O and Packages – 8-pin PDIP/SOIC: Six Programmable I/O Lines – 20-pad MLF: Six Programmable I/O Lines Summary • Operating Voltage: – 1.8 - 5.5V for ATtiny13V – 2.7 - 5.5V for ATtiny13 If it is the short summary • Speed Grade – ATtiny13V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V or longer full datasheet – ATtiny13: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V • Industrial Temperature Range • Low Power Consumption – Active Mode: 1 MHz, 1.8V: 240µA – Power-down Mode: < 0.1µA at 1.8V One page overview of models and capabilities Date Rev. 2535HS–AVR–10/07
Slide 49: Pin Configurations Figure 1. Pinout ATtiny13 PDIP or SOIC are 8-PDIP/SOIC the only two (PCINT5/RESET/ADC0/dW) PB5 1 8 VCC package types (PCINT3/CLKI/ADC3) PB3 2 7 PB2 (SCK/ADC1/T0/PCINT2) we'll use. The (PCINT4/ADC2) PB4 3 6 PB1 (MISO/AIN1/OC0B/INT0/PCINT1) GND 4 5 PB0 (MOSI/AIN0/OC0A/PCINT0) other types require SMD soldering. 20-QFN/MLF NC NC NC NC NC 20 19 18 17 16 (PCINT5/RESET/ADC0/dW) PB5 1 15 VCC (PCINT3/CLKI/ADC3) PB3 2 14 PB2 (SCK/ADC1/T0/PCINT2) NC 3 13 NC NC 4 12 PB1 (MISO/AIN1/OC0B/INT0/PCINT1) Example: (PCINT4/ADC2) PB4 5 11 PB0 (MOSI/AIN0/OC0A/PCINT0) 10 6 7 8 9 NC NC GND NC NC NOTE: Bottom pad should be soldered to ground. NC: Not Connect ATtiny13 10-QFN/MLF (PCINT5/RESET/ADC0/dW) PB5 1 10 VCC (PCINT3/CLKI/ADC3) PB3 2 9 PB2 (SCK/ADC1/T0/PCINT2) NC 3 8 NC (PCINT4/ADC2) PB4 4 7 PB1 (MISO/AIN1/OC0B/INT0/PCINT1) GND 5 6 PB0 (MOSI/AIN0/OC0A/PCINT0) NOTE: Bottom pad should be soldered to ground. NC: Not Connect Overview The ATtiny13 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATtiny13 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed. Date 2 ATtiny13 2535HS–AVR–10/07
Slide 50: Interrupt system to continue functioning. The Power-down mode saves the register con- tents, disabling all chip functions until the next Interrupt or Hardware Reset. The ADC Noise Reduction mode stops the CPU and all I/O modules except ADC, to minimize switching noise during ADC conversions. The device is manufactured using Atmel’s high density non-volatile memory technology. The On-chip ISP Flash allows the Program memory to be re-programmed In-System through an SPI serial interface, by a conventional non-volatile memory programmer or by an On-chip boot code running on the AVR core. The ATtiny13 AVR is supported with a full suite of program and system development tools including: C Compilers, Macro Assemblers, Program Debugger/Simulators, In-Cir- cuit Emulators, and Evaluation kits. Pin Descriptions Descriptions of the pins VCC Digital supply voltage. shown in the previous GND Ground. diagram with comments Example: Port B (PB5..PB0) Port B is a 6-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running. Port B also serves the functions of various special features of the ATtiny13 as listed on page 51. ATtiny13 RESET Reset input. A low level on this pin for longer than the minimum pulse length will gener- ate a reset, even if the clock is not running. The minimum pulse length is given in Table 12 on page 31. Shorter pulses are not guaranteed to generate a reset. Note: 1. Data Retention Reliability Qualification results show that the projected data retention failure rate is much less than 1 PPM over 20 years at 85°C or 100 years at 25!C. About Code This documentation contains simple code examples that briefly show how to use various parts of the device. These code examples assume that the part specific header file is Examples included before compilation. Be aware that not all C compiler vendors include bit defini- tions in the header files and interrupt handling in C is compiler dependent. Please confirm with the C compiler documentation for more details. 4 ATtiny13 2535HS–AVR–10/07
Slide 51: Electrical Characteristics Absolute Maximum Ratings* Operating Temperature.................................. -55!C to +125!C *NOTICE: Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam- Storage Temperature ..................................... -65°C to +150°C age to the device. This is a stress rating only and functional operation of the device at these or Voltage on any Pin except RESET other conditions beyond those indicated in the with respect to Ground ................................-0.5V to VCC+0.5V operational sections of this specification is not implied. Exposure to absolute maximum rating Voltage on RESET with respect to Ground......-0.5V to +13.0V conditions for extended periods may affect device reliability. Maximum Operating Voltage ............................................ 6.0V Descriptions of the what DC Current per I/O Pin ............................................... 40.0 mA DC Current VCC and GND Pins................................ 200.0 mA maximum ratings for device are. Running at these or beyond will DC Characteristics damage the device Example: T = -40!C to 85!C, V = 1.8V to 5.5V (unless otherwise noted)(1) A CC Symbol Parameter Condition Min. Typ. Max. Units Input Low Voltage except VCC = 1.8V - 2.4V 0.2VCC VIL -0.5 V RESET pin VCC = 2.4V - 5.5V 0.3VCC Input High-voltage except VCC = 1.8V - 2.4V 0.7VCC(3) VIH VCC +0.5 V RESET pin VCC = 2.4V - 5.5V 0.6VCC(3) ATtiny13 Input Low-voltage VIL1 VCC = 1.8V - 5.5 -0.5 0.1VCC V CLKI pin Input High-voltage VCC = 1.8V - 2.4V 0.8VCC(3) VIH1 VCC +0.5 V CLKI pin VCC = 2.4V - 5.5V 0.7VCC(3) Input Low-voltage VIL2 VCC = 1.8V - 5.5 -0.5 0.2VCC V RESET pin Input High-voltage VIH2 VCC = 1.8V - 5.5 0.9VCC(3) VCC +0.5 V RESET pin Input Low-voltage VCC = 1.8V - 2.4V VIL3 -0.5 0.2VCC V RESET pin VCC = 2.4V - 5.5V Input High-voltage VCC = 1.8V - 2.4V 0.7VCC(3) VIH3 VCC +0.5 V RESET pin VCC = 2.4V - 5.5V 0.6VCC(3) Output Low Voltage(4) IOL = 20 mA, VCC = 5V 0.7 V VOL (PB1 and PB0) IOL = 10 mA, VCC = 3V 0.5 V Output Low Voltage(4) IOL = 10 mA, VCC = 5V 0.7 V VOL1 (PB5, PB4, PB3 and PB2) IOL = 5 mA, VCC = 3V 0.5 V IOL =TBD mA, VCC = Output Low Voltage(4) TBDV V VOL2 (PB5, Reset used as I/O) IOL =TBD mA, VCC = V TBDV Output High-voltage(5) IOH = -20 mA, VCC = 5V 4.2 V VOH ( PB1 and PB0) IOH = -10 mA, VCC = 3V 2.5 V 120 ATtiny13 2535H–AVR–10/07
Slide 52: ATtiny13 TA = -40"C to 85"C, VCC = 1.8V to 5.5V (unless otherwise noted)(1) (Continued) Symbol Parameter Condition Min. Typ. Max. Units (5) Output High-voltage IOH = -10 mA, VCC = 5V 4.2 V VOH1 (PB4, PB3 and PB2) IOH = -5 mA, VCC = 3V 2.5 V IOH = - TBD mA, VCC = Output High-voltage(5) TBDV V VOH2 (PB5, Reset used as I/O) IOH = - TBD mA, VCC = V TBDV Input Leakage Vcc = 5.5V, pin lowSome chips have internal resistors IIL 1 µA Current I/O Pin (absolute value) which you can use for inputs, here Input Leakage Vcc = 5.5V, pin high IIH Current I/O Pin (absolute value) is where you can find their value 1 µA RRST Reset Pull-up Resistor 30 80 k! Rpu I/O Pin Pull-up Resistor 20 50 k! Active 1MHz, VCC = 2V 0.35 mA Active 4MHz, VCC = 3V 1.8 mA Example: Active 8MHz, VCC = 5V 6 mA Power Supply Current Idle 1MHz, VCC = 2V 0.08 0.2 mA ICC Idle 4MHz, VCC = 3V 0.41 1 mA Idle 8MHz, VCC = 5V 1.6 3 mA WDT enabled, VCC = 3V <5 10 µA Power-down mode ATtiny13 WDT disabled, VCC = 3V < 0.5 2 µA Analog Comparator Input VCC = 5V VACIO < 10 40 mV Offset Voltage Vin = VCC/2 Analog Comparator Input VCC = 5V IACLK -50 50 nA Leakage Current Vin = VCC/2 Analog Comparator VCC = 2.7V 750 tACPD ns Propagation Delay VCC = 4.0V 500 Notes: 1. All DC Characteristics contained in this data sheet are based on simulation and characterization of other AVR microcontrol- lers manufactured in the same process technology. These values are representing design targets, and will be updated after characterization of actual silicon. 2. “Max” means the highest value where the pin is guaranteed to be read as low. 3. “Min” means the lowest value where the pin is guaranteed to be read as high. 4. Although each I/O port can sink more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V for PB5, PB1:0, 10 mA at VCC = 5V, 5 mA at VCC = 3V for PB4:2) under steady state conditions (non-transient), the following must be observed: 1] The sum of all IOL, for all ports, should not exceed 60 mA. If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test condition. 5. Although each I/O port can source more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V for PB5, PB1:0, 10 mA at VCC = 5V, 5 mA at VCC = 3V for PB4:2) under steady state conditions (non-transient), the following must be observed: 1] The sum of all IOH, for all ports, should not exceed 60 mA. If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current greater than the listed test condition. 121 2535H–AVR–10/07







Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 2 (more)