C8051F581-IMR Silicon Labs, C8051F581-IMR Datasheet - Page 214

no-image

C8051F581-IMR

Manufacturer Part Number
C8051F581-IMR
Description
8-bit Microcontrollers - MCU 50MIPS 128kB 8kB SPI
Manufacturer
Silicon Labs
Datasheet

Specifications of C8051F581-IMR

Rohs
yes
Core
8051
Processor Series
C8051
Data Bus Width
8 bit
C8051F58x/F59x
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.
Table 21.2 includes the configuration values required for the typical system clocks and baud rates:
214
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
=
+
+
20000
--------------- - 1
19200
1
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
19200
1
=
0.0417
312
------- - 1
ln2
+
1
=
1
312.5
19230.77
200
0
baud_rate
=
1.644
312
------- - 1
ln2
1
1

Related parts for C8051F581-IMR