AN2320 Freescale Semiconductor / Motorola, AN2320 Datasheet

no-image

AN2320

Manufacturer Part Number
AN2320
Description
Interfacing the MCF5272 to a Standalone CAN Controller
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Application Note
AN2320/D
Rev. 0.1, 8/2002
Interfacing the MCF5272 to a
Standalone CAN Controller
Lynne Kelly
TECD Applications
The Controller Area Network (CAN) protocol is a serial communications protocol developed
in the early 1980’s by Robert Bosch GmbH for the automotive sector and is currently the in
vehicle Local Area Network (LAN) standard in Europe. The main CAN attributes are low
cost, real-time capability, and the ability to function in harsh electrical environments with a
high degree of reliability and safety (making it suitable not only for automotive applications
but other cost sensitive, safety critical, real-time applications such as industrial control,
building control, building automation, embedded networks, and medical equipment).
The ColdFire® microprocessor is an established cost-sensitive solution for industrial and
embedded network applications today. Interfacing the MCF5272 ColdFire processor to a
standalone CAN controller, with the intention of integrating CAN on a later ColdFire
derivative with embedded Ethernet, will provide a solution for an increasing number of
industrial applications requiring not only field bus communication peripherals but Ethernet
connectivity also. These applications use a field bus to carry time-critical routine data between
a central system controller and remote units such as motion controllers and sensors and require
an Ethernet link to transfer data which is processed in larger blocks on an irregular basis.
The Ethernet link facilitates the communication with standard PCs, typically running email,
database applications, and web browsers. At the extreme, internet capability would potentially
allow plants to be monitored from anywhere on the globe. For the real-time requirements at
the field bus layer, CAN would be required. Ethernet is probabilistic in that it is often uncertain
when a device on the network will be able to communicate as there is typically no guarantee
of message transfer and no prioritisation. CAN is more deterministic and hence more reliable
for the cyclical and routine transfer of data at the interface to units that require reliable and
timely control (such as motors, robotics, and PLCs).
This application note details the hardware design and software development of a reference
design which interfaces the MCF5272 microprocessor to the Infineon 82C900 standalone
CAN controller. It is recognised that an integrated solution would undoubtedly be more cost
effective, would make the design of PCBs simpler, would result in smaller space requirements,
and could reduce the CPU loading by half. However, the majority of today’s 32-bit integrated
products are focussed on automotive markets and none offer both embedded Ethernet and
CAN. This two-chip ColdFire solution is intended to provide a migration path to the first
ColdFire product with on-chip CAN and the first 32-bit microprocessor with both on-chip
CAN and on-chip Ethernet. Standalone CAN controllers still tend to ship in large numbers
which helps drive the cost of the device down. This, coupled with the low cost/performance
ratio of ColdFire microprocessors in general, makes the two-chip solution a viable alternative
in the interim.
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com

Related parts for AN2320

AN2320 Summary of contents

Page 1

... Freescale Semiconductor, Inc. Application Note AN2320/D Rev. 0.1, 8/2002 Interfacing the MCF5272 to a Standalone CAN Controller Lynne Kelly The Controller Area Network (CAN) protocol is a serial communications protocol developed in the early 1980’s by Robert Bosch GmbH for the automotive sector and is currently the in TECD Applications vehicle Local Area Network (LAN) standard in Europe ...

Page 2

Freescale Semiconductor, Inc. MCF5272 Microprocessor The reference design is based on the M5272C3 development board using a daughter card to provide the standalone CAN controller circuitry. This application note details the design process, starting with an overview of the MCF5272 ...

Page 3

Freescale Semiconductor, Inc. with four TDM ports, a software HDLC module, a QSPI module, and support for a 3 channel PWM. In addition, it retains the System Integration Module, the Chip-Select Module, the MAC and hardware divide unit, the General ...

Page 4

Freescale Semiconductor, Inc. CAN Transceiver Regarding the interface, this has been touched on before. Few standalone CAN controllers on the market today have non-multiplexed bus interfaces and none offer a glueless interface to the MCF5272 external bus. Design complexity and ...

Page 5

Freescale Semiconductor, Inc. +3.3V GND +5V MAX682 Charge Pump Figure 2. CAN Daughter-Card Circuitry 2.1 SPI Interface The MCF5272 QSPI module provides a glueless SPI interface to the 82C900’s synchronous serial channel (SSC). The QSPI and SSC hardware interfaces are ...

Page 6

