AN2320 Freescale Semiconductor / Motorola, AN2320 Datasheet - Page 14

no-image

AN2320

Manufacturer Part Number
AN2320
Description
Interfacing the MCF5272 to a Standalone CAN Controller
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
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 for byte transfer (2 bytes), starting at top of Tx RAM*/
MCF5272_WR_QSPI_QWR(imm,MCF5272_QSPI_QWR_SendByte);
/*Set SPE flag in Delay register to enable transfer*/
MCF5272_WR_QSPI_QDLYR(imm,MCF5272_QSPI_QDLYR_CanEnable);
/*Poll the QSPI finish flag for completion*/
while (!(MCF5272_RD_QSPI_QIR(imm) & MCF5272_QSPI_QIR_QSPIFinish))
}
Reading an 82C900 register:
/*The address of 82C900 register to be read is passed*/
uint8 QSPI_ReadByte(uint16 CanRegAddr)
{
/*Determine 82C900 register address*/
/*Point to top of Tx RAM*/
/*Write 82C900 register address to be read into Tx RAM via QDR*/
/*Dummy transmission to ensure QSPI clock enable for receiving byte*/
/*Set Wrap register for byte read transfer (2 bytes) starting at top of Tx RAM*/
/*Set SPE flag in Delay register to enable transfer*/
/*Poll the QSPI finish flag for completion*/
/*Point to top of Rx RAM*/
/*Read dummy byte received as address being transmitted*/
/*Read data received from the 82C900 register*/
}
14
MCF5272_IMM *imm = mcf5272_get_immp();
CAN_SetPageReg((uint8)(CanRegAddr>>7));
MCF5272_WR_QSPI_QAR(imm,MCF5272_QSPI_QAR_Tx);
MCF5272_WR_QSPI_QDR(imm,(uint8)(CanRegAddr&CanReadMask));
MCF5272_WR_QSPI_QDR(imm,(uint8)(CanRegAddr&CanReadMask));
MCF5272_WR_QSPI_QWR(imm,MCF5272_QSPI_QWR_ReadByte);
MCF5272_WR_QSPI_QDLYR(imm,MCF5272_QSPI_QDLYR_CanEnable);
while (!(MCF5272_RD_QSPI_QIR(imm) & MCF5272_QSPI_QIR_QSPIFinish))
MCF5272_WR_QSPI_QAR(imm,MCF5272_QSPI_QAR_Rx);
dummy
RxByte = (uint8)MCF5272_RD_QSPI_QDR(imm);
= (uint8)MCF5272_RD_QSPI_QDR(imm);
;
;
Interfacing the MCF5272 to a Standalone CAN Controller
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA

Related parts for AN2320