C8051F572-IMR Silicon Labs, C8051F572-IMR Datasheet - Page 193

no-image

C8051F572-IMR

Manufacturer Part Number
C8051F572-IMR
Description
8-bit Microcontrollers - MCU 50 MIPS 16 kB 2 kB CAN2.0 LIN 2.1 SPI
Manufacturer
Silicon Labs
Datasheet

Specifications of C8051F572-IMR

Rohs
yes
Core
8051
Data Bus Width
8 bit
Processor Series
C8051
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 20.2 includes the configuration values required for the typical system clocks and baud rates:
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.1
+
=
+
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
C8051F55x/56x/57x
+
1
=
1
312.5
19230.77
0
200
baud_rate
=
1.644
312
------- - 1
ln2
1
1
193

Related parts for C8051F572-IMR