1 / 34

LHO 13

LHO 13. The 8051CF020 and the University Daughter Card. Resources. https://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F02x.pdf University Daughter Card User Manual Embedded_Programming_Textbook.zip. Standard 8051. C8051F020. I/O Ports.

marisa
Télécharger la présentation

LHO 13

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. LHO 13 The 8051CF020 and the University Daughter Card

  2. Resources • https://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F02x.pdf • University Daughter Card User Manual • Embedded_Programming_Textbook.zip

  3. Standard 8051

  4. C8051F020

  5. I/O Ports • Ports 0, 1, 2 and 3 are bit- and byte-addressable • Four additional ports (4, 5, 6 and 7) are byte-addressable only • There are a total of 64 general purpose port I/O pins • Access to the ports is possible through reading and writing the corresponding port data registers (P0, P1, etc.) • All port pins are 5 V tolerant and support configurable input/output modes and weak pull-ups • In addition, the pins on Port 1 can be used as analog inputs to ADC1

  6. The Digital Crossbar • The digital crossbar is essentially a large digital switching network that allows mapping of internal digital peripherals to the pins on Ports 0 to 3 • This is achieved by configuring the crossbar control registers XBR0, XBR1 and XBR2 • Allows the system designer to select the exact mix of GPIO and digital resources needed for the particular application

  7. 12-Bit Analog-to-Digital Converter (ADC0) • On-chip 12-bit successive approximation register (SAR) analog-to-digital converter (ADC0) • 9-channel input multiplexer and programmable gain amplifier • The ADC is configured via its associated special function registers • One input channel is tied to an internal temperature sensor, while the other 8 channels are available externally

  8. 8-Bit Analog-to-Digital Converter (ADC1) • On-board 8-bit SAR analog-to-digital converter (ADC1) • Port 1 can be configured for analog input • 8-channel input multiplexer and programmable gain amplifier • The ADC is configurable via its configuration SFRs

  9. Digital-to-Analog Converters • Two 12-bit digital-to- analog converters: DAC0 and DAC1 • The DAC voltage reference is supplied via the dedicated VREFD input pin • The DACs are especially useful as references for the comparators

  10. Comparators • There are two analog comparators on chip: CP0 and CP1 • The comparators have software programmable hysteresis • Generate an interrupt on its rising edge, falling edge or both • The comparators' output state can also be polled in software and programmed to appear on the lower port I/O pins via the crossbar

  11. Voltage Reference for ADC and DAC • A voltage reference has to be used when operating the ADC and DAC • Three external voltage reference input pins: VREF0, VREF1 and VREFD • ADC0 may also reference the DAC0 output internally • ADC1 may also reference the analog power supply voltage (AV+)

  12. Internal Voltage Reference Generator • The internal voltage reference circuit consists of a 1.2 V band-gap voltage reference generator and a gain-of-two output buffer amplifier (2.4 V output) • The internal reference may be routed via the VREF pin to external system components or to the voltage reference input pins • The reference control register, REF0CN, enables/disables the internal reference generator and selects the reference inputs for ADC0 and ADC1

  13. ToolStick UniDC Hardware Overview DIP Switches P4 Push-button Switches P5[3..0] LEDs P5[7..4] Power LED Indicates 3.3V is available Prototype Area Reset Switch I/O Pins P0[7..2], P1, P2 Target MCU C8051F020 Analog I/O Pins Crystal 22.1184 MHz Potentiometer Linear output that sweeps from 0V to 3.3V

  14. Handling The ToolStick • Caution: The modular ToolStick components are not encased in plastic. This makes both the base adapter (BA) and the daughter cards (DC) susceptible to electrostatic discharge (ESD) damage. • Follow these recommendations to protect the hardware • Never connect or disconnect a ToolStick daughter card from the base adapter while connected to a PC • Always connect or disconnect a ToolStick by holding the large plastic connector or the edges of the boards • Be careful when using the mechanical components, such as the potentiometers, so as to not stress the connectors

  15. Handling The ToolStick The Wrong way to hold the ToolStick

  16. Handling The ToolStick The Correct way to hold the ToolStick

  17. Consider a simple program #include <c8051f020.h> // SFR declarations extern void Init(void); // in udc_init,c extern void wr_leds(unsigned char); // in unc_init.c extern unsigned char rd_buttons(void); // in unc_init.c void main (void) { Init(); // call to external function initialize UDC while(1) { wr_leds(rd_buttons()); // call external functions } }

  18. //udc_init.c - version 1.0 #include <c8051f020.h> // SFR declarations //---------------------------------------------------- // Init - Configure UDC // Returns : None // Parameters : None //----------------------------------------------------- void Ext_Osc_Init(void); // switch clock to XTAL void init_crossbar(void); void init_ports(void);

  19. void Init (void) { // Disable interrupts EA = 0; // Disable watchdog timer WDTCN = 0xde; WDTCN = 0xad; // Enable crossbar switch init_crossbar(); // Set up ports init_ports(); Ext_Osc_Init(); // Use external XTAL }

  20. //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- // Init_crosbar - Configure crossbar switch // Returns : None // Parameters : None //----------------------------------------------------------------------------- void init_crossbar (void) { XBR0 = 0x04; // Enable UART 0 TX to P0.0, RX to P0.1 XBR1 = 0x80; // Output system clock to P0.2 P74OUT = 0x08; // Set P5(7_4) to push pull output XBR2 = 0x40; // Enable cross bar }

  21. XBR2 = 0x40; // Enable cross bar

  22. XBR0 = 0x04; // Enable UART 0 TX to P0.0, RX to P0.1

  23. XBR1 = 0x80; // Output system clock to P0.2

  24. P74OUT = 0x08; // Set P5(7_4) to push pull output

  25. XBR2 = 0x40; // Enable cross bar

  26. void init_ports(void) { P0MDOUT = 0x04; //Set P0.2 (sys clk) to push pull for fast rise time P1MDOUT = 0x00; P2MDOUT = 0xFF; //Set P2 to push pull for fast rise times P3MDOUT = 0x00; P5 = 0x0f; //TURN ON LEDS }

  27. void wr_leds(unsigned char leds) { P5 = (leds << 4) | 0x0f; } unsigned char rd_buttons(void) { unsigned char btns; btns = (~P5) & 0x0f; return(btns); }

More Related