AN3670 - Freescale Semiconductor

Freescale Semiconductor
Application Note
AN3670
Rev. 1.0, 10/2008
Implementing a DSI Network Using the
MC33781 (Master) and the MC33784 (Slave)
1
Purpose
This application note describes the main features of
a Distributed System Interface (DSI) system
designed with the MC33781/MC33784. It discusses
system fault modes and practical implementation
features such as programming and PCB layout.
2
Scope
This note is applicable to the DSI Bus Standard
Version 2.02 (March 2005).
3
Introduction
The MC33781 is a DSI Bus Master device,
providing four differential DSI 2.02 buses in a single
package. It contains the logic to interface the buses
to a standard serial peripheral interface (SPI) port
and the analog circuitry to drive data and power
over the bus as well as receive data from remote
DSI slave devices. Figure 1 shows a simplified
block diagram of the MC33781.
© Freescale Semiconductor, Inc., 2008. All rights reserved.
Contents
1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4 Controlling The MC33781 (Master) . . . . . . . . 4
5 Data Flow Through the DSI System . . . . . . . 6
6 Fault Detection And Correction . . . . . . . . . . 10
7 System Response To Fault Conditions . . . 15
8 Bus Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9 Spread Spectrum Control. . . . . . . . . . . . . . . 17
10 Using The Pseudo Bus . . . . . . . . . . . . . . . . 19
11 Using the SPI1 Port. . . . . . . . . . . . . . . . . . . 20
12 Layout Considerations . . . . . . . . . . . . . . . . 21
13 References. . . . . . . . . . . . . . . . . . . . . . . . . . 22
Introduction
The MC33784 is a DSI 2.02–compatible Slave device, optimized as a sensor interface. It
contains circuits to provide power and A/D conversion for a device such as the Freescale
MMA1200EG micro-machined +/-250 G accelerometer. Figure 2 shows a simplified block
diagram of the MC33784.
A central module MCU such as one of the Freescale MAC7xxx family of 32-bit automotive
microcontrollers provides system control and communicates with the MC33781 via the SPI.
VSUP1
VCC
VDD
2.5 V Regulator
DSIF
DSIS
DSIR
Protocol Engine
CLK
Spreader
VSS_IDDQ
AGND
DSIF
DSIS
DSIF
DSIS
DSIR
DSIF
DSIS
SCLK0
MISO0
MOSI0
SPI0,
Registers and
State Machine
CS0
Pseudo Bus Switch
DPH
DBUS
Driver/Receiver
D0H
Pseudo Bus Switch
DPL
DBUS
Driver/Receiver
DSIR
TESTIN
TESTOUT
VSUP2
DBUS
Driver/Receiver
DBUS
Driver/Receiver
DSIR
D1L
D2H
D2L
D3H
D3L
GND
GND
SCLK1
CS1
D1H
TLIM
RST
MISO1
D0L
SPI1,
Registers and
State Machine
GND
VSS
Figure 1. Block Diagram for the 33781, Master
2
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Introduction
H_CAP
2.2 μF or
4.7 μF
Typical
Rectifier
BUSIN
High Side Bus Switch
0-35 V
BUSOUT
Receiver
Data
Response
Current
0–11 mA
8.0 mA/μs
Frame
Received
Message
from MCU
Bandgap
Reference
Oscillator
10 MHz
DataOut <2.0>
Bus Return
Logic
Command Decode
State Machine
Response Generation
I/O Buffers
DataOut <0>
I/O0
Power
Management
5.0 V Regulator
BG Reference
Bias Currents
DataOut <1>
I/O1
I/O2
DataOut <2>
REGOUT
CRO = 2.2 μF
AGND
SEL
10-Bit
ADC
TEST1
TEST2
TOUT
POR
IDDQ
MUX
AN0
AN1
RTNIN
Low Side Bus Switch
RTNOUT
Figure 2. Block Diagram for the 33784, Slave
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
3
Controlling The MC33781 (Master)
Table 1. MC33781 (Master) and MC33784 (Slave) Key Features
Key Feature
Comment
Baud rate
Max 200 kbps
# of DSI channels (Master)
4 + 1(Pseudo BUS)
Max # of Slave Devices
60*
A/D resolution (Slave)
10 bit
Receive current (Master)
High, Low, Sum
Number of Bus Switches (Slave)
2 (High side and low side)
SPI interface (Master)
Dual (one is read only)
Package (Master)
SOICW-32
Package (Slave)
SOICN-16
(*) theoretical maximum – practical maximum will be limited by update rate,
power consumption, and other factors.
4
Controlling The MC33781 (Master)
The host MCU uses the SPI0 port to access the control and status registers of the MC33781 and
to send and retrieve data over the DSI channels. 16 bit messages (command byte plus one data
byte) are used to access the MC33781 control registers; 32 bit messages (command byte plus
three data bytes) can both access control registers and queue up transfers over the DBUS. Up
to four 16 bit slave commands can be queued for transmission over a particular DBUS channel.
All SPI0 transactions between the host MCU and the MC33781 are either 16 or 32 bits long. The
MC33781 counts the number of clocks received during a frame. A framing error occurs if the
count is not 16 or 32; the received message is discarded and no registers are updated. In
addition,
CS0 going low signifies the start of the frame. A transaction begins with a command byte,
followed by either 1 or 3 bytes of data.
4
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Controlling The MC33781 (Master)
Figure 3 and Figure 4 show both 16 bit and 32 bit transfers. In these multi-byte transfers, as long
as CS0 is asserted low, each additional byte sent over the SPI0 will be a read/write of data to the
sequential next register.
SCLK
MOSI
WRITE COMMAND
POINT TO REGISTER
DATA TO
REGISTER
MISO
00000000
DATA FROM
REGISTER
CS0
Figure 3. SPI016-Bit Burst Transfer Example
.
SCLK
MOSI
WRITE COMMAND
POINT TO D0R0H
DATA TO D0R0H
DATA TO D0R0L
MISO
00000000
DATA FROM D0R0H
DATA FROM D0R0L
XXXXXXXX
DATA FROM D0R0STAT
CS0
Figure 4. SPI0 32 Bit Burst Transfer Example
The first bit sent (bit 7) of the command byte signals a read or write (write = 1) of data. The last
seven bits (bits 6….0) of the command byte constitute the address of the desired register.
For example, the address of the control register for DBUS channel 0 (D0CTRL) is $x0C, so the
SPI0 sequence $8C 41 will cause $41 be written to the D0CTRL register.
Similarly, the address of the DBUS 0 high byte data register D0R0H is $x00; a sequence of
$80 77 23 will result in $77 and $23 being written into D0R0H and D0R0L respectively. The data
$77 23 will subsequently be transmitted over channel 0 as an DSI command.
In a read operation, bit 7 of the command byte is a zero, so for example a command of
$06 xx xx xx will result in reading the registers at addresses $06, 07 and 08 (D0R2H, D0R2L and
D0R2STAT respectively).
See the MC33781 data sheet for the addresses and bit assignments of the various registers.
Note that some register addresses are reserved; writes or reads to these addresses will be
ignored.
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
5
Data Flow Through the DSI System
5
Data Flow Through the DSI System
Data transfer from the SPI0 bus to the DBUS is through the sets of data registers D0R0H/D0R0L
through D0R3H/D0R3L. Each set – D0R0H/D0R0L, for example - consists of two physical pairs
of registers, one for transmit and one for receive.
Data is written to and read from each register asynchronously; synchronization between the two
operations is by means of the TE and RNE status bits.
5.1
MC33781 (Master)
The TE (Transmit Register Empty) bit for a register pair is cleared, indicating transmit buffer not
empty, on the rising edge of CS0 after an SPI0 write to that register; it is set (transmit buffer
empty) once the data has been sent out over the DBUS.
Conversely, the RNE (Receive Register Not Empty) bit is set when the DBUS writes to the
associated register pair and cleared on the rising edge of CS0 after an SPI0 read of that pair.
The MC33781 can queue up to four sequential bus commands per channel for DBUS
transmission.
If the transmit queue is empty, the delay from data being received as an SPI0 message until it
starts to appear as a DBUS transmission is given by the parameter TDBUSSTART2. This is the
time from the rising edge of CS0 to the start of the DBUS transition from idle mode to signal
mode, as illustrated in Figure 5.
SCLK
MOSI
WRITE COMMAND
POINT TO D0R0H
DATA TO D0R0H
DATA TO D0R0L
MISO
00000000
DATA FROM D0R0H
DATA FROM D0R0L
XXXXXXXX
DATA FROM D0R0STAT
CS0
TDBUSSTART2
Figure 5. TDBUSSTART2
6
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Data Flow Through the DSI System
TDBUSSTART2 has a maximum and minimum value of:
2t BIT
5t BIT
------------- + ( DLY – 2 ) × t BIT < T DBUSSTART2 < ------------ + ( DLY – 2 ) × t BIT μs.
3
3
where tBIT is the bit time and DLY is the delay between DBUS frames, set in the DnCTRL register
to be either 4, 5, 6, or 8 bit times.
For example, with tBIT =5.0 μs (200 kbps DBUS speed) and 4 bits interframe delay:
13.33 < TDBUSSTART2 < 18.33 μs
If the transmit queue is not empty, the transmission delay is dependent on the number and length
of messages ahead of the incoming SPI0 message.
5.2
MC33784 (Slave)
After the MC33784 detects that the DBUS message is complete (signified by the bus voltage
exceeding the Frame Threshold), there is a delay of approximately 4.6 μs while the CRC is
calculated, indicated by tCRC_CALC in Figure 6. Once the CRC is verified, the requested action is
carried out.
Figure 6 also shows a ~200 ns turn-on delay in the MC33784 (tTOD) when a logic output is
changed from low to high.
See for a Figure 7 representation of a typical data flow.
ttod
Frame Threshold
CRC OK
Logic O/P
tCRC_CALC
Figure 6. tCRC_CALC
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
7
Data Flow Through the DSI System
“Porch” Bit
tCRC_CALC
(MC33784)
tTOD
tCRC_CALC
(MC33784)
“Porch” Bit
DBUS Transmission #1
DBUS Transmission #2
TDBUSSTART2
16-bit DBUS message
4-bit CRC
16-bit DBUS message
Interframe Delay
tTOD
4-bit CRC
Figure 7. Data Flow for Two Consecutive 16 Bit DBUS Transmissions with a 4 Bit Interframe Delay
5.3
Bus Initialization Sequence
For normal operation, a typical DBUS channel initialization sequence following a reset consists
of the following actions. Note that only steps 2 and 5 are required – the others are optional and
are used if the default values are not acceptable.
1. Set the transmission parameters (optional).
a) Minimum delay between DBUS transfer frames -- DnCTRL register bits 4 & 5, default value
4 bit times (00)
b) Select message size – DnCTRL register bit 0, default value long word (0)
c) Select loop mode control if required -- DnCTRL register bits 1 & 2, default value disabled
(00)
2. Enable the channel (required) -- DnEN register bit 0, default value disabled (0).
3. Set channel CRC polynomial (optional) – DnPOLY register, default value $11.
4. Set channel CRC seed (optional) – DnSEED register, default value $0A.
5. Initialize the slave devices (required) – DnRnH and DnRnL registers.
6. Repeat Steps 1–5 for the other channels as needed.
5.4
Slave Response To Initialization Sequence
After a reset, all slave bus switches will be open. The initialization command sets the slave
address, configures the digital I/O, and other operations. Any commands received prior to the
initialization command are ignored by the slave device. After receipt of a valid initialization
command, a slave will close its bus switches and ignore subsequent initialization commands.
In the daisy chain configuration the sequence for a channel is as follows:
8
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Data Flow Through the DSI System
Table 2. Daisy Chain Configuration
Command →
POR
Init (Address 1)
Init (Address 2)
Init (Address 3)
Init (Address 4)
Slave 1
Bus switch open Initialized to address
1, bus switch closed
Initialization response
Slave 2
Bus switch open Bus switch open
Initialized to address
2, bus switch closed
Initialization response
Slave 3
Bus switch open Bus switch open
Bus switch open
Initialized to address
3, bus switch closed
Initialization response
Slave 4
Bus switch open Bus switch open
Bus switch open
Bus switch open
Initialized to address
4, bus switch closed
Frame #
1
2
3
4
5
Figure 8. Graphical Representation of the Command/Respond Sequence
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
9
Fault Detection And Correction
The message formats for the initialization commands can be found in the MC33784 data sheet
in the “Logic Commands And Registers” section.
As an example, here is the initialization sequence for a MC33781 communicating with 6
MC33784 slaves – four on DBUS 0 and two on the Pseudo Bus.
Table 3. 33781 Initialization Sequence
Hex Command
Action
8D 01 11 0A
Initialize DBUS Channel 0
80 61 00 00
Assign Bus 0 Address 1
80 62 00 00
Assign Bus 0 Address 2
80 63 00 00
Assign Bus 0 Address 3
80 64 00 00
Assign Bus 0 Address 4
BD 07 11 0A
Initialize Pseudo Bus
80 65 00 00
Assign Bus 0 Address 5
80 66 00 00
Assign Bus 0 Address 6
The pseudo bus requires a slightly different initialization sequence. See “Using The Pseudo Bus”
below for a description.
6
6.1
Fault Detection And Correction
MC33781 (Master) Power-On Check
There are 128 fuse bits in the MC33781 that are used to trim various voltage and current
parameters during manufacturing. After a reset the MC33781 reads all of the fuse bits and
transfers the information to internal flip-flops. At the same time, the fuse parity bit is checked and
verified. If the check fails, a fuse parity error bit is set (MASKID register bit 7).
6.2
MC33781 (Slave) Loopback Mode
The MC33781 has a loopback mode that enables testing of the transmit and receive circuits
without sending data out over the bus. Loopback is selected for a channel by setting the two
control register (DnCTRL) Loop Mode bits Loop0 and Loop1 to 11. Any other combination will
disable loopback.
During loop back a multiplexer selects the DSIS (transmit) signal instead of the DSIR (receive)
signal for loading into the receive buffers. See Figure 9 for the signal path.
10
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Fault Detection And Correction
BUS Driver/Receiver Logic
SPI0
Addressed Rx Buffer
Loop Sel
data
16
stat
4
CRC
CRC
check
CRC
check
check
SPI0
Addressed Tx Buffer
data
DSIR
Loop
Mode
Mux
RCV
DSIS
16
CRC
generate
XMIT
SPI1 Registers
data
addr
data
addr
data
addr
data
addr
Figure 9. Loopback Mode Signal Path
DBUS transmitter or receiver fault conditions will not affect the test when in loopback. Loopback
mode clears the EN bit (DnEN register bit 0) for the channel, so it must be re-enabled before
transmitting data.
Both SPI0 and SPI1 operate during loopback mode. However, the write to the SPI1 buffer only
occurs if the data is all 1’s or all 0’s and the address is the complement of the data.
6.3
CRC Generation & Checking
Both the MC33781 and MC33784 add a variable length CRC to all messages before
transmission. An incorrect CRC indicates that the received data is not valid.
The default CRC is 4 bits long and uses a polynomial of X4 + 1 (00010001) and a seed value of
1010. The CRC can be changed to between 0 and 8 bits in length and the polynomial and seed
value are selectable, allowing the system designer to tailor the CRC coverage level.
The polynomial X4 + 1 has a length of 5 bits, ignoring leading zeros. It can be shown that such a
polynomial can detect all burst errors of length ≤ 5. For a burst error of > 5 bits, the probability of
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
11
Fault Detection And Correction
the frame being accepted as valid is 1 in 24 (1 in 16) , assuming that all bit patterns are equally
likely.
6.4
MC33781 (Master) Receiver Decision Block
In the presence of faults or common-mode noise, it is possible that the DnH and DnL current
inputs will give conflicting inputs. Consequently, the MC33781 uses a receiver decision block to
determine whether it has received a valid message.
The receiver decision logic block has three inputs. Two are derived from the Receiver High input
and the Receiver Low input; the third is the sum of the Receiver High and Receiver Low input,
called Receiver Sum.
Table 4 shows the MC33781 Receiver Decision Block and its response to various bus pin
conditions. The MC33784 draws a nominal 6.0 mA to indicate a logic high; a logic high on both
Receiver High and Receiver Low inputs will result in 12 mA on Receiver Sum.
12
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Fault Detection And Correction
Table 4. MC33781 (Master) Receiver Decision Logic
Bus Pin
Conditions
Receiver
High 6 ± 1
mA
Receiver
Low 6 ± 1
mA
Receiver
Sum 12 ±
6mA
High and
Low XOR
(bit/bit)
High and
Sum XOR
(bit/bit)
Low and
Sum XOR
(bit/bit)
ER Bit
SPI0
DnRnxData
SPI1
DnRnxData
0
Receiver
High
Receiver Low
H*L Not OK
1
Receiver
High
Receiver Low
H*L Ok
0
Receiver
High
Receiver Low
1
Receiver
High
Receiver Low
0
Receiver
High
Receiver
Sum1
1
Receiver
High
Receiver Low
N/A
1
Receiver
High
Receiver Low
L*S Ok
0
Receiver
Sum0
Receiver Low
L*S Not OK
1
Receiver
High
Receiver Low
H*L Ok
Normal
Out of Spec
CRC Ok
CRC Ok
CRC Ok
CRC Ok
CRC Ok
N/A
Bad CRC
N/A
N/A
N/A
H*L Not OK
H*S Ok
Fault
CRC Ok
Bad CRC
CRC Ok
N/A
N/A
H*S Not OK
Fault L
Fault
CRC Ok
Bad CRC
Bad CRC
CRC OK
Bad CRC
CRC OK
N/A
N/A
N/A
N/A
Fault H
Bad CRC
CRC Ok
Bad CRC
N/A
N/A
N/A
1
Receiver
High
Receiver Low
Common
Mode Noise
Bad CRC
Bad CRC
CRC Ok
N/A
N/A
N/A
0
Receiver
Sum0
Receiver
Sum1
Fault
Bad CRC
Bad CRC
Bad CRC
N/A
N/A
N/A
1
Receiver
High
Receiver Low
Note that SPI0 and SPI1 derive their output data from different sources. SPI0 uses either
Receiver High or Receiver Sum0; SPI1 uses either Receiver Low or Receiver Sum1.
In order to provide the maximum protection against a single-point failure causing a disruption in
communication, the decision paths for the two SPI channels are independent internally, even
when the signal names are the same. For example, the Receiver Sum path is divided into
Receiver Sum0 and Receiver Sum1, which use different holding registers in the Receiver logic.
These registers are duplicates, although they will always hold the same data unless there is a
fault in one of the data paths. See Figure 10.
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
13
Fault Detection And Correction
To SPI1
To SPI0
{
{
Receiver Low n
Receiver Sum1 n
+
Receiver Sum0 n
Receiver High n
DnH
Driver
DnL
Figure 10. Single Point Failure Protection
14
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
System Response To Fault Conditions
7
System Response To Fault Conditions
The MC33781 register set contains several registers that indicate channel status and fault
conditions. Here are the applicable registers for DBUS channel 0:
Table 5. MC33781 (Master) Register Set for DBUS Channel 0
Register
Address
Register
Name
Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0000010
D0R0STAT
DBUS 0 Reg 0 Status
ER
TE
SDS
RNE
ICL
0
FIX0
FIX1
0001101
D0EN
DBUS 0 Enable Status
TS
ISDD
-
-
-
BSWH
BSWL
EN
The system response to some possible fault conditions is describe below.
7.1
7.1.1
DnH or DnL Short to GND/VBATT
Hard Short
A hard short of DnH, DPH, BUSIN (MC33784) or BUSOUT (MC33784) to GND, or a hard short
of DnL, DPL, RTNIN (MC33784) or RTNOUT (MC33784) to VBATT during idle time will activate
the current limit circuit; both drivers will be disabled after a short delay. The ICL bit in the
DnRnSTAT register is set for the affected channel.
A hard short of DnH, DPH, BUSIN (MC33784), BUSOUT (MC33784), DnL, DPL, RTNIN
(MC33784) or RTNOUT (MC33784) to either GND or VBATT during signal time will result in both
drivers being shut down for the rest of the transaction after a short delay. The SDS bit in the
DnRnSTAT register is also set. If the over-current limit is reached during two consecutive frames,
the bus drivers are disabled and the ISDD bit in the DnEN register is set. In the case of channel
0, the Pseudo Bus switches are also opened and BSWH & BSWL bits are cleared.
Each channel is protected by a thermal shutdown circuit. If the channel bus thermal limit is
reached, the bus drivers are disabled and the TS bit in the DnEN register is set.
In the case of channel 0, the Pseudo Bus switches are also opened and BSWH & BSWL bits are
cleared. For a thermal shutdown on the Pseudo Bus, however, the Pseudo Bus switches are
opened and the BSWH & BSWL bits are cleared, but no other register bits are set and channel
0 operation is unaffected.
7.1.2
Resistive Short
A resistive short during signal mode can be classified according to how much current draw it
causes.
• Resistive Short, current draw > 40 mA (typ)
This will cause an over-current shutdown with the same results as a hard short.
• Resistive Short, current draw < 40 mA (typ)
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
15
Bus Speed
If the resistive short is from DnH to ground then the following actions will occur:
a) Receiver High will report a CRC error (i.e., response current always > 6mA threshold)
b) Receiver Sum will report a CRC error
c) Receiver Low will see response current and report a CRC OK.
This case is described in the “Fault H” row in the Receiver Decision Logic table.
The reverse case for short on DnL is described in the “Fault L” row in Table 4, MC33781 (Master)
Receiver Decision Logic.
7.2
Common-Mode Noise
The MC33781 can withstand up to 20 mA of common-mode noise (40 mA pp max) without
causing a CRC error in Receiver Sum, although there will be CRC errors in both Receiver High
and Receiver Low, since their respective response currents are above the 6mA threshold under
all conditions.
This condition is described in the “Common Mode Noise” row in Table 4. No ER bit is set and
Receiver Sum Data is used.
Above 20 mA common mode noise, a CRC error will occur and the ER bit will be set, as
described in the last row of Table 4.
7.3
DnH to DnL Short Circuit
Shorting the high and low side of a DBUS channel together will result in all 1’s on both Receiver
High and Receiver Low, including all of the CRC bits, giving a CRC error.
Shorting high and low side of a DBUS channel together will result in reporting a fault condition
with a CRC error and the ER bit will be set.
7.4
DH to DL Resistive Short
Depending on the resistive short value, either Receiver High or Low will report all 1's and the ER
bit will be set.
7.5
DnH or DnL Open Circuit
An open circuit on DnH or DnL will result in a loss of bus communication. All Receivers High, Low
and Sum will report a bad CRC. The ER bit is set and Receiver High wrong data is reported. This
is also described by the last row in Table 4.
8
Bus Speed
The allowable data rate between the MC33781 and the MC33784 is variable within limits. The
minimum data rate is defined by the DSI specification to be 5 kbits/sec. The maximum data rate
is not defined by the specification. In practice, the upper limits will be set by EMC, total bus
capacitance and other considerations.
16
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Spread Spectrum Control
Table 6 shows suggested maximum data rates with common values of slave module input
(BUSIN to RTNIN) and output (BUSOUT to RTNOUT) capacitors. The values are based on
simulations with the test circuit shown in Figure 11 and are for reference only.
Table 6. Maximum Data Rates
Slave Module Capacitance (Cin/Cout)
Suggested Max Data Rate
470 pF / 470 pF
200 kbps
680 pF / 470 pF
185 kbps
1 nF / 470 pF
160 kbps
Figure 11. Test Circuit
There is a minimum frame delay between MC33781 commands as required by the DSI
specification to allow recharging of the energy storage capacitors in the MC33784 or other slave
devices. The minimum frame delay required is dependent upon several factors including the bus
speed, the current consumption of the slaves and the amount of energy storage in the network.
9
Spread Spectrum Control
The dominant source of radiated electromagnetic interference (EMI) from the DBUS bus is due
to the regular periodic frequency of the data bits. At a steady bit rate, the time period for each bit
is the same, which results in a steady fundamental frequency plus harmonics. Consequently,
unwanted signals appear at multiples of the fundamental frequency; these can be strong enough
to interfere with the desired signal.
A significant decrease in radiated EMI can be achieved by randomly changing the duration of
each bit. This reduces the energy amplitude by having the signal spend a much smaller
percentage of time at any specific frequency. The signal strength of the fundamental and
harmonics are reduced directly by the percentage of time it spends on a specific frequency.
A circuit to accomplish this is included in the MC33781, and can perform the spreading of the
signal independently for each channel, while generating the bit clock timing for the channel. The
spread spectrum circuitry is discussed in detail in the MC33781 data sheet.
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
17
Spread Spectrum Control
4MHz CLK
64MHz CLK
PLL
Divide by 8
24-bit PRBS
7
7-bit random number
Deviation
Select
Maximum Count Deviation
(from DxSSCTRL)
3
7
10-bit
Adder
10
Bit
Clock
Logic
Bit
Clock
10
320
Adder
Base Time Period
(from DxFSEL)
9.1
8
Mult X2
9
Choosing The Maximum Deviation Value
It is important to select a maximum deviation value that is appropriate for the system. A larger
maximum deviation results in spreading the bit energy to more frequencies. However, this
number also establishes the maximum period for any random bit on that channel. If the system
requires that a minimum number of bits be transferred within a fixed time period, then the user
must select a minimum base bit time and maximum deviation time that will meet the criteria.
Only certain deviations value can be chosen: the allowable deviation values (expressed as the
# of 64 MHz clock periods) are selected by the DEV[2:0] bits in the spread spectrum control
register (DnSSCTRL) as follows:
DEV[0:2]
# Periods
000
0
001
16
010
32
011
64
100
78
Here are two examples using 10-bit Enhanced Short Words (ESW).
The ESW message contains a total of 14 bits (2 data bits, 4 address bits, 4 command bits, plus
4 CRC bits). The calculations are similar for other message lengths.
Design Criteria: Frame Time = 125 μsec
18
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Using The Pseudo Bus
With a 64 MHz PLL clock, 1 clock period (1 count) = (1/64) x 10-6 s = 15.625 ns.
1. Bit rate = 185 kHz with 4 interframe bits
Total # of bits in frame = 19 (1 porch bit + 14 bits enhanced short word message+ 4 interframe
bits)
125 μsec frame time → 8000 periods
185 kHz bit rate → 346 periods
19 bits per frame @ 185 kHz bit rate → 19 x 346 = 6574 periods
Maximum counts per frame available for spreading = 8000 – 6574 = 1426 periods
Maximum available counts per bit = 1426/19 = 75 periods
From the table, it can be seen that 64 periods is the appropriate choice.
2. Bit rate = 160 kHz.
125 μsec frame time → 8000 periods
160 kHz bit rate → 400 periods
19 bits per frame @ 160 kHz bit rate → 19 x 400 = 7600 periods
8000 – 7600 = 400 periods total allowable deviation.
Maximum available counts per bit = 400/19 = 21 periods
In this case, a deviation of 16 periods should be chosen.
10 Using The Pseudo Bus
The bus drivers on channel 0 can drive two external bus wire sets (D0H/D0L and DPH/DPL). The
pseudo bus allows the use of two redundant sensors (for example two front crash sensors) on a
single channel without a wiring fault on one leg affecting the other. Both the high and low sides
of channel 0 include a pseudo bus switch as shown in Figure 12.
Figure 12. Pseudo bus connection
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
19
Using the SPI1 Port
10.1
Initializing The Pseudo Bus
After a device reset the pseudo bus switches are open. During initialization, the master initializes
the slave devices on channel 0 using the sequence described earlier in this application note. The
channel 0 slaves should be initialized before the pseudo bus switches are closed, after which the
devices on the pseudo bus can be initialized.
Note that when the pseudo bus switches are closed, the channel 0 drivers are driving both DBUS
0 and the pseudo bus in parallel, so there must be no duplication between the DBUS 0 and DBUS
P slave addresses.
The pseudo bus switches are controlled by BSWH and BSWL (bits 2 & 1) in the D0EN register.
Clearing these bits will open the pseudo bus switches, although they are typically closed during
normal operation.
The pseudo bus switches have independent thermal shutdown protection. Once the thermal
shutdown point is reached, the bus switch is opened and the BSWH and/or BSWL bit is cleared
in the channel 0 DEN register.
11 Using the SPI1 Port
In a typical airbag system, the primary microcontroller transfers commands and data via SPI0. It
is important that a failure in the primary microcontroller does not cause an inadvertent airbag
deployment, so a secondary microcontroller or ASIC is often used to monitor the incoming
sensor data. Both controllers must agree in order for a deployment to occur.
The MC33781 has a second SPI port, SPI1, specifically for this purpose. SPI1 operation is
limited to transmitting analog data (AN0 only) from the slave devices on DBUS channels 2 and 3.
SPI0 is bidirectional and communicates data from all channels as well as MC33781 control and
status information.
Figure 13. SPI0/SPI1 Communications Flow
The main differences between SPI0 and SPI1 are summarized in Table 7.
20
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
Layout Considerations
Table 7. SPI0 and SPI1
Feature
SPI0
SPI1
SCLK
√
√
CS
√
√
MOSI
√
X
MISO
√
√
0,1,2,3,P
2,3
2 or 4
2 only
DBUS Channel Data
Transfer # of Bytes
11.1
SPI1 Comments
Output only
Analog channel 0 only
SPI0 & SPI1 different formats
SPI1 Operation
The SPI1 control circuitry monitors bus traffic on channels 2 & 3. When a Request AN0 command
is detected, it saves the requested slave address together with the response from the next frame.
SPI1 then concatenates the requested address, the response data, and two status bits indicating
the channel used, and queues this up for a SPI1 read.
Note that if any status bit indicates a bus error, the address and channel bits are still stored in the
SPI1 buffer, but the data bits are set to all zeros for this message.
The SPI1 bit definitions are detailed in the MC33781 data sheet.
12 Layout Considerations
12.1
MC33781 (Master)
To ensure stability of the bus drivers, capacitors must be connected between each output and
ground. These are the DBUS common mode capacitors. In addition, bypass capacitors are
required at the VSUP1 & VSUP2 pins. These capacitors must be located close to the IC pins and
provide a low-impedance path to ground.
12.2
MC33784 (Slave)
The layout of the slave module can affect the system performance especially under conditions
of high induced bus current – for example, as simulated during BCI (Bulk Current Injection)
testing.
BUSIN/RTIN and BUSOUT/RTNOUT capacitors should be used. Typical values are from 400 pF
to 1.0 nF.
Separating the RTNIN and AGND traces as much as practical has found to be of value in
reducing ADC variation during BCI testing.
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
21
References
13 References
•
•
22
MC33781 Data sheet
MC33784 Data sheet
Implementing a DSI Network Using the MC33781 (Master) and the MC33784 (Slave), Rev. 1.0
Freescale Semiconductor
How to Reach Us:
Home Page:
www.freescale.com
Web Support:
http://www.freescale.com/support
USA/Europe or Locations Not Listed:
Freescale Semiconductor, Inc.
Technical Information Center, EL516
2100 East Elliot Road
Tempe, Arizona 85284
+1-800-521-6274 or +1-480-768-2130
www.freescale.com/support
Europe, Middle East, and Africa:
Freescale Halbleiter Deutschland GmbH
Technical Information Center
Schatzbogen 7
81829 Muenchen, Germany
+44 1296 380 456 (English)
+46 8 52200080 (English)
+49 89 92103 559 (German)
+33 1 69 35 48 48 (French)
www.freescale.com/support
Japan:
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku,
Tokyo 153-0064
Japan
0120 191014 or +81 3 5437 9125
[email protected]
Asia/Pacific:
Freescale Semiconductor China Ltd.
Exchange Building 23F
No. 118 Jianguo Road
Chaoyang District
Beijing 100022
China
+86 10 5879 8000
[email protected]
For Literature Requests Only:
Freescale Semiconductor Literature Distribution Center
P.O. Box 5405
Denver, Colorado 80217
1-800-441-2447 or 303-675-2140
Fax: 303-675-2150
[email protected]
AN3670
Rev. 1.0
10/2008
RoHS-compliant and/or Pb-free versions of Freescale products have the functionality
and electrical characteristics of their non-RoHS-compliant and/or non-Pb-free
counterparts. For further information, see http://www.freescale.com or contact your
Freescale sales representative.
For information on Freescale’s Environmental Products program, go to
http://www.freescale.com/epp.
Information in this document is provided solely to enable system and software
implementers to use Freescale Semiconductor products. There are no express or
implied copyright licenses granted hereunder to design or fabricate any integrated
circuits or integrated circuits based on the information in this document.
Freescale Semiconductor reserves the right to make changes without further notice to
any products herein. Freescale Semiconductor makes no warranty, representation or
guarantee regarding the suitability of its products for any particular purpose, nor does
Freescale Semiconductor assume any liability arising out of the application or use of any
product or circuit, and specifically disclaims any and all liability, including without
limitation consequential or incidental damages. “Typical” parameters that may be
provided in Freescale Semiconductor data sheets and/or specifications can and do vary
in different applications and actual performance may vary over time. All operating
parameters, including “Typicals”, must be validated for each customer application by
customer’s technical experts. Freescale Semiconductor does not convey any license
under its patent rights nor the rights of others. Freescale Semiconductor products are
not designed, intended, or authorized for use as components in systems intended for
surgical implant into the body, or other applications intended to support or sustain life,
or for any other application in which the failure of the Freescale Semiconductor product
could create a situation where personal injury or death may occur. Should Buyer
purchase or use Freescale Semiconductor products for any such unintended or
unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and
its officers, employees, subsidiaries, affiliates, and distributors harmless against all
claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale
Semiconductor was negligent regarding the design or manufacture of the part.
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners.
© Freescale Semiconductor, Inc., 2008. All rights reserved.