C8051F502-IMR Silicon Laboratories Inc, C8051F502-IMR Datasheet - Page 203

no-image

C8051F502-IMR

Manufacturer Part Number
C8051F502-IMR
Description
MCU 8-Bit C8051F50x 8051 CISC 64KB Flash 2.5V/3.3V/5V 32-Pin QFN EP T/R
Manufacturer
Silicon Laboratories Inc
Datasheet

Specifications of C8051F502-IMR

Package
32QFN EP
Device Core
8051
Family Name
C8051F50x
Maximum Speed
50 MHz
Ram Size
4.25 KB
Program Memory Size
64 KB
Operating Supply Voltage
2.5|3.3|5 V
Data Bus Width
8 Bit
Program Memory Type
Flash
Number Of Programmable I/os
25
Interface Type
I2C/SPI/UART
On-chip Adc
32-chx12-bit
Operating Temperature
-40 to 125 °C
Number Of Timers
4

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
C8051F502-IMR
0
Use the following equations to calculate the values for the variables for the baud-rate equation:
In all of these equations, the results must be rounded down to the nearest integer.
The following example shows the steps for calculating the baud rate values for a Master node running at
24 MHz and communicating at 19200 bits/sec. First, calculate the multiplier:
Next, calculate the prescaler:
Finally, calculate the divider:
These values lead to the following baud rate:
The following code programs the interface in Master mode, using the Enhanced Checksum and enables
the interface to operate at 19230 bits/sec using a 24 MHz system clock.
LIN0CF
LIN0CF
LIN0ADR
// Initialize the register (prescaler, multiplier and bit 8 of divider)
LIN0DAT
LIN0ADR
LIN0DAT
LIN0ADR
LIN0DAT
LIN0ADR
LIN0DAT
|= 0x40;
= 0x80;
= 0x0D;
= ( 0x01 << 6 ) + ( 0x00 << 1 ) + ( ( 0x138 & 0x0100 ) >> 8 );
|= 0x80;
= 0x0C;
= (unsigned char)_0x138;
= 0x0B;
= 0x08;
= 0x0C;
prescaler
divider
prescaler
divider
baud_rate
=
=
------------------------------------------------------------------------------------------------------------------------------------- -
2
=
multiplier
=
ln
prescaler
ln
---------------------------------------------------------------------- -
2
------------------------------------------------------------------------------------------------
-----------------------------------------------------------
multiplier
multiplier
1
0
=
+
+
--------------------------------------------------------------- -
2
1
1
1
24000000
24000000
=
+
+
1
20000
--------------- - 1
19200
1
19200
0
24000000
Rev. 1.2
+
=
+
SYSCLK
1
----------------------------- 1
baud_rate
// Activate the interface
// Set the node as a Master
// Point to the LIN0MUL register
// Point to the LIN0DIV register
// Initialize LIN0DIV
// Point to the LIN0SIZE register
// Initialize the checksum as Enhanced
// Point to LIN0CTRL register
// Reset any error and the interrupt
1
SYSCLK
0
multiplier
20000
+
baud_rate
200
1
19200
=
0.0417
312
------- - 1
ln2
+
1
=
1
312.5
19230.77
0
200
C8051F50x/F51x
baud_rate
=
1.644
312
------- - 1
ln2
1
1
203

Related parts for C8051F502-IMR