2010/10/1 Wireless Sensor Network And Labs fall 2010 1 Outline Platforms and microcontrollers Software Electronics, schematics and datasheets 2010/10/1 Wireless Sensor Network And Labs fall 2010 2 WSN Platform A hardware device that enable wireless sensor network research Typical components Microcontroller Radio Power supply Sensors and/or actuators Peripherals 2010/10/1 USB interface Storage Wireless Sensor Network And Labs fall 2010 3 What Do We Have TelosB (Taroko/TmoteSky/TIP700CM) Original design: UC Berkeley CHNDS Taroko Crossbow TelosB Moteiv Tmote Sky 2010/10/1 Wireless Sensor Network And Labs fall 2010 Maxfor TIP700CM 4 Crossbow Original design: UC Berkeley Commercial product: Crossbow Mica2 Other products from Crossbow Cricket Imote2 IRIS Cricket 2010/10/1 MicaZ Imote Wireless Sensor Network And Labs fall 2010 IRIS 5 Others (Research) BTnode (ETH Zurich) Commercialized XYZ (Yale University) MSB (Freie Universitat Berlin) Modular Sensor Board (MSB) 2010/10/1 Wireless Sensor Network And Labs fall 2010 6 Others (Commercial) Dustnetworks (spun out of UC Berkeley) iDwaRF – NodeBoard Worldsens – WSN430 2010/10/1 Wireless Sensor Network And Labs fall 2010 7 Others (Industrial Control) Accsense MicroStrain Sensicast 2010/10/1 Wireless Sensor Network And Labs fall 2010 8 Taroko Original design version TelosB by UC Berkeley Modified version Taroko (CHNDS, Taiwan) TelosB (Crossbow, USA) Tmote Sky (Moteiv, USA) TIP700CM (Maxfor, Korea) 2010/10/1 Wireless Sensor Network And Labs fall 2010 9 On Taroko Microcontroller TI (Texas Instruments) MSP430F1611 Radio TI Chipcon CC2420 250kbps, 2.4GHz USB interface 8M-bit flash memory Extension connectors Optional sensors Light, Humidity and Temperature 2010/10/1 Wireless Sensor Network And Labs fall 2010 10 Microcontroller (MCU) The heart of the WSN platform Control everything It is all about programming this chip 2010/10/1 Wireless Sensor Network And Labs fall 2010 11 What Is A Microcontroller No general definition Common features low speed Microcontroller -> ARM/DSP -> Pentium/AMD no hierarchical Memory Bits – usually 8-bit, or 16-bit Power – consume less power Cost – usually it is much cheaper Input/Output (I/O) peripherals 2010/10/1 many on chip peripherals available Wireless Sensor Network And Labs fall 2010 12 List of MCU Texas Instruments (TI): MSP430 Silabs: C8051Fxxx There are many other companies making 8051 architecture microcontrollers including Intel, Atmel, Dallas Semiconductor, and etc. Microchip Technology: PIC Atmel: ATmega128 Freescale Semiconductor (Motorola): 68HCxx Many others AMCC (IBM), Altera, Cypress MicroSystems, Infineon, Holtek, National Semiconductor, Parallax, Rabbit Semiconductor, NEC, STMicroelectronics, Analog Devices, Xemics, ZiLOG, NXP, OKI semiconductor, Renesas Technology, Samsung, and etc. 2010/10/1 Wireless Sensor Network And Labs fall 2010 13 Today’s Personal Computer Motherboard Storage (Harddisk) >120GB Peripherals IDE SATA Audio VGA CPU Memory (DRAM) >1GB Ethernet Keyboard, Mouse, Monitor, Printer, etc Firewire DMA Wifi USB ComPort 2010/10/1 Wireless Sensor Network And Labs fall 2010 14 Microcontroller Block Diagram Microcontroller Clock System Peripherals GPIO Timer Sensors and actuators ADC ALU Memory (RAM) 10KB Storage (Flash) 48KB 2010/10/1 UART SPI DMA External storage, other ICs, other circuits I2C DAC Host PC, PDA, etc. USB Ethernet Wireless Sensor Network And Labs fall 2010 15 Pins Light Sensors Temp/Humidity Sensor Infrared Sensors Motor Clock System USB Chip PC Radio Chip Switches 2010/10/1 Wireless Sensor Network And Labs fall 2010 LEDs 16 MSP430 Family 16-bit Reduced Instruction Set Computer (RISC) CPU 1K to 128K bytes Flash 128 bytes to 10K bytes RAM 14- to 100-pin I/O Ultra-low Power 2010/10/1 Wireless Sensor Network And Labs fall 2010 17 Clock Signal An oscillate signal generated by some hardware All processors, as well as many peripherals require clocks Clock frequency is the speed of the processor Usually, higher speed consume large energy 2010/10/1 Wireless Sensor Network And Labs fall 2010 18 Crystals A small block of quartz Apply a voltage, it will vibrate For a block of given size, it will vibrate at a given and fixed frequency They require a drive circuit to make them go 2010/10/1 Wireless Sensor Network And Labs fall 2010 19 Generate Clock Oscillator module include crystal and drive circuit Internal drive circuit + crystal most common case Digitally Controlled Oscillator an oscillator circuit constructed by some electrical components can control its frequency frequency varies with temperature, voltage, and from device to device 2010/10/1 Wireless Sensor Network And Labs fall 2010 20 MSP430 Clock system Flexible clock sources Always-on low frequency crystal (eg. 32.768KHz) On-demand high speed DCO (up to 25MHz) DCO on and stable in < 1μs 2010/10/1 Wireless Sensor Network And Labs fall 2010 21 Flexible Clock Sources in MSP430 Oscillator consume energy Higher the speed, larger the energy consumption Use high speed DCO for CPU for high speed peripherals wake up and get things done, go to sleep as soon as possible Use low frequency crystal oscillator for peripherals that require always on Save energy 2010/10/1 Wireless Sensor Network And Labs fall 2010 22 An Example: RTC Real-Time clock (RTC) software routine that records second, minute, and hour Calendar clock second, minute, hour, day, month, year. Implementation configure a timer (counter), use low frequency osc. (32.768KHz) as clock source when the timer counts to 32768 (exactly 1 second), it generates an interrupt processor wake-up, execute the RTC routines 2010/10/1 Wireless Sensor Network And Labs fall 2010 23 Low Power RTC • Watch Battery CR2032 •Capacitor: 230 mAh • Lifetime = 230 mAh / 0.83 μA = (230000 / 0.83) hours = 277108 hours (approx.31 years) 2010/10/1 Wireless Sensor Network And Labs fall 2010 24 Memory RAM (Random Access Memory) volatile storage store variables, stack, and etc. Flash non volatile storage store program code, and data Info Segments (on MSP430) A special segment in flash Usually use to store parameters 2010/10/1 Wireless Sensor Network And Labs fall 2010 Memory Map of MSP430 25 Peripherals To communicate with the external world Sensors switches, light, temperature, accelerometer, infrared, humidity, pressure, acoustic, camera, and etc. Actuators and output controls motor, on/off control, LEDs, LCD display, and etc. Other ICs or circuit flash memory IC, SD card, USB flash disk, DSP processor, and etc. Host PC, PDA, Industry PC, and etc. 2010/10/1 Wireless Sensor Network And Labs fall 2010 26 Ways to Communicate Programmed I/O The processor accepts or delivers data at times convenient to it Interrupt-driven I/O External events control the processor by requesting the current program be suspended and the external event be serviced Direct Memory Access (DMA) DMA allows data to be transferred from I/O devices to memory directly without the continuous involvement of the processor 2010/10/1 Wireless Sensor Network And Labs fall 2010 27 Microcontroller Block Diagram Microcontroller Clock System Peripherals GPIO Timer Sensors and actuators ADC ALU Memory (RAM) 10KB Storage (Flash) 48KB 2010/10/1 UART SPI DMA External storage, other ICs, other circuits I2C DAC Host PC, PDA, etc. USB Ethernet Wireless Sensor Network And Labs fall 2010 28 GPIO General purpose input/output A pin on the Microcontroller Function Set as input or output When input Read the “value” on the pin (high/low) Generate an interrupt when transition occur When output Set the output of the pin to high/low voltage Usage Control LEDs, read switches input, communication, etc 2010/10/1 Wireless Sensor Network And Labs fall 2010 29 Timer It is a counter Measures time intervals Generate Interrupt (ex. 32.768kHz Crystal) Internal Clock Source Timer External Source Setting (ex. count to 32768) 2010/10/1 PWM Wireless Sensor Network And Labs fall 2010 Other Outputs 30 Analog to Digital Converter(ADC) Convert Voltage to a digital number Signal Path Signal Conditioning Sensors • Light • Temperature • Acceleration • Humidity • Pressure • etc. Produce a proper output voltage level (if necessary) • Resistance • Capacitance • Current • Voltage • etc. • Amplification • Filtering Convert to voltage Analog to Digital Conversion (ADC) 10011101 Converts voltage to digital number 2010/10/1 Wireless Sensor Network And Labs fall 2010 31 Digital Communications Sending bits between each other 10011101 A B Serial communication Our focus 10011101 Sending bits one by one A UART, SPI, I2C, USB, etc. Parallel communication 1 0 Sending multiple bits at one time 0 1 1 A Ethernet 1 B B 0 1 2010/10/1 Wireless Sensor Network And Labs fall 2010 32 TI Embedded Processors TI Embedded Processing Portfolio ARM®-Based Processors Microcontrollers (MCUs) 16-bit ultralow power MCUs MSP430™ 32-bit real-time MCUs C2000™ Delfino™ Piccolo™ 32-bit ARM Cortex™-M3 MCUs Stellaris® ARM® Cortex™-M3 ARM Cortex-A8 MPUs Sitara™ ARM® Cortex™-A8 & ARM9 40MHz to 300 MHz Up to 100 MHz 300MHz to >1GHz Flash 1 KB to 256 KB Analog I/O, ADC LCD, USB, RF Flash, RAM 16 KB to 512 KB Flash 8 KB to 256 KB Measurement, Sensing, General Purpose PWM, ADC, CAN, SPI, I2C Motor Control, Digital Power, Lighting, Ren. Enrgy USB, ENET MAC+PHY CAN, ADC, PWM, SPI Cache, RAM, ROM USB, CAN, PCIe, EMAC $1.50 to $20.00 DSP DSP+ARM C6000™ DaVinci™ Connectivity, Security, Motion Control, HMI, Industrial Automation $1.00 to $8.00 Industrial computing, POS & portable data terminals $5.00 to $20.00 Multi-core DSP C6000™ Ultra Low power DSP C5000™ video processors OMAP™ Up to 25 MHz $0.25 to $9.00 Digital Signal Processors (DSPs) 300MHz to >1Ghz +Accelerator Cache RAM, ROM USB, ENET, PCIe, SATA, SPI Floating/Fixed Point Video, Audio, Voice, Security, Conferencing $5.00 to $200.00 24.000 MMACS Up to 300 MHz +Accelerator Cache RAM, ROM Up to 320KB RAM Up to 128KB ROM USB, ADC McBSP, SPI, I2C SRIO, EMAC DMA, PCIe Telecom test & meas, media gateways, base stations $40 to $200.00 Audio, Voice Medical, Biometrics $3.00 to $10.00 Software & Dev. Tools 2010/10/1 Wireless Sensor Network And Labs fall 2010 33 MSP430F1xx 2010/10/1 Wireless Sensor Network And Labs fall 2010 34 MSP430F4xx 2010/10/1 Wireless Sensor Network And Labs fall 2010 35 MSP430F2xx 2010/10/1 Wireless Sensor Network And Labs fall 2010 36 What Has Changed? 1xx 2xx 4xx 5xx Basic Clock System Basic Clock System + FLL, FLL + Unified Clock System UCS Core voltage same as supply voltage Core voltage same as supply voltage Core voltage same as supply voltage Programmable Core Voltage with integrated PMM 16-bit CPU 16-bit CPU, CPUX 16-bit CPU, CPUX 16-bit CPUXV2 GPIO GPIO w/ pull-up and pull-down GPIO GPIO w/pull-up and pull-down, drive strength N/A N/A N/A CRC16 Software RTC Software RTC Software RTC with Basic Timer, Basic Timer + RTC True 32-bit RTC w/Alarms USART USCI, USI USART, USCI USCI, USB, RF DMA up to 3-ch DMA up to 3-ch DMA up to 3-ch DMA up to 8-ch MPY16 MPY16 MPY16, MPY32 MPY32 ADC10,12 ADC10,12 ADC12 ADC12_A 4-wire JTAG 4-wire JTAG, some devices with Spy-Bi-Wire 4-wire JTAG 4-wire JTAG and Spy-BiWire 2010/10/1 Wireless Sensor Network And Labs fall 2010 37 F5xx vs. Prior MSP430 Generations 2xx 4xx 5xx CPU Clock (max) 16MHz 8MHz 25MHz *Active Current (3.0V, typ) 515uA @ 1MHz 4.2mA @ 8MHz 9.1mA @ 16MHz 600uA @ 1MHz 4.8mA @ 8MHz N/A 290uA @ 1MHz 1.84mA @ 8MHz 230 uA/MHz 8.90mA @ 25MHz 120KB / 8KB (Flash / RAM) 120KB / 8KB (Flash / RAM) 256KB / 16KB (Flash / RAM) Wake-up Time From LPM3 1us 6us 5us Standby LPM3 Current 0.9 – 1.1uA 1.1 – 2.5uA 2.6uA (with active true RTC) LPM4 Current 0.1uA 0.1uA 1.6uA (LPM4) / 0.1uA (LPM5) Flash ISP Minimum DVCC 2.2V 2.7V 1.8V Port I/O Interrupt Capability P1/P2 P1/P2 P1/P2 Some devices also P3/P4 Prog. Port Pin Drive Strength N/A N/A All port pins Prog. Pull-ups/-downs All port pins N/A All port pins Available MCLK Sources DCO LFXT1 XT2 (if available) VLO FLL LFXT1 XT2 (if available) N/A LFXT1 Available FLL Reference Clocks 2010/10/1 UCS FLL LFXT1 XT2 (if available) VLO REFO LFXT1, REFO, & XT2 (if available) Wireless Sensor Network And Labs fall 2010 38 MSP430 Roadmap FR57xx BGM, Catalog Production F53xx Development F51x2 16 MIPS 120 kB Flash 8 kB RAM 500 nA Standby 1.8 – 3.6V G = Value Line F = Flash FR = FRAM F23x0 F23x0 G2xx2 1xx-Catalog • • • • 8MIPS 60 kB Flash 10 kB RAM 1.8 – 3.6 V • • • • • • • F543xA F541x F15x-F16x F13x-F14x G2xx5 75+ devices 5xx-6xx F21x2 F20xx G2xx1 The New Generation RF USB F22xx F21x1 0.9V Native CC430 F552x F12xx FG461x Fx43x F44x F11xx Fx42x Fx42x0 F41x FE42x2 F41x2 Wireless Sensor Network And Labs fall 2010 25MIPS 256 kB Flash 16 kB RAM 1.8 – 3.6V FRAM, USB, RF 6xx: LCD Controller 160 uA/MIPS F471xx F43x Fx47x F47x4 USB L092 Lighting F261x F241x F23x-F24x 2xx-Catalog • • • • • F550x Gen Purpose 100+ devices 2010/10/1 FRAM F6/563x Device 100+ devices 4xx: LCD • • • • 16 MIPS 120 kB Flash 8 kB RAM LCD Controller, 160 segments • 1.8 – 3.6V 39 The eZ430 Family of MSP430 Tools The eZ430 is a tradition of low-cost, easy-to-use tools for MSP430 Options include RF, energyharvesting, RFID, even a wireless sports watch development kit! 2010/10/1 Wireless Sensor Network And Labs fall 2010 40 Programming Tools Parallel FET Supports ALL MSP430 devices Supports 4-Wire JTAG mode only Fixed output voltage of 2.8V No JTAG fuse blow Simple hardware circuit, possible to implement as part of a product USB FET Supports ALL MSP430 devices Supports 4-Wire and 2-Wire (Spy- Bi-Wire) JTAG Adjustable output voltage: 1.8 - 3.6V, 100mA JTAG fuse blow Fast operation 2010/10/1 Wireless Sensor Network And Labs fall 2010 41 Gang Programmer GANG430 2010/10/1 Wireless Sensor Network And Labs fall 2010 42 Target Boards for Device Programming 100-pin target board exclusive to the 2010/10/1 F543x(A) / F541x(A) devices Development board with 100-pin TSSOP (PW) ZIF socket (MSPTS430PZ5x100) All pins brought out to pin headers for easy access Programming via JTAG, Spy-bi-wire or BSL A FET board exists for most variants of MSP430 Only $49 Wireless Sensor Network And Labs fall 2010 43 MSP-EXP430FG4618 Experimenter Board Connector for CC1100/CC1101/ CC2500/CC2420 EMs Includes support for the CC2480 ZigBee Processor SW examples and function library available at www.ti.com/ccmsplib 2010/10/1 Wireless Sensor Network And Labs fall 2010 44 MSP430 Software Tools Wireless Networking Protocols Z-Stack (CC2520 + MSP430F5438 ZigBee) TI-MAC SimpliciTI (on MSP430 MediaWiki) DASH7 Wireless M-Bus 6LoPAN Example Code for the MSP-EXP430F5438 Experimenter Board (www.ti.com/msp430tools) Drivers for hardware peripherals, LCD, USB conn. Operating Systems uC-OSII IAR PowerPac Salvo 2010/10/1 FreeRTOS Wireless Sensor Network And Labs fall 2010 45 www.ti.com/msp430 User’s Guides Datasheets Code Libraries 100+ Application Reports 1000+ Code Examples Product Brochure Latest Tool Software 3rd Party Listing Silicon Errata 2010/10/1 Wireless Sensor Network And Labs fall 2010 46 2010/10/1 Wireless Sensor Network And Labs fall 2010 47 Typical PC Program # include # define ……. 1. Other sub-functions () main () { do something; wait for input; terminate; } 2010/10/1 External response (mouse/keyboard) Wireless Sensor Network And Labs fall 2010 48 Typical Structure of Our Program # include # define ……. main () { System and Peripherals initialization for(;;) // forever loop { 1. wait for interrupt(sleep) 2. do something after return from interrupt } 1. Peripherals initialization routines () 2. Other sub-functions () Internal/External Events (ISR) Interrupt Service Routines () { 1. Quickly do something or Setting flags } } 2010/10/1 Wireless Sensor Network And Labs fall 2010 49 Initialization Configure hardware into a proper state How to configure set registers Registers each hardware subsystem has its own registers store configuration, status, buffer, and etc. set these registers properly in order to get it works How to set the registers properly MSP430x1xx family user ‘s guide 2010/10/1 Wireless Sensor Network And Labs fall 2010 50 Interrupt A specific internal/external event occur that suspend current program Mostly, it is defined by you some exceptions, for example – reset Usually, you have to handle it immediately You have to define how to react while this event occur 2010/10/1 Wireless Sensor Network And Labs fall 2010 51 maskable/non-maskable Non-maskable interrupts Interrupts that cannot be disable eg. reset, oscillator fault Maskable interrupts Interrupts that can be disable in the program Most of the interrupts you need to handle is maskable 2010/10/1 Wireless Sensor Network And Labs fall 2010 52 What happen when it occur 1. 2. 3. 4. main() { for(;;) { MCU is executing or sleeping } } Set interrupt flag Main program suspended Store state variables Jump to ISR (ISR) Interrupt Service Routines () { 1. Quickly do something or setting flags } 2. Restore state variables 3. Return to main program, resume process Interrupt flag: a special register indicates a particular interrupt occur State variables: information CPU will need to resume to normal processing 2010/10/1 Wireless Sensor Network And Labs fall 2010 53 Where to Jump Memory Map of MSP430 Interrupt vector a special segment in the memory store the address of the ISR by following code Address of Interrupt Vector #progma vector=0xFFFA __interrupt void Timer_B0 (void) where is the interrupt vector 2010/10/1 specified in datasheet Wireless Sensor Network And Labs fall 2010 54 More than one More than one interrupts occur simultaneously serve higher priority first When one interrupt is being serve, it will disable the other interrupts means the other ISR cannot execute before this one finish if more than one occur while serving one interrupt wait until it finish, serve the highest priority one first You can enable interrupt in the ISR not recommended 2010/10/1 Wireless Sensor Network And Labs fall 2010 55 Masked twice While interrupt A is being serve, interrupt B occurred, twice when interrupt A is finished, the ISR of interrupt B will be serve, only once you miss one event!! KEEP YOUR ISR SHORT!!!! 2010/10/1 Wireless Sensor Network And Labs fall 2010 56 Protect Your Data Example: Packet receive interrupt occurred { 1. packet stored in a receive buffer 2. copy receive buffer to temporal buffer 3. return } In main program {In main program { 1. disable global interrupt 1. copy temporal buffer to some data structure 2. 2. enable processglobal data interrupt 3. } 4. process data } 2010/10/1 Wireless Sensor Network And Labs fall 2010 Another packet receive interrupt occurred in the middle of copying data 57 Software Architectures Round Robin with Interrupts for(;;) // forever loop { 1. wait for interrupt(sleep) if( Event 1 occurred) { do something } if( Event 2 occurred) { do something } if( Event 3 occurred) { do something } } Problem: no proirity 2010/10/1 (ISR) Interrupt Service Routines 1 () { 1. do critical things 2. set event 1 occurred flag } (ISR) Interrupt Service Routines 2 () { 1. do critical things 2. set event 2 occurred flag } (ISR) Interrupt Service Routines 3 () { 1. do critical things 2. set event 3 occurred flag } Wireless Sensor Network And Labs fall 2010 58 Software Architectures Function-Queue-Scheduling for(;;) // forever loop { 1. wait for interrupt(sleep) While (function queue is not empty) { call first function on queue } } (ISR) Interrupt Service Routines 1 () { 1. do critical things 2. put function_1 on queue } (ISR) Interrupt Service Routines 2 () { 1. do critical things 2. put function_2 on queue } (ISR) Interrupt Service Routines 3 () { 1. do critical things 2. put function_3 on queue } Worst wait for highest priority task bounded by the longest function 2010/10/1 Wireless Sensor Network And Labs fall 2010 59 Software Architectures Real-Time Operating System (RTOS) load an operating system into the MCU there are many RTOS available it is beyond the scope of this class 2010/10/1 Wireless Sensor Network And Labs fall 2010 60 How To Program FET (Flash Emulation Tool) A tool that allow you to program and debug MSP430 Connects to the JTAG port on MSP430 A generic term used in MSP430 world JTAG (Joint Test Action Group) IEEE 1149.1 standard: “standard Test Access Port and Boundary-Scan Architecture” A standard interface defined for testing and debugging 2010/10/1 Wireless Sensor Network And Labs fall 2010 61 Video 2010/10/1 Wireless Sensor Network And Labs fall 2010 62 TinyOS “System architecture directions for network sensors”, Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kristofer Pister . ASPLOS 2000, Cambridge, November 2000 System software for networked sensors Tiny Microthreading Operating System: TinyOS Component-based Event-driven TinyOS is written in nesC programming language 2010/10/1 Wireless Sensor Network And Labs fall 2010 63 Why TinyOS? TinyOS is very powerful Modern operating system and language techniques in an embedded system A lot of libraries, support code, and community development “TinyOS has a steep learning curve” It can take time to use all of its capabilities 2010/10/1 Wireless Sensor Network And Labs fall 2010 Slides from TinyOS-IPSN2009 nesC nesC programming language An extension to C Designed for sensor network nodes Basic concepts behind nesC Separation of construction and composition Many components, “wired”(link) those you want Component provide a set of interfaces Interfaces are bidirectional Command (down call), event (up call) nesC compiler signals the potential data races 2010/10/1 Wireless Sensor Network And Labs fall 2010 65 Support Multiple Platforms Hardware platforms eyesIFXv2, ETH Zurich TI MSP430F1611, Infineon TDA5250 Intelmote2, Intel PXA271 XScale Processor, TI (Chipcon) CC2420 Mica2, UCB Atmel128, TI (Chipcon) CC1000 Mica2dot, UCB Atmel128, TI (Chipcon) CC1000 Micaz, UCB Atmel128, TI (Chipcon) CC2420 Telosb, UCB (Taroko) MSP430F1611, TI (Chipcon) CC2420 Tinynode, EPFL Switzerland MSP430F1611, Semtech radio transceiver XE1205 Three different microcontrollers, four different radio transceivers and many other peripheral ICs 2010/10/1 Wireless Sensor Network And Labs fall 2010 66 Contiki Contiki – a dynamic operating system for networked embedded systems Loadable modules, multiple network stacks, multiple threading models Open source; 3-clause BSD licence Small memory footprint Designed for portability 14 platforms, 5 CPUs in current CVS code Many pioneering features Provides IP communication, both for IPv4 and IPv6. 2010/10/1 Wireless Sensor Network And Labs fall 2010 67 Demo http://www.youtube.com/watch?v=ievpE6nkj0Q 2010/10/1 Wireless Sensor Network And Labs fall 2010 68 2010/10/1 Wireless Sensor Network And Labs fall 2010 69 Something To Note You won't get very far without at least a very rudimentary understanding of electronics But electronics is a vast and complex field What we provide here is just some very basic principles We assume you have some common sense about electronics We will try to make it as simple as possible 2010/10/1 Wireless Sensor Network And Labs fall 2010 70 Voltage, Current and Power Voltage Symbol: V Unit: Volt, (V) Current Symbol: I Unit: Ampere, (A) Power P=V*I Unit: Watt, (W) 2010/10/1 Wireless Sensor Network And Labs fall 2010 71 DC and AC DC: Direct Current Definition: current that travels in one direction we usually refer to constant voltage AC: Alternating Current Definition: opposed to DC we usually refer to varying voltage DC component vs AC component DC component: average of signal AC component: the varying signal 2010/10/1 Wireless Sensor Network And Labs fall 2010 72 Relationship between V and I Ohm’s Law V=I*R Resistor Most widely used element Symbol: R Unit: Ohm (Ω) Schematic symbol: Variable resistor 2010/10/1 Wireless Sensor Network And Labs fall 2010 73 Resistors in series Resistors in series R = R1 + R2 = I1 I 2010/10/1 V1 I2 V V2 R1 V1 V R1 R 2 R2 V2 V R1 R 2 I I1 I 2 Wireless Sensor Network And Labs fall 2010 74 Resistors in parallel Resistor in parallel R = I1 I2 I 2010/10/1 V1 V2 V 1 1 R1 1 R2 R1 R2 R1 R2 V V1 V2 V R2 I1 I R 1 R 1 R 2 V R1 I2 I R 2 R 1 R 2 I I1 I 2 Wireless Sensor Network And Labs fall 2010 75 Capacitors Capacitor store charge Symbol: C Unit: Farads (F) Typical range we use is from μF to pF Circuit symbols Bipolar: no polarity Unipolar: has a positive and a negative lead 2010/10/1 Wireless Sensor Network And Labs fall 2010 76 Charge and discharge Apply a voltage charging Remove voltage discharging Provide a temporary voltage and current source Decoupling Stable the DC voltage source 2010/10/1 Wireless Sensor Network And Labs fall 2010 77 Diodes Pass a current in one direction, block it from another Symbol: D Forward voltage drop Vanode Vcathode A voltage different between anode and cathode Example For a typical voltage drop of 0.7V If Vanode is 3.3V, than Vcathode is 2.6V This value will be specified in datasheet 2010/10/1 Wireless Sensor Network And Labs fall 2010 78 LEDs Light-emitting diode (LED) Limited amount of current can pass through Will damage if current is too large Need a current-limiting resistor I R 3.3V Vanode Vcathode Ground Vcathode 3.3V Vvoltage_ drop 1.7V R V 1.7 85 I 0.02 If voltage drop of this LED is 1.6V, and we want 20mA pass through 2010/10/1 Wireless Sensor Network And Labs fall 2010 79 Other components Crystals Symbol: X, Y Switches symbols: SW Inductors symbol: L 2010/10/1 Wireless Sensor Network And Labs fall 2010 80 Understanding Schematic Net Labels Component Power Ports 2010/10/1 Nets Crossing Wireless Sensor Network And Labs fall 2010 Nets Cross Multiple Sheet 81 Real Schematic -- Taroko 2010/10/1 Wireless Sensor Network And Labs fall 2010 82 Reading Datasheet Every component should have a datasheet Contain every information about the component If you are designing you own embedded system Read it thoroughly and feel you understand Go back and reread it Get the latest datasheets and errata Lets take a look at the MSP430F1611 datasheet 2010/10/1 Wireless Sensor Network And Labs fall 2010 83 Next Two Labs Lab 1: GPIO Control LEDs Reading switches, keypads input Lab 2: Timer Generate different time interval Generate PWM signal, control servo motor 2010/10/1 Wireless Sensor Network And Labs fall 2010 84 LEDs This is a typical connection When P1.1 set to high DVcc = VP1.1 no current flow DVcc Vanode Vcathode When P1.1 set to low VP1.1 = 0 Current flow through, turn on the LED R GPIO can use as an On/Off control 2010/10/1 Wireless Sensor Network And Labs fall 2010 85 Switches A B Operation Open: A and B are not connected in normal state Close: When you press the button, A and B are connected Typical circuit When the switch is open, voltage of USERINT stay at high When the switch is close, voltage of will be low 2010/10/1 Wireless Sensor Network And Labs fall 2010 86 Keypad This is a 3x4 matrix keypad When you press a button, a pin in X and a pin in Y is connected How to interface to MSP430? 2010/10/1 Wireless Sensor Network And Labs fall 2010 87 Next Two Labs Lab 1: GPIO Control LEDs Reading switches, keypads input Lab 2: Timer Generate different time interval Generate PWM signal, control servo motor 2010/10/1 Wireless Sensor Network And Labs fall 2010 88 Time Intervals Generate different time intervals Flash different LED with different time interval 2010/10/1 Wireless Sensor Network And Labs fall 2010 89 Robot Car Servo motors Robot Power (Vcc) Red Robot Ground (GND) Black Robot Signal White Battery Ground Black Battery Power Red 2010/10/1 Wireless Sensor Network And Labs fall 2010 90 Pulse Width Modulation Pulse width Pulse Period Pulse Width Modulation (PWM) varying the pulse width Usage of PWM Control motor, telecommunication, voltage regulation, and etc. 2010/10/1 Wireless Sensor Network And Labs fall 2010 91 Servo Motor A PWM input controls it angular position Pulse width = 1.5 ms; position = 90o (neutral) Pulse Example Pulse width pulse width = 1.25 ms; position = 0o pulse width = 1.75 ms; position = 180o Varies between brands and models The servo motor we used is Continuous Period ≈ 20 ms Rotation model Other models will just move to the programmed position and stop 2010/10/1 Wireless Sensor Network And Labs fall 2010 92 Control Servo Motor Pulse width Pulse Period ≈ 20 ms The servo motors we used are 1.5 ms neutral If pulse width = 1.5 ms stop If pulse width > 1.5 ms rotate in one direction If pulse width < 1.5 ms rotate in another direction 2010/10/1 Wireless Sensor Network And Labs fall 2010 93 Install IAR We will begin our labs next week Install the programming software ahead Go to www.ti.com Click Microcontroller In MSP430 menu, click Tools & Software Find IAR-KICKSTART and click on it Download software and install 2010/10/1 Wireless Sensor Network And Labs fall 2010 94