ubc104 embedded systems l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
UBC104 Embedded Systems PowerPoint Presentation
Download Presentation
UBC104 Embedded Systems

Loading in 2 Seconds...

  share
play fullscreen
1 / 38
bart

UBC104 Embedded Systems - PowerPoint PPT Presentation

173 Views
Download Presentation
UBC104 Embedded Systems
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. UBC104 Embedded Systems Microcontroller / 8051 family

  2. Topics for Today • Microcontrollers • Memory • Registers • Ports UBC 104 Embedded Systems

  3. Processors • General purpose processors: • 80386 • Pentium • Core Duo • Large number of pins • External memory • External peripherals * Figure from Intel 386 DX Datasheet UBC 104 Embedded Systems

  4. Functions of Pins • Designed to be generic • Indented to move data around * Figure from Intel 386 DX Datasheet UBC 104 Embedded Systems

  5. General Purpose Registers • Registers are dedicated for moving data • EAX, EBX, ECX, EDX: general purpose registers • EBP: Base pointer • ESP: Stack pointer • ESI, EDI: Index register UBC 104 Embedded Systems

  6. Pentium • Bigger, better, more * Figure from Intel Pentium Datasheet UBC 104 Embedded Systems

  7. Microcontrollers • Support for peripherals inside uController • Limited number of pins • Dedicated purpose • Controlling devices, taking measurements UBC 104 Embedded Systems

  8. Microcontroller Families • 68H12: Motorola 68H11, 68HC12, … • 8051: Intel 8051, 8052, 80251,… • PIC: Microchip PIC16F628, 18F452, 16F877, … • AVR: Atmel ATmega128, ATtiny28L, AT90S8515,… UBC 104 Embedded Systems

  9. Rita51J • 8051 • 128K of SRAM • 128K FLASH ROM • Serial port • Digital I/O lines * Figure from www.rigelcorp.com UBC 104 Embedded Systems

  10. Motes • Sensor nodes based on Atmel ATMega128 * Figures from CrossbowMPR-MIBUser Manual UBC 104 Embedded Systems

  11. AT91SAM7P64 • 16/32 bit ARM7TDMI • 64K Bytes Program Flash, 16K Bytes RAM, • USB 2.0 • 10 bit ADC 384 ksps 2x UARTs • I2C, SPI • 3x 32bit TIMERS • 4x PWM, WDT * Figure from www.olimex.com UBC 104 Embedded Systems

  12. AT91SAM7P64 * Figure from www.olimex.com UBC 104 Embedded Systems

  13. Microcontroller Families • 68H12: Motorola 68H11, 68HC12, … • 8051: Intel 8051, 8052, 80251,… • PIC: Microchip PIC16F628, 18F452, 16F877, … • AVR: Atmel ATmega128, ATtiny28L, AT90S8515,…  We are going to look at 8051s UBC 104 Embedded Systems

  14. 8051 History • Introduced 1980 • 12 MHz • 128 bytes Internal RAM • 4 kbytes ROM • 1 Serial port support UBC 104 Embedded Systems

  15. Typical features of modern 8051 • 32 input / output lines. • Internal data (RAM) memory - 256 bytes. • Up to 64 kbytes of ROM memory (usually flash) • Three 16-bit timers / counters • 9 interrupts (2 external) with two priority levels. • Low-power Idle- and Power-down modes UBC 104 Embedded Systems

  16. 8051 Manufacturers • AMD: Enhanced 8051 parts (no longer producing 80x51 parts) • Atmel: FLASH and semi-custom parts • Dallas: Battery backed, program download, and fastest variants • Intel: 8051 through 80c51gb / 80c51sl • ISSI: IS80C51/31 runs up to 40MHz • Matra: 80c154, low voltage static variants • OKI: 80c154, mask parts • Philips87c748 thru 89c588 - more variants than anyone else • now NXP • Siemens: 80c501 through 80c517a, and SIECO cores • SMC: COM20051 with ARCNET token bus network engine • SSI: 80x52, 2 x HDLC variant for MODEM use from http://www.faqs.org/faqs/microcontroller-faq/8051/ UBC 104 Embedded Systems

  17. Selection of Atmel 8051Devices * Figure from Atmel Function Spreadsheet UBC 104 Embedded Systems

  18. Datasheets – Your New Friends! * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  19. Packaging • Plastic Dual In-Line package (PDIL) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  20. Packaging I • Very small Quad Flat Package (VQFP) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  21. Packaging II • Plastic Leaded Chip Carrier (PLCC) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  22. Packaging UBC 104 Embedded Systems

  23. Pin-Out of an 8051 UBC 104 Embedded Systems

  24. 8051 Components • Ports • RAM • Interrupt Controller • Timer • SPI Controller * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  25. MCBX51 Board UBC 104 Embedded Systems

  26. MCBx51 Board * Figure from MCBx51 Datasheet UBC 104 Embedded Systems

  27. 8051 Internal RAM * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  28. Special Function Registers (SFRs) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  29. Special Function Registers (SFR) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  30. Special Function Registers (SFR) * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  31. * Figure from Atmel AT89C51RD2 Datasheet UBC 104 Embedded Systems

  32. Pin-Out of an 8051 UBC 104 Embedded Systems

  33. Ports • Driving low-power peripherals ie. LEDs, relays UBC 104 Embedded Systems

  34. Port Defintion in Header Files #define Sfr(x, y) sfr x = y #define Sbit(x, y, z) sbit x = y^z #define Sfr16(x,y) sfr16 x = y /* BYTE Register */ Sfr (P0 , 0x80); Sbit (P0_7 , 0x80, 7); Sbit (P0_6 , 0x80, 6); Sbit (P0_5 , 0x80, 5); Sbit (P0_4 , 0x80, 4); Sbit (P0_3 , 0x80, 3); Sbit (P0_2 , 0x80, 2); Sbit (P0_1 , 0x80, 1); Sbit (P0_0 , 0x80, 0); Sfr (P1 , 0x90); Sbit (P1_7 , 0x90, 7); Sbit (P1_6 , 0x90, 6); Sbit (P1_5 , 0x90, 5); UBC 104 Embedded Systems

  35. Philips ARM LPC Example void Initialize() { /* Initialize PLL */ /* Setting Multiplier and divider values */ PLLCFG=0x25; feed(); /* Enabling the PLL */ PLLCON=0x1; feed(); /* Wait for the PLL to lock to set frequency */ while(!(PLLSTAT & PLOCK)){} /* Connect the PLL as the clock source */ PLLCON=0x3; feed(); ... UBC 104 Embedded Systems

  36. Another Example static unsigned short ADC_Read (unsigned char ch) { unsigned int i; ADCR = 0x00200300 | ch; // Init ADC & select channel ADCR |= 0x01000000; // Start A/D Conversion do { i = ADDR; // Read A/D Data Register } while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value } UBC 104 Embedded Systems

  37. Accessing Ports in C void main (void) { unsigned int i; /* Delay var */ unsigned char j; /* LED var */ while (1) { /* Loop forever */ for (j=0x01; j< 0x80; j<<=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */ P1 = j; /* Output to LED Port */ for (i = 0; i < 10000; i++) { /* Delay for 10000 Counts */ wait (); /* call wait function */ } } for (j=0x80; j> 0x01; j>>=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */ P1 = j; /* Output to LED Port */ for (i = 0; i < 10000; i++) { /* Delay for 10000 Counts */ wait (); /* call wait function */ } } } } UBC 104 Embedded Systems

  38. Exercise 4 • Becoming familiar with the development environment: • Simulation & Execution on board • Debugging • Using peripherals Ports • Using low-level C e.g. bit-level operations UBC 104 Embedded Systems