FREESCALE MC68HC55

Order Number: MC68HC55
Rev. 2
MC68HC55/D
Technical Data
Two-Channel CMOS ASIC Device
Section 1. DSI/D (Distributed System Interface – Digital)
1.1
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.2
General Description of the DSI System. . . . . . . . . . . . . . . . .3
1.3
Overall DSI System Connections . . . . . . . . . . . . . . . . . . . . .3
Section 2. MC68HC55CD Pin Assignments and Descriptions
2.1
Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2
Pin Function Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Section 3. Registers and Bit Descriptions
3.1
DSI Channel 0 Data Registers . . . . . . . . . . . . . . . . . . . . . . .9
3.2
DSI Channel 1 Data Registers . . . . . . . . . . . . . . . . . . . . . .10
3.3
DSI Status Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3.4
DSI Channel Control Registers . . . . . . . . . . . . . . . . . . . . . .13
3.5
DSI Channel Enable Bits. . . . . . . . . . . . . . . . . . . . . . . . . . .17
Section 4. Functional Description
4.1
Reset Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.2
Abort Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.3
Enable (Disable) Function . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.4
SPI Communications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.5
DSI/D to DSI/P Communications. . . . . . . . . . . . . . . . . . . . .29
4.6
CRC Generation/Checking . . . . . . . . . . . . . . . . . . . . . . . . .30
4.7
CRC Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
4.8
Message Size Special Cases . . . . . . . . . . . . . . . . . . . . . . .31
Section 5. Timing and Electrical Specifications
5.1
Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
5.2
DC Electrical Characteristics. . . . . . . . . . . . . . . . . . . . . . . .34
5.3
Timing Characteristics for DSI/D to DSI/P Interface . . . . . .34
5.4
Timing Characteristics for SPI Interface . . . . . . . . . . . . . . .36
Section 6. Mechanical Data and Ordering Information
6.1
Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
6.2
Mechanical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
6.3
Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
This document contains information on a new product. Specifications and information herein are subject to change without notice.
© Freescale Semiconductor, Inc., 1999, 2006
MC68HC55 Technical Data
Section 1. DSI/D (Distributed System Interface – Digital)
The distributed system interface uses a 2-wire bus to interconnect a
master controller with sensors and firing units in an airbag system or
other automotive body control applications. Remote units are a key
feature of this system because they do not require a crystal or other
critical timing reference components which might be damaged in a
crash.
This document describes a 2-channel CMOS (complmenetary
metal-oxide semiconductor) ASIC (application-specific integrated
circuit) device, the MC68HC55. It communicates with the (master) serial
peripheral interface (SPI) from an MCU and generates interface signals
to/from an analog SmartMOS™ device called the DSI/P (where P
indicates the physical layer of the DSI system). 1.2 General Description
of the DSI System gives a general overview of the distributed system
interface (DSI), providing a context for understanding the details of this
specification.
1.1 Features
Features of the MC68HC55 include:
•
Compact 16-pin narrow body SOIC (small outline integrated
circuit) package
•
Compatible with Freescale SPI (serial peripheral interface)
communication interface
•
Compatible with DSI/P analog ASIC
•
Two independent DSI channels
•
Pin assignments match DSI/P for easy connection
•
Automatic CRC (cyclical redundancy check) generation and
checking for robust message verification
•
4-stage transmit and receive FIFOs (first in, first out)
•
8-bit or 16-bit messages, plus 4-bit CRC
SmartMOS is a trademark of Freescale Semiconductor, Inc.
Technical Data
2
MC68HC55
DSI/D (Distributed System Interface – Digital)
MC68HC55 Technical Data
General Description of the DSI System
1.2 General Description of the DSI System
The distributed system interface is intended as a robust serial interface
system suitable for automotive body applications including airbag safety
systems. Specific goals of this system include:
•
Reduction of intermodule wiring by using a 2-conductor bus.
•
Provide power to remote nodes on the same pair of wires
•
Self-organizing system (modules need not be programmed prior
to installation)
•
No critical timing components such as crystals in remote nodes
(subject to damage in a crash)
•
Wave shaped signals to minimize electrical noise
•
CRC error checking on all messages to assure message integrity
1.3 Overall DSI System Connections
The DSI system consists of:
•
Master MCU such as the MC68HC16P3
•
One or more DSI/D devices, one DSI/P dual analog SmartMOS
device per DSI/D
•
Up to 15 remote sensor and firing units per DSI bus
In this DSI system, the master MCU will communicate with the DSI/D via
the SPI. The DSI/D will in turn communicate with a DSI/P via three wires
using CMOS levels. Finally, the analog DSI/P will interface to the 2-wire
DSI bus using a combination of pulse length encoded voltage levels for
transmission of data to remote peripheral units and current return signals
for received data at the same time. All signals on the 2-wire DSI physical
layer bus are wave-shaped to minimize electrical noise. Refer to
Figure 1-1 for the following discussion.
MC68HC55
DSI/D (Distributed System Interface – Digital)
Technical Data
3
MC68HC55 Technical Data
CSU - CENTRAL SENSING UNIT
MC68HC16P3
MCU
PWM Pin
CH. 0
DSI0S
CH. 1
DSI1S
SCLK
SCK
SPI
(Master)
DSI0F
MC68HC55
DI
MISO
DO
I/O Pin
CS
DSI0O
GND
DSI0R
CLK
MOSI
DSI/P
2-WIRE BUS
DSI1F
DSI1O
GND
DSI1R
SIGNAL
SLAVE 1
SLAVE 2
SLAVE 3
SLAVE 4
BUS OUT
•••
GND
BUS IN
BUS OUT
GND
BUS IN
BUS OUT
GND
BUS IN
BUS OUT
GND
BUS IN
BUS OUT
GND
BUS IN
RETURN
SLAVE 15
Figure 1-1. DSI System Connections
(Other Arrangements Possible)
After reset, the master MCU must first configure the DSI system by
assigning a unique 4-bit address to each remote peripheral unit on the
2-wire DSI bus. When the system is initially powered up, the 2-wire bus
idles at about 25 volts to provide power to the local power supply
capacitor at the first node of the distributed bus. A bus switch in each
peripheral node is initially opened until that node has been programmed
with a 4-bit address. After power up, the 2-wire bus only goes as far as
the first node. The master MCU provides a series of SPI commands to
the DSI/D to send a 16-bit (plus 4-bit CRC) message instructing it to
assign a 4-bit address to the first node. Address 0000 is a global address
which addresses all nodes whether or not they have been initialized with
their unique 4-bit address. During this first message, no remote node will
respond (provide return data to the master). This first message sets the
address of the first node, which causes it to close its bus switch.The bus
now goes to the first and second nodes along the 2-wire bus, and the
second node power supply capacitor becomes charged by the 25-volt
idle level on the bus.
Technical Data
4
MC68HC55
DSI/D (Distributed System Interface – Digital)
MC68HC55 Technical Data
Pin Assignments
The second message assigns the address to the second node and
receives a response message from the first node at the same time. The
first node ignores the second address assignment message because it
already has an address. During the third address assignment message,
only the second node responds (a node only responds to the assignment
message once).This sequence continues until all nodes have been
assigned addresses and have responded that the assignment was
successful.
Now that the nodes each have a unique address, messages can be sent
and received from individual nodes. Notice that during a message, the
node that is receiving the command and the node that is returning a
response are not necessarily the same node.
Nodes do not have any permanently programmed address. Addresses
are assigned according to the order of the devices on the bus every time
power is applied. Multiple nodes may be replaced and/or the system can
be reconfigured by adding nodes to the bus, and the system will
automatically reconfigure itself at the next power-on.
Section 2. MC68HC55CD Pin Assignments and Descriptions
Refer to Figure 2-1 for the MC68HC55CD pin assignments. A brief
description of the pins is given in this section.
2.1 Pin Assignments
SCLK
1
16
VDD
CLK
2
15
DSI0F
DI
3
14
DSI0S
DO
4
13
DSI0R
CS
5
12
N/C
RESET
6
11
DSI1F
INT
7
10
DSI1S
GND
8
9
DSI1R
16-lead narrow body SOIC, package #751B-05 issue J
Figure 2-1. MC68HC55CD Pin Assignments
MC68HC55
MC68HC55CD Pin Assignments and Descriptions
Technical Data
5
MC68HC55 Technical Data
Table 2-1. Pin Information
Pin #
Pin Name
Description
Direction
Relative to DSI/D
Source/
Destination
1
SCLK
System clock
Input
From MCU
2
CLK
SPI clock
Input
SCK out from MCU
3
DI
SPI data in to DSI/D
Input
MOSI from MCU
4
DO
SPI data out from DSI/D
Three-state output
MISO to MCU
5
CS
SPI chip select
Active low input
Port output from MCU
6
RESET
DSI/D reset
Active low input
RESET of MCU system
7
INT
Interrupt output
Active low output
(open-drain)
To IRQ input of MCU
8
GND
Supply common
—
Supply common
9
DSI1R
DSI channel 1 return
CMOS input
From DSI_R of DSI/P
10
DSI1S
DSI channel 1 signal
CMOS output
To DSI_S of DSI/P
11
DSI1F
DSI channel 1 frame
CMOS output
To DSI_F of DSI/P
12
N/C
No connection
—
—
13
DSI0R
DSI channel 0 return
CMOS input
From DSI_R of DSI/P
14
DSI0S
DSI channel 0 signal
CMOS output
To DSI_S of DSI/P
15
DSI0F
DSI channel 0 frame
CMOS output
To DSI_F of DSI/P
16
VDD
Positive supply
—
—
2.2 Pin Function Descriptions
SCLK — This clock input controls bit and frame timing for messages
between the DSI/D and the DSI/P. The length of a bit time may be
configured to be 3, 6, 12, or 24 periods of SCLK by the setting of the
CDIV0[B:A] and CDIV1[B:A] bit fields (the setting for each DSI/D
channel is independently controlled). SCLK is relatively slow (nom.
15 kHz to 450 kHz) compared to the SPI clock (nom. 4 MHz).
CLK — This is the SPI clock signal from the MCU. The DSI/D is a slave
SPI device.
DI — SPI data in to DSI/D (MOSI pin of MCU).
DO — SPI data out from DSI/D (MISO pin of MCU).
Technical Data
6
MC68HC55
MC68HC55CD Pin Assignments and Descriptions
MC68HC55 Technical Data
Pin Function Descriptions
CS — SPI chip select input. When this signal is high, the DSI/D is
deselected and ignores the other SPI signals. CLK and DI are high
impedance inputs, and DO is high-impedance when CS is high.The first
SPI transfer after CS goes low is always a command to the DSI/D. If CS
is held low for additional SPI transfers, they are considered to be data
related to the previous command.
RESET — DSI/D system reset. A low level on this pin forces the DSI/D
logic to abort any operation in progress and initialize to a startup
condition.
INT — This active-low open-drain output signals that some internal
condition needs attention. Separate mask bits are provided for the
receive FIFO not empty and transmit FIFO empty interrupt conditions for
each DSI/D channel (a total of four mask bits). INT remains low as long
as any enabled interrupt condition is still pending.
GND — Power supply ground return
DSI1R — DSI channel 1 return. This is the data input signal from the
DSI/P. The DSI/D samples the CMOS level on this pin at the end of a bit
time. This level will correspond to the current sensed on the signal line
of the DSI physical interface by the DSI/P.
DSI1S — DSI channel 1 signal. This is the data output signal to the
DSI/P. Data bits are pulse length encoded voltage levels on this signal
line. A logic 0 starts with a falling edge on DSI1S and is low for two-thirds
of the bit time and then high for one-third of the bit time. A logic 1 starts
with a falling edge on DSI1S and is low for one-third of the bit time and
then high for two-thirds of the bit time.
DSI1F — DSI channel 1 frame.This output idles high and is driven low
during each transfer frame.
DSI0R — DSI channel 0 return. This is the data input signal from the
DSI/P. The DSI/D samples the CMOS level on this pin at the end of a bit
time. This level will correspond to the current sensed on the signal line
of the DSI physical interface by the DSI/P.
DSI0S — DSI channel 0 signal. This is the data output signal to the
DSI/P. Data bits are pulse length encoded voltage levels on this signal
MC68HC55
MC68HC55CD Pin Assignments and Descriptions
Technical Data
7
MC68HC55 Technical Data
line. A logic 0 starts with a falling edge on DSI0S and is low for two-thirds
of the bit time and then high for one-third of the bit time. A logic 1 starts
with a falling edge on DSI0S and is low for one-third of the bit time and
then high for two-thirds of the bit time.
DSI0F — DSI channel 0 frame. This output idles high and is driven low
during each transfer frame.
VDD — This is the positive voltage supply input (nom. 5 V).
Section 3. Registers and Bit Descriptions
The MC68HC55 includes eight 8-bit registers. A master MCU reads from
or writes to these registers through an SPI. For more information about
the SPI and command protocol, refer to 4.4 SPI Communications
Table 3-1. Register Summary
Technical Data
8
Register
Address
Register
Name
000
DSI0H
DSI channel 0 data register (upper byte)
001
DSI0L
DSI channel 0 data register (lower byte)
010
DSI1H
DSI channel 1 data register (upper byte)
011
DSI1L
DSI channel 1 data register (lower byte)
100
DSISTAT
101
DSI0CTRL
DSI channel 0 control register
110
DSI1CTRL
DSI channel 1 control register
111
DSIENABLE
Description
DSI status register
DSI channel enable bits
MC68HC55
Registers and Bit Descriptions
MC68HC55 Technical Data
DSI Channel 0 Data Registers
3.1 DSI Channel 0 Data Registers
Address:
$000
Bit 7
6
5
4
3
2
1
Bit 0
BIt 15
14
13
12
11
10
9
Bit 8
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-1. DSI Channel 0 Data Register Upper Byte (DSI0H)
Address:
$001
Bit 7
6
5
4
3
2
1
Bit 0
BIt 7
6
5
4
3
2
1
Bit 0
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-2. DSI Channel 0 Data Register Lower Byte (DSI0L)
Reads access the receive data FIFO for channel 0. A receive FIFO not
empty (RFNE0) status bit in the DSISTAT register indicates when it is
appropriate to read the DSI0H and DSI0L register pair. Reading DSI0L,
while the receive FIFO is not empty, causes a receive FIFO pop. In the
case of reading the 16-bit DSI0H:DSI0L register pair, read DSI0H first so
the receiver FIFO pop does not occur prematurely. Writes access the
transmit data FIFO for channel 0. A transmit FIFO not full (TFNF0) status
bit in the DSISTAT register indicates when it is appropriate (TFNF0 = 1)
to write to the DSI0H and DSI0L register pair. Writing DSI0L causes a
transmit FIFO push. In the case of writing the 16-bit DSI0H:DSI0L
register pair, write DSI0H first so the FIFO push does not occur
prematurely. Both receive and transmit are equipped with 4-stage
FIFOs.
MC68HC55
Registers and Bit Descriptions
Technical Data
9
MC68HC55 Technical Data
3.2 DSI Channel 1 Data Registers
Address:
$010
Bit 7
6
5
4
3
2
1
Bit 0
BIt 15
14
13
12
11
10
9
Bit 8
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-3. DSI Channel 1 Data Register Upper Byte (DSI1H)
Address:
$011
Bit 7
6
5
4
3
2
1
Bit 0
BIt 7
6
5
4
3
2
1
Bit 0
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-4. DSI Channel 1 Data Register Lower Byte (DSI1L)
For the description of DSI1H and DSI1L, refer to 3.1 DSI Channel 0
Data Registers.
3.3 DSI Status Register
Address:
Read:
$100
Bit 7
6
5
4
3
2
1
Bit 0
ER1
TFE1
TFNF1
RFNE1
ER0
TFE0
TFNF0
RFNE0
0
1
1
0
0
1
1
0
Write:
Reset:
= Unimplemented
Figure 3-5. DSI Status Register (DSISTAT)
This 8-bit register provides status information for both channels of the
DSI/D. A copy of this register is latched at the falling edge of the SPI chip
select to avoid asynchronous problems due to bits changing during an
SPI transfer. Any changes that occur while chip select remains low (due
to SPI data reads or writes or reception of new DSI data, etc.) will not be
Technical Data
10
MC68HC55
Registers and Bit Descriptions
MC68HC55 Technical Data
DSI Status Register
visible via the SPI until chip select rises and returns low to start a new
SPI transfer. Reads of this register should be considered a snapshot of
the status at the last falling edge of chip select.
NOTE:
To guarantee coherence between an SPI read of status and data, the
reads must be within the same SPI burst (CS must remain continuously
low for the data and status reads). One way to assure this is to always
read data in a burst, starting with a command referencing DSI0H through
DSI1L, leaving the register pointer pointing at the DSISTAT register (see
Figure 4-7). The first SPI transfer which corresponds to the read or write
address 000 command will return (read) register 100 (DSISTAT). The
values of DSISTAT and DSI0H through DSI1L are latched at the falling
edge of CS, so changes due to DSI transfers are not seen until a future
SPI transfer.
ER1 — CRC Error Bit (Channel 1 Read)
0 = CRC value for the data in the read buffer was correct.
1 = CRC value for the data in the read buffer was not correct (data
is not valid).
CRC errors are associated with each data value in the receive FIFO,
so each FIFO entry has a bit to indicate whether the data in that stage
of the FIFO was received correctly.
Whenever a received value is visible at DSI1H:DSI1L, the associated
CRC error status is visible at ER1 in the DSISTAT register. When a
new data value becomes visible due to a pop of a previous value, the
ER1 status flag reflects the CRC status of the new data value. There
is no separate interrupt associated with ER1 because it is always
associated with the RFNE1 status flag.
TFE1 — Transmit FIFO Empty Bit (Channel 1)
0 = Transmit FIFO not empty
1 = Transmit FIFO empty
When the transmit FIFO is empty, four consecutive write bursts may
be used to fill the FIFO without checking the flags between writes. An
interrupt may be generated on the transmit FIFO empty condition.
MC68HC55
Registers and Bit Descriptions
Technical Data
11
MC68HC55 Technical Data
TFNF1 — Transmit FIFO Not Full Bit (Channel 1)
0 = Transmit FIFO full; no room to write any additional data
1 = FIFO not full; there is room for more data in the transmit FIFO
There is no interrupt associated with the transmit FIFO not full
condition. When the conclusion of a DSI transfer frame would cause
both TFNF and RFNE to become set, RFNE becomes set but TFNF
is not set until one DSI clock cycle later. When the transmit FIFO is
full, attempts to write more data into the FIFO are ignored.
RFNE1 — Receive FIFO Not Empty Bit (Channel 1)
0 = Receive FIFO empty; no new data ready to be read
1 = One or more data entries in receive FIFO; data is available to
be read
It is not possible to overflow the receive FIFO because it is not
possible to get more than four transmit messages into the system at
a time. When there is any data in the receive FIFO, a write to the
transmit buffer also reads (pops) data from the receive FIFO.
ER0 — CRC Error Bit (Channel 0 Read)
0 = CRC value for the data in the read buffer was correct.
1 = CRC value for the data in the read buffer was not correct (data
is not valid).
Refer to the description of ER1.
TFE0 — Transmit FIFO Empty Bit (Channel 0)
0 = Transmit FIFO not empty
1 = Transmit FIFO empty
Refer to the description of TFE1.
TFNF0 — Transmit FIFO Not Full Bit (Channel 0)
0 = Transmit FIFO full; no room to write any additional data
1 = FIFO not full; there is room for more data in the transmit FIFO
Refer to the description of TFNF1.
RFNE0 — Receive FIFO Not Empty Bit (Channel 0)
0 = Receive FIFO empty; no new data ready to be read
1 = One or more data entries in receive FIFO; data is available to
be read
Refer to the description of RFNE1.
Technical Data
12
MC68HC55
Registers and Bit Descriptions
MC68HC55 Technical Data
DSI Channel Control Registers
3.4 DSI Channel Control Registers
Address:
$101
Bit 7
6
5
4
3
2
1
Bit 0
CDIV0B
CDIV0A
DLY0B
DLY0A
RIE0
TIE0
0
MS0
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-6. DSI Channel 0 Control Register (DSI0CTRL)
This register should be written before data is sent over the DSI bus. Any
write to this register causes any DSI transfer in progress on this DSI
channel to be aborted (see 4.2 Abort Function). The bits in this register
are updated as they are received over the SPI, but no new values take
effect until the next DSI clock cycle after the conclusion of the SPI write
to this register.
CDIV0[B:A] — Clock Divider for Channel 0 Bits
The CDIV0[B:A] bits specify an additional divider between the SCLK
input and the bit timing circuitry.
When CDIV0[B:A] are set for 0:0, each bit time on the DSI/D to DSI/P
interface is three SCLK periods long.
Table 3-2. CDIV0 Divider Information
CDIV0[B:A]
Divisor
SCLK Periods
per Bit Time
0:0
÷1
3
0:1
÷2
6
1:0
÷4
12
1:1
÷8
24
DLY0[B:A] — Inter-Frame Delay for Channel 0 Bits
These bits specify the minimum delay between transfer frames on the
DSI/D to DSI/P interface. When DLY0[B:A] are set for 0:0, there will
be a minimum of four bit times of idle line from the end of a transfer
MC68HC55
Registers and Bit Descriptions
Technical Data
13
MC68HC55 Technical Data
frame to the beginning of the next frame. The length of a bit time
depends upon the SCLK input frequency and the current setting in the
CDIV0[B:A] bits.
Table 3-3. DLY0 Frame Spacing Information
DLY0[B:A]
Minimum Delay Between Frames
(Bit Times)
0:0
4
0:1
8
1:0
16
1:1
32
RIE0 — Receive Interrupt Enable (Channel 0) Bit
0 = Receive interrupt disabled; RFNE0 status does not affect INT
pin.
1 = Receive interrupt enabled; whenever the RFNE0 status flag is
1, the INT pin will be low to request an interrupt.
TIE0 — Transmit Interrupt Enable (Channel 0) Bit
0 = Transmit interrupt disabled; TFE0 status does not affect INT
pin.
1 = Transmit interrupt enabled, whenever the TFE0 status flag is 1,
the INT pin will be low to request an interrupt.
MS0 — Message Size (Channel 0) Bit
0 = 16 data bits plus 4 CRC bits data bits 15 through 0 then 4 CRC
bits
1 = 8 data bits plus 4 CRC bits data bits 7 through 0 then 4 CRC bits
If the DSI0CTRL register is written while a transfer is in progress, the
transfer is aborted without being completed.
Technical Data
14
MC68HC55
Registers and Bit Descriptions
MC68HC55 Technical Data
DSI Channel Control Registers
Address:
$110
Bit 7
6
5
4
3
2
1
Bit 0
CDIV1B
CDIV1A
DLY1B
DLY1A
RIE1
TIE1
0
MS1
0
0
0
0
0
0
0
0
Read:
Write:
Reset:
Figure 3-7. DSI Channel 1 Control Register (DSI1CTRL)
This register should be written before data is sent over the DSI bus.
Any write to this register causes any DSI transfer in progress on this
DSI channel to be aborted (see 4.2 Abort Function). The bits in this
register are updated as they are received over the SPI interface, but
no new values take effect until the next DSI clock cycle after the
conclusion of the SPI write to this register.
CDIV1[B:A] — Clock Divider for Channel 1 Bits
The CDIV1[B:A] bits specify an additional divider between the SCLK
input and the bit timing circuitry. When CDIV1[B:A] are set for 0:0,
each bit time on the DSI/D to DSI/P interface is three SCLK periods
long.
Table 3-4. CDIV1 Divider Information
CDIV1[B:A]
Divisor
SCLK Periods
per Bit Time
0:0
÷1
3
0:1
÷2
6
1:0
÷4
12
1:1
÷8
24
DLY1[B:A] — Inter-Frame Delay for Channel 1 Bits
These bits specify the minimum delay between transfer frames on the
DSI/D to DSI/P interface. When DLY1[B:A] are set for 0:0, there will
be a minimum of four bit times of idle line from the end of a transfer
MC68HC55
Registers and Bit Descriptions
Technical Data
15
MC68HC55 Technical Data
frame to the beginning of the next frame. The length of a bit time
depends upon the SCLK input frequency and the current setting in the
CDIV1[B:A] bits.
Table 3-5. DLY1 Frame Spacing Information
DLY1[B:A]
Minimum Delay between Frames
(Bit Times)
0:0
4
0:1
8
1:0
16
1:1
32
RIE1 — Receive Interrupt Enable (Channel 1) Bit
0 = Receive interrupt disabled; RFNE1 status does not affect INT
pin.
1 = Receive interrupt enabled; whenever the RFNE1 status flag is
1, the INT pin will be low to request an interrupt
TIE1 — Transmit Interrupt Enable (Channel 1) Bit
0 = Transmit interrupt disabled; TFE1 status does not affect INT
pin.
1 = Transmit interrupt enabled; whenever the TFE1 status flag is 1,
the INT pin will be low to request an interrupt
MS1 — Message Size (Channel 1) Bit
0 = 16 data bits plus 4 CRC bits data bits 15 through 0 then 4 CRC
bits
1 = 8 data bits plus 4 CRC bits data bits 7 through 0 then 4 CRC bits
If the DSI1CTRL register is written while a transfer is in progress, the
transfer is aborted without being completed.
Technical Data
16
MC68HC55
Registers and Bit Descriptions
MC68HC55 Technical Data
DSI Channel Enable Bits
3.5 DSI Channel Enable Bits
Address:
$111
Bit 7
6
5
4
3
2
1
Bit 0
0
0
0
0
0
0
EN1
EN0
0
0
Read:
Write:
Reset:
Figure 3-8. DSI Channel Enable Bits (DSIENABLE)
This read/write register is used to enable or disable each DSI channel.
When a DSI channel is disabled, its DSIxF pin is high and its DSIxS pin
is low which forces the DSI/P device to three-state its bus outputs.
Disabling a DSI channel clears the transmit and receive FIFOs for that
channel. See 4.3 Enable (Disable) Function.
NOTE:
Bits [7:2] are reserved and read as 0s. These bits could be used in future
versions of the MC68HC55.
EN1 — Enable for DSI Channel 1 Bit
0 = DSI channel 1 disabled;
DSI1F pin = high (1), DSI1S pin = low (0)
1 = DSI channel 1 enabled; operates normally
EN0 — Enable for DSI Channel 0 Bit
0 = DSI channel 0 disabled;
DSI0F pin = high (1), DSI0S pin = low (0)
1 = DSI channel 0 enabled; operates normally
MC68HC55
Registers and Bit Descriptions
Technical Data
17
MC68HC55 Technical Data
Section 4. Functional Description
The MC68HC55 is controlled by a master MCU through an SPI, and
handles the digital portions of a distributed system interface (DSI)
system. This device includes two separate DSI channels, each capable
of interfacing to up to 15 DSI bus slave devices (nodes). The DSI
physical layer uses a 2-wire bus with analog wave-shaped voltage and
current signals so an analog SmartMOS device called a DSI/P is needed
to interface the CMOS logic levels of the DSI/D to the analog physical
layer of the DSI bus. Refer to Figure 4-1 for the following discussions.
Major subsystems within the MC68HC55 include:
•
Serial peripheral interface (SPI) to the master MCU
•
A register pointer block
•
Two channels of DSI data registers buffers:
– Transmit data register (high and low bytes)
– Receive data register (high and low bytes)
Technical Data
18
•
CRC block for each channel
•
Control and status registers
•
Serial clock (SCLK) input block
•
4-level FIFOs on each transmit and receive buffer.
MC68HC55
Functional Description
MC68HC55 Technical Data
Reset Function
MC68HC55 — DISTRIBUTED SYSTEM INTERFACE — DIGITAL PORTION
SCLK
CLOCK DIVIDERS
DIV BY 1, 2, 4, or 8
RESET
SPI
ER0
INT
INTERRUPT
DATA
STATUS REG
POP
SCALED SCLKs
DSI0
DATA
1
REG POINTER
BIT POINTER
Tx FIFO
DATA
DATA
DATA
DATA
CRC CHECKING
DATA
DSI0R
PUSH
DATA
16
DSI0S
POP
DSI0F
ENx
ABORT
SPI_LAST_BIT
DSI_XFER_0
MUX
CLK
DSI1
CRC GENERATION
DATA
DI
16
POP
DATA 1
SPI_XFER
PUSH
Rx FIFO
DATA
DATA
DATA
DATA
Tx FIFO
DATA
DATA
DATA
DATA
ER
ER
ER
ER
CRC CHECKING
DATA
DSI1R
PUSH
DATA
16
DSI1S
POP
CHANNEL 1
ER1
CS
MUX
DO
PUSH
ER
ER
ER
ER
CHANNEL 0
ENABLE REG
16
MUX
CONTROL REGS
CRC GENERATION
Rx FIFO
DATA
DATA
DATA
DATA
DSI1F
DSI_XFER_1
Figure 4-1. MC68HC55 Block Diagram
4.1 Reset Function
A low level on RESET forces all FIFO bits to be cleared. The receive and
transmit FIFO pointers are cleared, which effectively forces the FIFOs to
the empty condition. Since the DSI channels are disabled (ENx = 0), the
DSIxF pins are high and the DSIxS pins are low, which forces the DSI/P
devices to three-state their bus outputs.
Reset also forces all MC68HC55 state machines to their idle state.
MC68HC55
Functional Description
Technical Data
19
MC68HC55 Technical Data
4.2 Abort Function
Any DSI transfer that was in progress is stopped as soon as the SPI write
that caused the abort begins. The DSI/D to DSI/P interface lines return
to their idle states. The abort condition is true throughout the SPI write
to the DSI control register.
After the last bit of the DSI control register is written, the transmit and
receive FIFO pointers are reset, which effectively clears these FIFOs
and forces the FIFO locations to 0. A minimum inter-frame delay is then
timed (using the new values of clock scaling and delay control bits) to
allow reserve capacitors in remote nodes to charge. (Any partial
inter-frame delay based on old control settings is forgotten.)
4.3 Enable (Disable) Function
When a DSI channel is disabled, its DSIxF pin is high and its DSIxS pin
is low which forces the DSI/P device to three-state its bus output. The
transmit and receive FIFO pointers are reset, which effectively clears
these FIFOs and forces the FIFO locations to 0. Any DSI transfer that
was in progress is stopped.
Although the SPI clock and the DSI input clock both typically come from
the same MCU system clock in an MCU plus DSI/D system, there is no
guaranteed relationship between these clocks, so the system was
designed as if these clocks were asynchronous. The FIFO architecture
eliminated most of the cases where these clocks need to interact, and
the remaining cases were designed with extra care to prevent
asynchronous problems.
Figure 4-2 explains the notation used in the subsequent state diagrams.
Entry to the IDLE state is asynchronous and all other state transitions
are synchronous. The note in the upper right corner of the figure
identifies which edge of which clock or signal is used to synchronize
state transitions. Each arrow or arc has a condition which must be true
before the transition can take place. This condition can be the value of a
single signal or a more complex logic function. A slash (/) indicates the
Technical Data
20
MC68HC55
Functional Description
MC68HC55 Technical Data
Enable (Disable) Function
STATE TRANSITIONS OCCUR
ON POSEDGE OF XXX CLOCK
ASYNCHRONOUS RESET/ACTION(S)
IDLE
SYNCHRONOUS CONDITION/ACTION(S)
STATE_1
SYNCHRONOUS CONDITION/ACTION(S)
Figure 4-2. State Diagram Notation
end of the condition or equation which must be true for a transition to
occur. The statement or statements after the slash are executed during
the transition to the next state. These state diagrams are not a complete
description of the entire MC68HC55. They are intended to include just
enough relevant data to understand the operation of the state machines
and basic DSI/D functions.
Figure 4-3 describes how SPI transfers lead to transmit FIFO push
operations or transfer abort actions. State transitions in this state
machine are synchronous with rising edges of the SPI clock. The initial
state, SP_IDLE, is entered asynchronously whenever internal reset
becomes active or the SPI chip select input goes high. Upon entry to the
idle state, the SPI_WRITE signal is deactivated and the SPI bit counter
is set to 7 (it will count down as bits are received).
When the SPI chip select goes low (active), the first SPI transfer will be
a command byte and the first bit indicates a write or read command. The
SPI_WRITE signal takes on the value of this first bit, and the state
machine enters the COMMAND_TRANSFER state, where the
remaining bits of the command byte are received. The last three bits of
the command set the initial value of the register pointer (update occurs
on the next SPI clock falling edge). After the command byte is complete,
the state machine advances to the SPI_BURST state, which remains
active until the SPI chip select goes high or the MC68HC55 is reset.
MC68HC55
Functional Description
Technical Data
21
MC68HC55 Technical Data
STATE MACHINE TRANSITIONS
ON RISING EDGES OF SPI CLOCK
RESET or CS_INACTIVE/
SPI_WRITE = 0
SPI_BIT_PTR = 7
SPI_IDLE
CS_ACTIVE/
SPI_WRITE = DATA_IN
SPI_COMMAND_XFER
~LAST_SPI_BIT/
SPI_BIT_PTR = SPI_BIT_PTR – 1
LAST_SPI_BIT/
SPI_BIT_PTR = 7;
INITIALIZE REG_PTR FROM COMMAND BITS 2-0
SPI_BURST
LAST_SPI_BIT/
SPI_BIT_PTR = 7
REG_PTR = REG_PTR+1 (rolls over 7-0)
IF SPI_WRITE & REG_PTR = CTRL THEN ABORT
IF SPI_WRITE & REG_PTR = DATA_L THEN X_FIFO PUSH
IF R_FIFO_NOT_EMPTY & REG_PTR = DATA_L THEN R_FIFO_POP
~LAST_SPI_BIT/
SPI_BIT_PTR = SPI_BIT_PTR – 1
Figure 4-3. State Diagram — SPI Transfer
In the SPI_BURST state, new SPI characters are read-from or
written-to-and-read-from DSI/D registers. If the control register is written,
an ABORT request is generated which will immediately stop any DSI
transfer that was in progress (refer to Figure 4-4). If the DATA register
low byte is written, a transmit FIFO push operation is generated (see
Figure 4-5). If the DATA register low byte is accessed (read or written)
and there is at least one entry in the receive FIFO, a receive FIFO pop
operation is generated.
When a DSI transfer results in both an R_FIFO_PUSH and an
X_FIFO_POP, the R_FIFO_PUSH is performed first to avoid the
possibility of the transmit FIFO from getting ahead of the receive FIFO.
Figure 4-4 describes what happens during DSI serial transfers. State
transfers in this state machine are synchronous with positive edges on
the scaled SCLK and the initial state is WAIT_FRAME_DELAY. Initial
entry into this state is caused by a reset, abort, or by enable becoming
inactive. These conditions cause an asynchronous entry into this state.
The exit to the next state, TRANSFER_DSI_BITS, needs to be
synchronous.
Technical Data
22
MC68HC55
Functional Description
MC68HC55 Technical Data
Enable (Disable) Function
RESET, ABORT, or ~EN/
DSIF = 1, DSIS = 1
RESET DELAY-CNTR
STATE TRANSITIONS OCCUR
ON POSEDGE OF SCALED SCLK
WAIT_FRAME_DELAY
DELAY_OVER &
X_FIFO NOT_EMPTY/
DSIF = 0
WAIT-SIGNAL_DLY0...2 CAUSES 1 BIT-TIME DELAY TO FIRST BIT FALLING EDGE
WAIT_SIGNAL_DLY_0
WAIT_SIGNAL_DLY_1
WAIT_SIGNAL_DLY_2
DSI_BIT_PNTR = 11 or 19
DSIS = 0
DSIS=DSI_DATA_OUT
TRANSFER_DSI_BITS_0
X_FIFO_POP = 0
TRANSFER_DSI_BITS_1
DSI_X_POP
DSI_R_PUSH
~DSI_LAST_CRC_BIT/
DSI_BIT_PNTR = DSI_BIT_PNT – ;
DSIS = 0
DSIS = 1
TRANSFER_DSI_BITS_2
DSI_LAST_CRC_BIT/
DSIF = 1, DSIS = 1
RESET DELAY-CNTR
R_FIFO_PUSH = 1, X_FIFO_POP = 1
R_FIFO_PUSH = 0
Figure 4-4. State Diagram — DSI Transfer
When enable is true and there is at least one valid entry in the transmit
FIFO, the DSI frame signal is driven low to start a frame. States
WAIT_SIGNAL_DLY_0 through WAIT_SIGNAL_DLY_2 create a one
DSI bit-time delay before the start of the first data bit. After
WAIT_SIGNAL_DLY_2, the DSI_BIT_PTR gets initialized to 11 or 19
(depending upon the value in the MSx control bit), and the
TRANSFER_DSI_BITS_0 state is entered.
TRANSFER_DSI_BITS_0 through TRANSFER_DSI_BITS_2 form a
loop where each pass corresponds to one DSI bit time. During the first
third of the bit, the DSIxS pin is low; during the second third, DSIxS is
low for a 0 or high for a 1; during the last third of the bit time, DSIxS is
high. Provided this is not the end of the last CRC bit, the bit pointer is
decremented and the loop is repeated.
MC68HC55
Functional Description
Technical Data
23
MC68HC55 Technical Data
After the last CRC bit, the DSI_R_PUSH state is entered. This state
ensures that the CRC flag is stable prior to adjusting the receive (and
transmit) FIFO pointers. The DSI_X_POP state prevents an
X_FIFO_POP from occurring at the same time as an R_FIFO_PUSH.
After DSI_X_POP, the state transitions back to the
WAIT_FRAME_DELAY state. This state ensures proper frame spacing
is allowed to charge up the storage capacitors in remote nodes. Notice
that the delay counter was reset at the end of the last CRC bit so the
delay period can start to time out even while the DSI_R_PUSH and
DSI_X_POP states are being processed.
Figure 4-5 describes the operation of the transmit FIFO. This FIFO is
four levels deep, including the stage which is written into by the SPI and
the stage which provides the data for the current DSI serial transfer.
State transitions in this state machine occur at the trailing edges of
X_FIFO_PUSH and X_FIFO_POP.
STATE TRANSITIONS OCCUR
ON THE TRAILING EDGES OF
X_FIFO_PUSH AND X_FIFO_POP
~EN or ABORT or RESET/
X_PUSH_PTR = 0
X_POP_PTR = 0
X_FIFO_EMPTY = TRUE
TX_IDLE
X_FIFO_POP &
(X_POP_PTR = X_PUSH_PTR –1)/
X_POP_PTR = X_POP_PTR+1
X_FIFO_EMPTY = TRUE
X_FIFO_POP &
(X_POP_PTR != X_PUSH_PTR –1)/
X_POP_PTR = X_POP_PTR+1
X_FIFO_PUSH/
X_PUSH_PTR = X_PUSH_PTR+1
X_FIFO_EMPTY = FALSE
TX_NOT_EMPTY
X_FIFO_POP/
X_POP_PTR = X_POP_PTR+1
X_FIFO_PUSH &
X_PUSH_PTR != X_POP_PTR –1/
X_PUSH_PTR = X_PUSH_PTR+1
X_FIFO_PUSH &
X_PUSH_PTR = X_POP_PTR –1/
X_PUSH_PTR = X_PUSH_PTR+1
TX_FULL
Figure 4-5. State Diagram — Transmit FIFO
Technical Data
24
MC68HC55
Functional Description
MC68HC55 Technical Data
Enable (Disable) Function
When this FIFO is completely empty, the SPI can write four new values
to fill the FIFO without waiting for any action on the DSI side of the FIFO.
Values are “pushed” into the FIFO from the SPI and values are “popped”
after they have been serially sent out the DSI. When the FIFO is full,
additional attempts to write new data from the SPI side are ignored. The
host MCU should be sure the TFNFx status bit is set before writing more
data to the FIFO.
Reset, abort, or enable going to 0 cause asynchronous entry to the
TX_IDLE state which corresponds to the FIFO empty condition. The
push and pop pointers are cleared and X_FIFO_EMPTY is set to true.
X_FIFO_PUSH causes the push pointer to be incremented,
X_FIFO_EMPTY to be set to false, and the state to transition to
TX_NOT_EMPTY. The push request comes from the SPI transfer state
machine after a new value has been written into the FIFO.
From TX_NOT_EMPTY, several things can happen. Additional values
can be pushed into the FIFO, if the push pointer is the same as the pop
pointer minus one. This push fills the FIFO so the state advances to
TX_FULL. Each time a new data value is pushed into the FIFO, the push
pointer is incremented. From TX_NOT_EMPTY, values may also be
popped from the FIFO, freeing a stage for additional data. If the pop
pointer is the same as the push pointer minus one, the pop removes the
last value in the FIFO, so X_FIFO_EMPTY is set to true and the state
changes back to TX_IDLE. Each time a value is popped, the pop pointer
is incremented.
When the transmit FIFO is full, no additional data can be written into the
FIFO, so no new push requests will be generated. From TX_FULL, the
only valid change is caused by a pop which causes the pop pointer to
increment and the state goes back to TX_NOT_EMPTY. (Of course
reset, abort, or disable could cause the state to asynchronously change
to the TX_IDLE state).
MC68HC55
Functional Description
Technical Data
25
MC68HC55 Technical Data
Figure 4-6 describes the operation of the receive FIFO. State transitions
in this state machine occur at the trailing edges of R_FIFO_PUSH and
R_FIFO_POP. The receive FIFO is four levels deep, including the stage
which receives serial data from the current DSI transfer and the stage
that is accessible for SPI reads. To assure coherence of data and status,
each FIFO stage includes an extra bit for the CRC error status for each
received data word. Also for coherency, the DSI transfer state machine
imposes a delay at the end of a DSI transfer to assure that the CRC
status is stable before issuing the R_FIFO_PUSH request. The
RX_IDLE state is asynchronously entered at system reset, when the
enable bit goes low, or when there is an abort.
STATE TRANSITIONS OCCUR
ON THE TRAILING EDGES OF
R_FIFO_PUSH AND R_FIFO_POP
~EN or ABORT or RESET/
R_PUSH_PTR = 0
R_POP_PTR = 0
R_FIFO_EMPTY = TRUE
RX_IDLE
R_FIFO_POP &
(R_POP_PTR = R_PUSH_PTR – 1)/
R_POP_PTR = X_POP_PTR+1
R_FIFO_EMPTY = TRUE
R_FIFO_POP &
(R_POP_PTR != R_PUSH_PTR – 1)/
R_POP_PTR = R_POP_PTR+1
R_FIFO_PUSH/
R_PUSH_PTR = R_PUSH_PTR+1
R_FIFO_EMPTY = FALSE
RX_NOT_EMPTY
R_FIFO_PUSH &
(R_PUSH_PTR != R_POP_PTR – 1)/
R_PUSH_PTR = R_PUSH_PTR+1
R_FIFO_PUSH &
(R_PUSH_PTR = R_POP_PTR – 1)/
R_PUSH_PTR = R_PUSH_PTR+1
R_FIFO_POP/
R_POP_PTR = R_POP_PTR+1
OVERFLOW = FALSE
RX_FULL
Figure 4-6. State Diagram — Receive FIFO
During normal operation of the receive FIFO, values are pushed into the
FIFO from the DSI serial interface, causing the push pointer to
increment. After the SPI has read a data word, the receive FIFO is
popped, which makes the location available for additional data from the
DSI interface (it is the user’s responsibility to read status and data within
the same burst to assure coherence). The RX_NOT_EMPTY state is
active as long as there is some data in the FIFO.
Technical Data
26
MC68HC55
Functional Description
MC68HC55 Technical Data
SPI Communications
The RX_FULL state is entered when enough data has been pushed into
the FIFO from the DSI to cause the push pointer to catch up to the pop
pointer. Since it is not possible to introduce another DSI serial character
without reading (pop) the receive FIFO, it is not possible to overflow the
receive FIFO.
4.4 SPI Communications
The DSI/D is a slave peripheral device which is designed to interface to
a Freescake SPI configured as a master with CPHA = CPOL = 0. When
the MC68HC55 is deselected (CS pin at logic 1), CS, DI, and CLK are
all high-impedance inputs, and DO is disabled (forced to a
high-impedance state).
The first SPI transfer, after CS is driven from high to low (to select the
MC68HC55), is considered a read or write command to the DSI/D
(called a command transfer). Bit 7 of the command specifies a write (1)
or read (0) command while bits 2, 1, and 0 of the command specify the
address of one of the eight registers in the DSI/D. This command
establishes an internal register pointer. Data sent back to the master
MCU from the DSI/D during a command transfer is the read data from
the address previously pointed to (0s for the first transfer after reset).
Any additional SPI transfers that occur while CS remains low are called
data transfers. These additional data transfers write and/or read
successive DSI/D registers. The internal register pointer is incremented
after each data transfer and automatically rolls over from 7 (111) to 0
(000).
During read data transfers, the data sent from the DSI/D (DO) to the
MCU (MISO) is data that was read from the selected DSI/D register at
the end of the previous SPI transfer. Data sent from the master MCU
(MOSI) to the DSI/D (DI) is ignored. The internal DSI/D register pointer
is incremented at the end of the transfer (rolls over to 000 if it was 111
during this transfer).
During write data transfers, the data sent from the DSI/D (DO) to the
MCU (MISO) is data that was read from the selected DSI/D register at
the end of the previous SPI transfer (or at the falling edge of CS). Data
MC68HC55
Functional Description
Technical Data
27
MC68HC55 Technical Data
sent from the master MCU (MOSI) to the DSI/D (DI) is captured on rising
edges of SCK and written, bit by bit, to the selected register as data bits
are received (X_FIFO is not pushed unless all bits of DATA_L written).
At the end of the transfer, the internal DSI/D register pointer is
incremented (rolls over to 000 if it was 111 during this transfer).
The current data from the receive FIFOs (pointed to by the receive pop
pointers) is latched along with current status information at any falling
edge on the SPI chip select line. This assures that the information is
coherent in case further DSI activity causes any changes.
If the user violates normal procedure and writes the transmit data buffer
when TFNFx = 0 (indicating the FIFO is full), the new transfer is ignored.
Figure 4-7 Shows a typical burst transmission between the SPI of the
host MCU and the SPI in the MC68HC55. This example assumes the
DSI/D register pointer was pointing at the STATUS register (100) before
the start of the burst. The first SPI transfer is the command from the host
MCU (write address 000 in this case). During this first transfer, the data
returned to the MCU is the data that was latched from the status register
at the falling edge on CS. During the next SPI transfer, the data from
DSI0H (receive FIFO at pop pointer) is sent back to the MCU while new
data is written to DSI0H (transmit FIFO at push pointer). Notice CS
remains low throughout the whole burst sequence. As each SPI transfer
completes, the DSI/D register pointer is incremented to point at the next
register. At the end of this burst, the register pointer is left pointing to the
status register so it is ready for the next SPI burst.
CLK
DI
COMMAND - WRT 000
WRITE DSI0H (000)
WRITE DSI0L (001)
WRITE DSI1H (010)
WRITE DSI1L (011)
DO
READ STATUS
READ DSI0H (000)
READ DSI0L (001)
READ DSI1H (010)
READ DSI1L (011)
CS
Figure 4-7. SPI Burst Transfer Example
Technical Data
28
MC68HC55
Functional Description
MC68HC55 Technical Data
DSI/D to DSI/P Communications
Although it looks like the read and write for an address are occurring at
the same time, the changes caused by the write are not reflected in the
read that is taking place during the same SPI transfer. Also, if the burst
were extended such that it read status again, the status changes caused
earlier during the same burst would not be reflected (status is latched at
chip select fall).
4.5 DSI/D to DSI/P Communications
DSI/D to DSI/P communications involve a frame (DSIxF), a data signal
(DSIxS), and a data return (DSIxR) signal. This ASIC device supports
two independent channels of DSI communications and is used with a
matching 2-channel analog SmartMOS device called the DSI/P. All
DSI/D to DSI/P communications are initiated by the DSI/D in response
to register writes within the DSI/D which in turn are controlled by
commands received through the SPI.
Messages are eight or 16 bits of data (as controlled by the MSx bit in the
DSIxCTRL register) plus four bits of CRC, so messages contain 12 or 20
bits of information. CRC generation and checking are done in the DSI/D.
A message starts with a falling edge on the DSIxF signal which marks
the start of a frame. There is a one bit-time delay before the MSB (most
significant bit) of data appears on the DSIxS pin. Data bits start with a
falling edge on DSIxS. The low time is one-third of the bit time for a 1 and
two-thirds of a bit time for 0. Data is transmitted on DSIxS and received
on DSIxR pins simultaneously. Receive data is the captured level on the
DSIxR pin at the end of each bit time. At the end of the bit time for the
last CRC bit, the DSIxF pin returns to a logic high (idle level). The DSI/D
imposes a minimum delay between successive frames of 4, 8, 16, or 32
bit times.
The user initiates a message by writing (via the SPI interface from the
MCU) to the low byte of the data register (DSIxL). When 16-bit
messages are to be sent, this allows the user to write the DSIxH register
and then the DSIxL register before the combined 16-bit data value
(DSIxH:DSIxL) is sent. The user should first check the TFNFx status flag
to be sure the transmit FIFO is not full before writing a new data value to
DSIxH and/or DSIxL. When the minimum inter-frame delay has been
MC68HC55
Functional Description
Technical Data
29
MC68HC55 Technical Data
satisfied, the DSIxF pin will go low, indicating the start of a new transfer
frame.
Data is shifted out of DSIxS (MSB first) and shifted in to DSIxR at the
same time. As a message is received it is stored bit-by-bit into the next
available receive FIFO location (if the FIFO is already full, an internal
overflow flag is set and the serial receive data is lost). For each data
value in the receive FIFO, there is a 1-bit status flag to indicate if there
was a CRC error while receiving the data. At the end of a DSI transfer
(and after the CRC error status is stable), the RFNEx flag is set (if it
wasn’t already) to indicate there is data in the receive FIFO to be read.
4.6 CRC Generation/Checking
Whenever a message is sent from the DSI/D to the DSI/P, a 4-bit CRC
value is computed and serially sent as the next four bits after the LSB
(least significant bit) of the data. The DSI/P passes the message,
including the CRC bits, along to a remote peripheral which computes a
separate CRC value as the message data is received. If this computed
CRC does not agree with the CRC value received in the message, the
peripheral device considers the message invalid.
Messages received by the DSI/D include a 4-bit CRC value which was
computed in the peripheral device that is responding to the DSI/D. As the
DSI/D receives a message, it computes a separate 4-bit CRC value and
compares this with the CRC value in the received message. If these
values do not agree, the message is considered invalid and the ERx
status flag is set as the receive data is transferred into the receive data
buffer.
When no remote peripheral responds to a DSI/D message, the data
pattern received by the DSI/D will be all 0s with a CRC value of 0000
which is detected as a CRC error. The correct CRC value for a $00 or
$0000 message would be 1010. The same 1010 CRC value applies for
both 8- and 16-bit messages of all 0s.
CRC errors are indicated by the ER0 and ER1 status bits. ERx status
bits are cleared when new data is transferred from the shifter to the read
data buffer and the CRC value was correct.
Technical Data
30
MC68HC55
Functional Description
MC68HC55 Technical Data
CRC Computation
4.7 CRC Computation
The 4-bit CRC uses an initialization value of 1010 and a polynomial of
x4+1. The following is a VHDL description of the CRC algorithm.
---------------------------------------------------------- Calculates the 4-bit CRC (x^4 + 1) serially for
-- 8 or 16 bits of data.
--------------------------------------------------------constant CRCPoly: std_logic_vector := “0001”; -- x^4 +1
constant InitCrc: std_logic_vector := “1010”;
procedure SerialCalculateCRC4(CRC: input std_logic_vector;Data: in std_logic) is
variable Xor1: std_logic;
begin
Xor1 := CRC(3) xor Data;
CRC := CRC(2 downto 0) & ‘0’; -- Shift left 1 bit
if Xor1 = ‘1’ then
CRC := CRC xor CRCPoly
end if;
end SerialCalculateCRC4;
4.8 Message Size Special Cases
The response to any 8-bit message is expected to be another 8-bit
message and the response to any 16-bit message is expected to be
another 16-bit message. All DSI messages are initiated by the master
MCU through the DSI/D. This cuases to some special cases when there
is a transition from one message size to a different message size. The
first DSI messages that set up the addresses of the DSI system
peripherals are 16-bit messages. The firing commands are also 16-bit
messages. All other messages are eight bits.
MC68HC55
Functional Description
Technical Data
31
MC68HC55 Technical Data
When the previous message was eight bits and the current message is
16 bits, the response message (which is also eight bits) finishes before
the current message frame and the CRC bits look like data bits 7 through
4 in the new 16-bit message format. Since the CRC validation of this
8-bit message response is not reliable, this 8-bit response should not be
used.
When the previous message was 16 bits and the current message is
eight bits, the response message (which is also 16 bits) cannot finish
before the current message frame. The last four data bits and the four
CRC bits are lost. Bits 7 through 4 of the 16-bit response message look
like the CRC bits of an 8-bit response and almost certainly would not be
correct. Since the response is incomplete and the CRC check is not
valid, this response is not useful.
The 16- to 8-bit message size transition normally only occurs after
setting up the addresses of the DSI bus peripherals. During address
setup, a message with address 0000 is sent to attempt to set the
address of the next peripheral on the daisy-chained bus. Before any
peripherals have been assigned an address, their bus switches are
opened so the addressing message only goes to the first peripheral in
line. As each peripheral gets an address, it closes its bus switch so the
next address assignment command can reach the next peripheral in line
on the bus. Each peripheral responds to an address assignment only
once (during the next message after the command that set its address).
When the master MCU fails to receive a response, it knows it has passed
the last peripheral, and that the (16-bit) address assignment command
that received no response will have no response either. At this point, the
master will begin sending 8-bit messages and the first such message
frame will have no meaningful response associated with it.
The first message after reset is also a special case because there was
no previous message and therefore there will be no meaningful
response during the first message transfer.
Technical Data
32
MC68HC55
Functional Description
MC68HC55 Technical Data
Maximum Ratings
Section 5. Timing and Electrical Specifications
5.1 Maximum Ratings
Maximum ratings summarized here describe the worst case conditions
that the device can be subjected to without risk of erroneous operation
or permanent damage.
Parameter
Symbol
Min
Max
Units
Maximum voltage on input pins
VDD, SCLK, CLK, DI, DO, CS, RESET,
DSI1R, DSI0R
VIn
–0.3
7.0
V
Operating temperature
TA
–40
85
°C
Tstg
–55
150
°C
TJ
—
150
°C
TLead
—
230
°C
Thermal resistance
θJA
—
125
°C/W
Continuous current per pin
ID
–5.00
5.00
mA
Storage temperature
Operating junction temperature
Lead temperature (soldering, 10 seconds)
MC68HC55
Timing and Electrical Specifications
Technical Data
33
MC68HC55 Technical Data
5.2 DC Electrical Characteristics
Parameter(1)
Symbol
Min
Max
Units
Supply current
SCLK = 450 kHz
IDD
—
3
mA
Input high voltage
SCLK, CLK, DI, CS, RESET, DSI1R, DSI0R
VIH
0.7*VDD
VDD+0.3
V
Input low voltage
SCLK, CLK, DI, CS, RESET, DSI1R, DSI0R
VIL
–0.3
0.3*VDD
V
Output high voltage (@IOH = –800 µA)
DO, INT, DSI1F, DSI0F, DSI1S, DSI0S
VOH
0.8*VDD
VDD
V
Output low voltage (@IOL = 800 µA)
DO, INT, DSI1F, DSI0F, DSI1S, DSI0S
VOL
0.0
0.2*VDD
V
Input leakage
SCLK, CLK, DI, CS, RESET, DSI1R, DSI0R
IIn
—
±10
µA
I/O port three-state leakage
DO
IOZ
—
±10
µA
1. 4.5 volts ≤ VDD ≤ 5.5 volts; –40°C ≤ TAMB ≤ 85°C
5.3 Timing Characteristics for DSI/D to DSI/P Interface
This section describes the AC timing characteristics of the DSI/D to
DSI/P interface pins (DSIxF, DSIxS, DSIxR). The signal bit time is
derived by dividing the master clock input (SCLK) by 3, 6, 12, or 24 (see
Figure 3-7 description of CDIVx[B:A] control bits). The bit time (tBit) is
then used as the basis for other timing specifications.
Technical Data
34
MC68HC55
Timing and Electrical Specifications
MC68HC55 Technical Data
Timing Characteristics for DSI/D to DSI/P Interface
Parameter(1)
Symbol
Min
Typ
Max
Units
Communication rate (MC68HC55 to DSI/P)
—
5
—
150
kbits/s
Signal bit time (tSCLKCYC * 3, 6, 12, or 24)
tBit
6.67
—
200
µs
Master clock cycle time
tSCLKCYC
2.22
tBit/3
66.7
µs
Master clock duty cycle
—
40
50
60
%
Frame start to signal delay time
tDLY1
tBit–0.2
tBit
tBit+0.2
µs
Signal end to frame end delay time
tDLY2
–0.2
0
0.2
µs
Signal low time for logic 0
(33.3% duty cycle guaranteed by design)
t0LO
2/
3tBit–0.2
2/
3tBit
2/
µs
Signal low time for logic 1
(66.7% duty cycle guaranteed by design)
t1LO
1/
3tBit–0.2
1/
3tBit
1/
µs
Receive data setup — DSI1R, DSI0R
tRSU
20
—
—
ns
Receive data hold — DSI1R, DSI0R
tRH
20
—
—
ns
Rise time (20% VDD to 70% VDD)
DSI1F, DSI1S, DSI0F, DSI0S
tRise
—
—
100
ns
Fall time (70% VDD to 20% VDD)
DSI1F, DSI1S, DSI0F, DSI0S
tFall
—
—
100
ns
3tBit+0.2
3tBit+0.2
1. 4.5 volts ≤ VDD ≤ 5.5 volts; –40°C ≤ TAMB ≤ 85°C; C ≤ 100 pF load on all DSI/D to DSI/P pins
tDLY2
tDLY1
DSIxF
tFall
LOGIC 0 BIT TIME
tBit
LOGIC 1 BIT TIME
tBit
LAST CRC BIT TIME
tRise
DSIxS
t0LO
t1LO
tRSU
DSIxR
tRH
Figure 5-1. DSI/D to DSI/P Interface Timing
MC68HC55
Timing and Electrical Specifications
Technical Data
35
MC68HC55 Technical Data
5.4 Timing Characteristics for SPI Interface
The table and Figure 5-2 describe AC timing characteristics of the SPI
pins. This timing is compatible with a Freescale SPI system that is set up
as a master with CPHA = CPOL = 0. Figure 5-3 is a general timing
diagram for a single SPI transfer.
Parameter(1)
Symbol
Min
Typ
Max
Units
SPI clock frequency
fSPI
0
—
4
MHz
SPI clock cycle time
tCYC
227
—
—
ns
SPI clock high time
tHI
91
125
—
ns
SPI clock low time
tLO
91
125
—
ns
SPI CS lead time
tLead
227
—
—
ns
SPI CS lag time
tLag
227
—
—
ns
Data setup time
DI valid before CLK rising edge
tSU
25
—
—
ns
Data hold time
DI valid after CLK rising edge
DO valid after CLK falling edge
tH
tHO
25
0
—
—
—
—
ns
Access time
CS fall to DO valid
tA
—
—
100
ns
Data valid time
CLK falling edge to DO valid
tV
—
—
100
ns
tDIS
—
—
100
ns
Rise time (20% VDD to 70% VDD)
CLK, DO
tR
—
—
25
ns
Fall time (70% VDD to 20% VDD)
CLK, DO
tF
—
—
25
ns
Output disable time
CS rise to DO Hi-Z
1. 4.5 volts ≤ VDD ≤ 5.5 volts; –40°C ≤ TAMB ≤ 85°C; C ≤ 200 pF load on all SPI pins
Technical Data
36
MC68HC55
Timing and Electrical Specifications
MC68HC55 Technical Data
Timing Characteristics for SPI Interface
CS
tCYC
tLead
tHI
tLag
tLO
tR
tF
CLK
tSU
tH
LSB
MSB
DI
tA
tV
DO
tHO
tDIS
LSB
MSB
Figure 5-2. SPI Interface Timing
BEGIN
TRANSFER
END
SCK
SAMPLE I
DI PIN
CHANGE O
DO PIN
MSB
LSB
SEL CS
MASTER
Figure 5-3. SPI Timing Diagram for a Single Transfer
MC68HC55
Timing and Electrical Specifications
Technical Data
37
MC68HC55 Technical Data
Section 6. Mechanical Data and Ordering Information
6.1 Pin Assignments
The MC68HC55 is available in the 16-pin small outline integrated circuit
(SOIC) package.
SCLK
1
16
VDD
CLK
2
15
DSI0F
DI
3
14
DSI0S
DO
4
13
DSI0R
CS
5
12
N/C
RESET
6
11
DSI1F
INT
7
10
DSI1S
GND
8
9
DSI1R
16-lead narrow body SOIC, package #751B-05 issue J
Figure 6-1. MC68HC55CD Pin Assignments
6.2 Mechanical Data
±A±
16
NOTES:
1. DIMENSIONING AND TOLERANCING PER ANSI
Y14.5M, 1982.
2. CONTROLLING DIMENSION: MILLIMETER.
3. DIMENSIONS A AND B DO NOT INCLUDE
MOLD PROTRUSION.
4. MAXIMUM MOLD PROTRUSION 0.15 (0.006)
PER SIDE.
5. DIMENSION D DOES NOT INCLUDE DAMBAR
PROTRUSION. ALLOWABLE DAMBAR
PROTRUSION SHALL BE 0.127 (0.005) TOTAL
IN EXCESS OF THE D DIMENSION AT
MAXIMUM MATERIAL CONDITION.
9
±B±
1
P
8 PL
0.25 (0.010)
8
M
B
S
G
R
K
F
X 45
C
±T±
SEATING
PLANE
M
D
J
16 PL
0.25 (0.010)
M
T B
S
A
S
DIM
A
B
C
D
F
G
J
K
M
P
R
MILLIMETERS
INCHES
MIN
MAX
MIN
MAX
9.80
10.00
0.386
0.393
3.80
4.00
0.150
0.157
1.35
1.75
0.054
0.068
0.35
0.49
0.014
0.019
0.40
1.25
0.016
0.049
1.27 BSC
0.050 BSC
0.19
0.25
0.008
0.009
0.10
0.25
0.004
0.009
0
7
0
7
5.80
6.20
0.229
0.244
0.25
0.50
0.010
0.019
Figure 6-2. 16-pin SOIC Package Dimensions
Technical Data
38
MC68HC55
Mechanical Data and Ordering Information
MC68HC55 Technical Data
Ordering Information
6.3 Ordering Information
Package
Temperature Range
MC Order Number
16-pin SOIC
–40°C to 85°C
MC68HC55CD
MC68HC55
Mechanical Data and Ordering Information
Technical Data
39
How to Reach Us:
Home Page:
www.freescale.com
E-mail:
[email protected]
USA/Europe or Locations Not Listed:
Freescale Semiconductor
Technical Information Center, CH370
1300 N. Alma School Road
Chandler, Arizona 85224
+1-800-521-6274 or +1-480-768-2130
[email protected]
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)
[email protected]
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 Hong Kong Ltd.
Technical Information Center
2 Dai King Street
Tai Po Industrial Estate
Tai Po, N.T., Hong Kong
+800 2666 8080
[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]
MC68HC55
Rev. 2, 10/2006
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. 2006. All rights reserved.