Freescale Semiconductor, Inc. SPI Interface A = QSPI clock delay. Determines the length of delay from the assertion of the chip-select to a valid QSPI_CLK delay. Programmed in the QSPI delay register (QDLYR Delay after transfer. Determines the ...

Page 7

Freescale Semiconductor, Inc. Infineon has added an optional fifth signal, a ready signal (RDY), to the standard SPI interface. This is a handshake signal, which can be used to indicate when the serial interface can be accessed by the host. ...

Page 8

Freescale Semiconductor, Inc. Clocking READ ACCESS Serial Clk 8 CLKS 8 CLKS Data In Addr Data Out Data Name A CS active to SerialClk active B Address transfer to data byte transfer, read access C Data ...

Page 9

Freescale Semiconductor, Inc. where CLKIN is the system clock frequency (66 MHz here) and B represents the value in the baud field of the QMR register and lies between 1 and 255 baud rate of 6MBps would require ...

Page 10

Freescale Semiconductor, Inc. 82C900 Extended I/O Both the message-specific and the CAN node specific global interrupts are distributed among eight interrupt nodes, CAN interrupt nodes 0 – 7, via Message Configuration and Global Interrupt Node Pointer registers. Each node can ...

Page 11

Freescale Semiconductor, Inc. 3.1 Transmitting and Receiving over the MCF5272 QSPI Interface The QSPI module is a standard SPI interface with queuing capabilities. Using an 80-byte block of static RAM, the QSPI module can queue transfers without ...

Page 12

Freescale Semiconductor, Inc. Transmitting and Receiving over the MCF5272 QSPI Interface Point to Transmit RAM Point to Transmit RAM Set QAR to 0x00 to point to first queue entry in command Set QAR to 0x00 to point to first queue ...

Page 13

Freescale Semiconductor, Inc. Transmitting and Receiving over the MCF5272 QSPI Interface vary between the different accesses (for example, the minimum time for a read access can be three times as much as a write access), it may be desirable to ...

Page 14

Freescale Semiconductor, Inc. Transmitting and Receiving over the MCF5272 QSPI Interface MCF5272_WR_QSPI_QAR(imm, MCF5272_QSPI_QAR_Tx); /*Write 82C900 register address into Tx RAM via QDR indicating a write*/ MCF5272_WR_QSPI_QDR(imm,(uint8)(CanRegAddr|CanWriteMask)); /*Write data for 82C900 register into Transmit RAM via QDR*/ MCF5272_WR_QSPI_QDR(imm,Data); /*Set Wrap register ...

Page 15

Freescale Semiconductor, Inc. Accessing the 82C900 Register 3.2 Accessing the 82C900 Register The 82C900 register set is divided between the global control shell and the message buffer unit. The global control shell registers are known as the standalone shell registers, ...

Page 16

Freescale Semiconductor, Inc. 82C900 Initialisation MCF5272_WR_QSPI_QDR(imm,Data); MCF5272_WR_QSPI_QWR(imm,MCF5272_QSPI_QWR_SendByte); MCF5272_WR_QSPI_QDLYR(imm,MCF5272_QSPI_QDLYR_CanEnable); while (!(MCF5272_RD_QSPI_QIR(imm) & MCF5272_QSPI_QIR_QSPIFinish /*The upper 4 bits of the register address are passed.*/ void CAN_SetPageReg(uint8 PageNumber) { MCF5272_IMM *imm = mcf5272_get_immp(); MCF5272_WR_QSPI_QAR(imm,MCF5272_QSPI_QAR_Tx); /*Page register address. Can be accessed regardless ...

Page 17

Freescale Semiconductor, Inc. 82C900 Initialisation 15 0 Figure 7. Node A/B Control Registers (ACR/BCR)—Lower 16-bits Table 1. Node A/B Control Registers (ACR/BCR)—Lower 16-bits Field Descriptions Bits Name 15–8 — Reserved 7 CA Node used for CAN communication over the bus ...

Page 18

Freescale Semiconductor, Inc. CAN Transmit and Receive Tsync The CAN bit time, therefore, equates to period of the bit time quantum. The TSEG1, SJW, and TSEG2 fields in the bit timing register are used to define the different segments and ...

Page 19

Freescale Semiconductor, Inc. CAN Transmit and Receive valid or invalid, and to signal the update of a message. The configuration register determines which CAN node the message object is assigned to, defines the message identifier length and number of data ...

Page 20

Freescale Semiconductor, Inc. CAN Transmit and Receive __interrupt__ void ext_irq1_handler (void) { MCF5272_IMM *imm = mcf5272_get_immp(); printf("ext_irq1_handler\n"); /*Read received data and output over M5272C3 terminal uart*/ CAN_MsgObj_RxData(Msg1,8); /*Set Int1 IPL =6, for /Out1*/ MCF5272_WR_SIM_ICR1(imm,0xE8888888); /*Msg obj interrupt pending flag reset*/ ...

Page 21

Freescale Semiconductor, Inc. CAN Transmit and Receive /*Msg obj interrupt pending flag reset*/ QSPI_SendByte(CAN_MSG_CTRL + (Msg*0x20), 0xFD); /*Msg obj remote request flag reset*/ QSPI_SendByte(CAN_MSG_CTRL+ (Msg*0x20),0x7F); /*Msg obj transmission request flag reset*/ QSPI_SendByte(CAN_MSG_CTRL+1 + (Msg*0x20), 0xDF); /*Inhibit transmission for Tx or ...

Page 22

Freescale Semiconductor, Inc. CAN Transmit and Receive enables a message object to generate an interrupt on successful transmission or CAN_MsgObj_IntEnable reception of data. It selects the interrupt node pointer to be used which can then be routed to the external ...

Page 23

Freescale Semiconductor, Inc. Revision History CAN_MsgObjTx_Reset resets a message object after transmission and must be called anytime transmit data updated. void CAN_MsgObjTx_Reset(uint8 Msg) { /*Msg obj tagged invalid to allow update*/ QSPI_SendByte(CAN_MSG_CTRL + (Msg*0x20), 0x7F); /*Msg obj ...

Page 24

... Motorola and the Stylized M Logo are registered in the U.S. Patent and Trademark Office. digital dna is a trademark of Motorola, Inc. All other product or service names are the property of their respective owners. Motorola, Inc Equal Opportunity/Affirmative Action Employer. © Motorola, Inc. 2002 AN2320/D For More Information On This Product, Go to: www.freescale.com ...

Related keywords