Download presentation
Presentation is loading. Please wait.
Published byGeorgiana Briggs Modified over 9 years ago
1
1 LHO 13 The 8051CF020 and the University Daughter Card
2
2 Resources https://www.silabs.com/Support%20Docum ents/TechnicalDocs/C8051F02x.pdfhttps://www.silabs.com/Support%20Docum ents/TechnicalDocs/C8051F02x.pdf University Daughter Card User Manual Embedded_Programming_Textbook.zip
3
3 Peak throughput25 MIPS FLASH program memory64 K On-chip data RAM4352 bytes Full-duplex UARTSx 2 16-bit timersx 5 Digital I/O ports64-pin 12-bit 100 ksps ADC8 channels 8-bit 500 ksps ADC8 channels DAC resolution12-bit DAC outputsx 2 Analog comparatorsx 2 Interrupts2 levels PCA (programmable counter arrays)5 channels Internal oscillator25 Mhz Debug circuitry
4
4 Standard 8051
5
5 C8051F020
6
6
7
7
8
8
9
9 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
10
10 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
11
11 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
12
12 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
13
13 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
14
14 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
15
15 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+)
16
16 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
17
17 ToolStick UniDC Hardware Overview I/O Pins P0[7..2], P1, P2 Potentiometer Linear output that sweeps from 0V to 3.3V Target MCU C8051F020 Power LED Indicates 3.3V is available Reset Switch Analog I/O Pins Push-button Switches P5[3..0] LEDs P5[7..4] DIP Switches P4 Crystal 22.1184 MHz Prototype Area
18
18 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
19
19 Handling The ToolStick The Wrong way to hold the ToolStick
20
20 Handling The ToolStick The Correct way to hold the ToolStick
21
21
22
22
23
23 Consider a simple program #include // 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 }
24
24 //udc_init.c - version 1.0 #include // 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);
25
25 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 }
26
26
27
27 //----------------------------------------------------------------------------- // 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 }
28
28 XBR2 = 0x40; // Enable cross bar
29
29 XBR0 = 0x04; // Enable UART 0 TX to P0.0, RX to P0.1
30
30 XBR1 = 0x80; // Output system clock to P0.2
31
31 P74OUT = 0x08; // Set P5(7_4) to push pull output
32
32 XBR2 = 0x40; // Enable cross bar
33
33 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 }
34
34 unsigned char rd_buttons(void) { unsigned char btns; btns = (~P5) & 0x0f; return(btns); } void wr_leds(unsigned char leds) { P5 = (leds << 4) | 0x0f; }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.