Programming Example – Assign MIO Pin as CAN Reference Clock Input

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
UG1085
Release Date
2022-09-15
Revision
2.3 English

This example assigns MIO pin 45 to the clock input reference for the CAN controller. Configure MIO pin 45 for the external CAN reference clock. These steps refer to the IOU_SLCR register set.

1.Route the reference clock. Write 32h'0000_1200 to the MIO_PIN_45 register.

2.Disable the output driver. Write a 1 to the MIO_MST_TRI1 [PIN_45_TRI] bit.

3.Select CMOS input (not Schmitt). Write 0 to BANK1_CTRL3 [20] bit.

4.Select the internal pull-up resister. Write 1 to BANK1_CTRL4 [20] bit.

5.Enable the internal pull-up resister. Write 1 to BANK1_CTRL5 [20] bit.

The output controls, [drive0], [drive1], and [slow_fast_slew_n] do not need programming, but it is recommended to select minimum drive and slow slew rate. The voltage applied to PSIO bank 1 can be read using the BANK1_STATUS [0] bit.

Configure the reference clock at the controller. These steps refer to the IOU_SLCR.CAN_MIO_CTRL register.

6.Select the clock path to use MIO pin 45. Write 1 to the [CAN_REF_SEL] bit.

7.Select MIO Pin 45. Write 2Dh (45d) to the [CAN_MUX] bit.

8.Choose an active reference clock edge for RX using the [CAN_RXIN_REG] bit.