1 / 52

Chapter 10 – eZ430X

Chapter 10 – eZ430X. +. Topics to Cover…. MSPF2274 eZ430X Development Board Peripherals Peripheral Devices Low Pass Filter Headers Jumpers Simon Lab Coding Assembler. MSP430F2274. MSP430 Typical Applications. Handheld Measurement Air Flow measurement Alcohol meter Barometer

betsyp
Download Presentation

Chapter 10 – eZ430X

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10 – eZ430X +

  2. Topics to Cover… • MSPF2274 • eZ430X Development Board • Peripherals • Peripheral Devices • Low Pass Filter • Headers • Jumpers • Simon Lab • Coding Assembler Chapter 10 - eZ430X

  3. MSP430F2274 MSP430 Typical Applications Handheld Measurement • Air Flow measurement • Alcohol meter • Barometer • Data loggers • Emission/Gas analyser • Humidity measurement • Temperature measurement • Weight scales Medical Instruments • Blood pressure meter • Blood sugar meter • Breath measurement • EKG system Utility Metering • Gas Meter • Water Meter • Heat Volume Counter • Heat Cost Allocation • Electricity Meter • Meter reading system (RF) Sports equipment • Altimeter • Bike computer • Diving watches Security • Glass break sensors • Door control • Smoke/fire/gas detectors Home environment • Air conditioning • Control unit • Thermostat • Boiler control • Shutter control • Irrigation system • White goods (Washing machine,..) Misc • Smart card reader • Taxi meter • Smart Batteries Chapter 10 - eZ430X

  4. MSP430F2274 MSP430 Roadmap Chapter 10 - eZ430X

  5. MSP430F2274 IMPORTANT!!! Beware of static electricity, don't touch the components directly. Never disconnect a target board from the USB programmer if still plugged into the computer or from the battery unit with jumper on. Otherwise you destroy the board! Chapter 10 - eZ430X

  6. MSP430F2274 MSP430F2274 Chapter 10 - eZ430X

  7. eZ430X Development Board eZ430X Development Board Transponder Servos Ferrite RAM USB Programmer Thermistor Configuration Stakes Accelerometer MSP430F2274 Potentiometer Battery Power LEDs LCD Push Buttons Speaker Chapter 10 - eZ430X

  8. eZ430X Development Board eZ430X Development Board Chapter 10 - eZ430X

  9. eZ430X Development Board Computrol Facilities Chapter 10 - eZ430X

  10. eZ430X Development Board Printed Circuit Boards Chapter 10 - eZ430X

  11. eZ430X Development Board Apply Solder Paste Chapter 10 - eZ430X

  12. eZ430X Development Board Robots Place Parts Chapter 10 - eZ430X

  13. eZ430X Development Board Discrete Parts Added Chapter 10 - eZ430X

  14. eZ430X Development Board Flow Soldered Chapter 10 - eZ430X

  15. eZ430X Development Board 276 Solder Bath Chapter 10 - eZ430X

  16. eZ430X Development Board Final Inspection Chapter 10 - eZ430X

  17. Peripherals Peripherals • A/D Converter (ADC10) • Operational Amps (OA0-3) (Not covered) • Ports (P1-P4) • Power Module • Digitally Controlled Oscillator (DCO) • Very Low Frequency Oscillator (VLO) • Timers A/B • USCI A/B • USART – Universal Serial Asynchronous Rx/Tx • SPI – Serial Peripheral Interface • i2c – Inter-Integrated Circuit • Watchdog+ Chapter 10 - eZ430X

  18. Peripherals ADC10 High-performance 10-bit analog-to-digital conversions • More than 200k samples/sec • Programmable sample & hold • Initiation by software or Timer_A • 8 external input channels • Selectable voltage reference (1.5v or 2.5v) • Internal storage Chapter 10 - eZ430X

  19. Port1 Port3 Port2 Port4 Function Select Register PxSEL yes yes Interrupt Edge Select Register PxIES yes no Interrupt Enable Register PxIE yes no Interrupt Flag Register PxIFG yes no Direction Register PxDIR yes yes Output Register PxOUT yes yes Input Register PxIN yes yes 7 6 5 4 3 2 1 0 Peripherals Digital I/O Independently programmable individual I/Os • 4 ports (P1 – P4) • Each has 8 I/O pins • Each pin can be configured as input or output • P1 and P2 pins can be configured to assert an interrupt request Chapter 10 - eZ430X

  20. Peripherals Timer_A/B Timer_A/B are 16-bit timer/counters with three capture/compare registers • Capture external signals • Compare PWM mode • SCCI latch for asynchronous communication Chapter 10 - eZ430X

  21. Peripherals USART Serial Port The Universal Synchronous/Asynchronous Receive/Transmit peripheral interface supports two serial modes with one hardware module • UART • SPI (Synchronous Peripheral Interface) • I2C (Inter-Integrated Circuit) • Double-buffered • Baud-rate generator Chapter 10 - eZ430X

  22. I2c – Inter-Integrated Circuit • Inter-Integrated Circuit • 2-wire serial interface (Serial data SDA, Serial clock SCL) • master/slave (slaves have unique 7-bit address) • 100-400 kbit/sec (relatively slow) • Master provides clock Slave acknowledgment Stop condition Start condition Write SDA Chapter 10 - eZ430X SDA stable Read SDA SDA may change

  23. Watchdog Timer WDT module performs a controlled system restart after a software problem occurs • Can serve as an interval timer (generates interrupts) • WDT Control register is password protected • Note: Powers-up active Chapter 10 - eZ430X

  24. Peripheral Devices Peripheral Devices • Switches (Push Buttons) • LED’s (2 + 4) • LCD (100 x 160 pixels) • FRAM (8 kb) • LCD Backlight • Potentiometers (Left & Right) • Thermistor (10k ) • Accelerometer (3-axis ADXL345) • Sonar Transponder (Optional) Chapter 10 - eZ430X

  25. Peripheral Devices Switches • Switches • P2.0-3 • Internal pull-ups • Require debouncing Chapter 10 - eZ430X

  26. Peripheral Devices LED’s • LED’s • P2.0-1, P3.3, P4.6 • Use PWM for brightness • 0 = OFF, 1 = ON Chapter 10 - eZ430X

  27. Peripheral Devices LCD • LCD - 100 x 160 pixels transflective display • Transflective polarizers have both reflecting and transmitting properties and offer the most versatile viewing characteristics. • They can be viewed in direct sunlight and when combined with a backlight in low light conditions. Chapter 10 - eZ430X

  28. Page 13 Page 12 Page 11 Page 10 Page 9 Page 8 Page 7 Page 6 Page 5 Page 4 Page 3 Page 2 Page 1 Page 0 Peripheral Devices LCD • LCD - 100 x 160 pixels display Y (0-99)  X (0-159)  Chapter 10 - eZ430X

  29. Peripheral Devices LCD • lcd.c Prototypes • int lcd_init(void); • void lcd_volume(int volume); • void lcd_backlight(int backlight); • int lcd_display(int mode); • void lcd_clear(int value); • void lcd_image(const unsigned char* image, int column, int page); • void lcd_blank(int column, int page, int width, int height); • void lcd_cursor(int column, int page); • char lcd_putchar(char c); • void lcd_printf(char* fmt, ...); Chapter 10 - eZ430X

  30. Peripheral Devices FRAM • FRAM • Ferroelectric Non-volatile RAM • 8192 x 8 bits • 45 year retention • i2c serial bus • Unlimited R/W cycles Y  X  Chapter 10 - eZ430X

  31. Peripheral Devices LCD/FRAM - Graphics • graphics.c • int lcd_FRAM_init(void); • void lcd_circle(int x0, int y0, int r0); • unsigned char lcd_point(unsigned int x, unsigned int y, int flag); • int FRAM_init(int size, int data); • unsigned char FRAM_read(unsigned int address); • int FRAM_write(unsigned int address, unsigned char datum); • int read_FRAM_point(unsigned int x, unsigned int y); • int write_FRAM_point(unsigned int x, unsigned int y, int value); Chapter 10 - eZ430X

  32. Peripheral Devices LCD Backlight • LCD Backlight • P4.2 / TA2 (Jumper F) • Use PWM for dimming // configure Timer_A: SMCLK, /1, up/down mode #define BACKLIGHT_FREQUENCY 4 #define BL_INCREMENT 1 TAR = 0; // reset TAR TACTL = TASSEL_2+ID_0+MC_1; TACCTL2 = OUTMOD_3; // output mode = set/reset TACCR0 = BACKLIGHT_FREQUENCY; // set frequency TACCR2 = 1; // set duty cycle P2SEL |= 0x10; // select TA2 Chapter 10 - eZ430X

  33. Peripheral Devices Potentiometers • Potentiometers • Use VREF+ (2.5v) internal reference and Vss (GND) • Linear potentiometers return 0-1023 values • ADC10 Channels: • 12 = left potentiometer (P4.4, Jumper A1) • 13 = right potentiometer (P4.3, Jumper G1) int ADC_read(int channel) { ADC10CTL0 = SREF0 + ADC10SHT_2 + ADC10ON + REFON + REF2_5V; P4DIR &= ~0x08; // P4.3 P4SEL |= 0x08; // A12 ADC10AE0 |= 0x00; ADC10AE1 = 0x10; // A12 ADC10 function and enable ADC10CTL1 = channel << 12; ADC10CTL0 |= ENC + ADC10SC; // sampling and conversion start while (!(ADC10CTL0 & ADC10IFG)); // wait until conversion return ADC10MEM; } // end ADC_sample Chapter 10 - eZ430X

  34. Peripheral Devices Thermistor • Thermistor • 10k thermistor • Non-linear resistance • ADC10 Channels: • 10 = internal temperature • 15 = thermistor (Jumper C1) int ADC_read(int channel) { ADC10CTL0 = SREF0 + ADC10SHT_2 + ADC10ON + REFON + REF2_5V; P4DIR &= ~0x40; // A15 = P4.6 P4SEL |= 0x40; ADC10AE0 |= 0x00; ADC10AE1 = 0x80; // A15 ADC10 function and enable ADC10CTL1 = channel << 12; ADC10CTL0 |= ENC + ADC10SC; // sampling and conversion start while (!(ADC10CTL0 & ADC10IFG)); // wait until conversion return ADC10MEM; } // end ADC_sample Chapter 10 - eZ430X

  35. Peripheral Devices Accelerometer • ADXL345 Accelerometer • 3-axis acceleration, 2 g, 4 g, 8 g, or 16 g • Dynamic acceleration (motion) • Static acceleration (gravity) • Polysilicon surface-micromachined structure Chapter 10 - eZ430X

  36. Peripheral Devices Sonar Transponder • MaxBotix EZ0/1 Sonar Transponder • Sonar range from 6 to 254 inches (1 inch resolution) • Analog/serial digital output Chapter 10 - eZ430X

  37. Filters Low Pass Filter • Digital equivalent of an analog low pass RC filter unsigned int lowpass_filter(unsigned int input, unsigned int* delay) { // Update filter with current sample. *delay += input - (*delay >> FILTER_SHIFT); // Scale output for unity gain. return *delay >> FILTER_SHIFT; } Chapter 10 - eZ430X

  38. Headers J1 Header Chapter 10 - eZ430X

  39. Jumpers Jumpers Chapter 10 - eZ430X

  40. Simon Lab "Write a MSP430 assembly language program to play the game of Simon. Each round of the game is started by flashing the LEDs several times. The colored LEDs (along with the associated tones) are then flashed one at a time in a random sequence. Sample the push button switches and count the number of colors (tones) correctly entered in the same order as the original sequence. Continue until the end of the sequence is reached or a mistake is made. Play some congratulatory tune if the sequence is correct or some raspberry sound if a mistake is made. If the sequence is successfully reproduced, restart the game adding one more color/tone to the sequence. Otherwise, restart a new sequence. Use Timer_B output (TB2) for hardware PWM of the magnetic buzzer." Chapter 10 - eZ430X

  41. Coding Assembler How To Code Assembler… • Understand the problem (obviously) • Until you are comfortable in assembly, (and even afterwards), write out your solution in something familiar • English • Flowchart • Pseudo-code • Java, C, Ruby – the pseudo-code doesn’t really matter! • Then, translate to assembler Chapter 10 - eZ430X

  42. Coding Assembler Three Basic Constructs Chapter 10 - eZ430X

  43. Coding Assembler if-then-else Translation • if-then-else cmp.w #1,&buzzerON ; jne myElse ; xor.b #0x20,&P4OUT ; bis.b #0x02,&P1OUT ; jmp myNext ; myElse: ; bic.b #0x02,&P1OUT ; ; myNext: ; if (buzzerON == 1) { pulse_buzzer(); turn_on_LED(); } else { turn_off_LED(); } Chapter 10 - eZ430X

  44. Coding Assembler while Translation • while loop… ; while_loop: ; bis.w #Z,SR ; jnz while_done ; call #LED_ON ; call #delay ; call #LED_OFF ; call #delay ; jmp while_loop ; while_done: ; #define TRUE 1 while (TRUE) { LED_ON(); delay(); LED_OFF(); delay(); } Chapter 10 - eZ430X

  45. Coding Assembler switch/case Translation • switch/case cmp.w #DOT,&myByte ; jne sw_01 ; call #do_dot ; jmp sw_end ; sw_01: cmp.w #DASH,&myByte ; jne sw_end ; call #do_dash ; jmp sw_end ; ; sw_end: ; switch (myByte) { case DOT: do_dot(); break; case DASH: do_dash(); break; default: } Chapter 10 - eZ430X

  46. Coding Assembler for-loop Translation • for-loop int i; for(i=0; i<10; i++) { do_dot(); delay(); do_dash(); delay(); } .bss i,2 ; mov.w #0,&i ; fl_ck: cmp.w #10,&i ; jge for_done ; call #do_dot ; call #delay ; call #do_dash ; call #delay ; add.w #1,&i ; jmp fl_ck ; for_done: ; Chapter 10 - eZ430X

  47. Chapter 10 - eZ430X

  48. Pulse Width Modulation (H/W) TxCCTLx Control Register Chapter 10 - eZ430X

  49. Pulse Width Modulation (H/W) Timer_A/B Output modes Chapter 10 - eZ430X

  50. Pulse Width Modulation (H/W) Timer_B PWM Example • Use PWM w/Timer B for transducer tones: ; reset TimerB clr.w &TBR ; SMCLK, /1, up mode (no interrupts) mov.w #TBSSEL_2+ID_0+MC_1,&TBCTL ; TB2 output mode = set/reset mov.w #OUTMOD_3,&TBCCTL2 ; load tone (frequency) mov.w &DO,&TBCCR0 ; load volume (duty cycle) mov.w #DO/2,&TBCCR2 Chapter 10 - eZ430X

More Related