MPC5748G CAN3 PIN configure

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MPC5748G CAN3 PIN configure

957 Views
tony_huang
Contributor III

//can3

    SIUL2.MSCR[88].B.SSS  = 1;    /* Pad PF8: Source signal is CAN3_TX */

    SIUL2.MSCR[88].B.OBE  = 1;    /* Pad PF8: Output Buffer Enable */

    SIUL2.MSCR[88].B.SRC  = 3;    /* Pad PF8: Maximum slew rate */

    //SIUL2.MSCR[89].B.IBE  = 1;    /* Pad PF9: Enable pad for input - CAN3_RX */

    SIUL2.MSCR[703].B.IBE  = 1;    /* Pad PF9: Enable pad for input - CAN3_RX */

    SIUL2.IMCR[191].B.SSS = 4;    /* CAN3_RX: connected to pad PF9 */

    SIUL2.MSCR[PF12].R = 0x02000000;/* Configure GPIOs as output */

    SIUL2.GPDO[PF12].R    = 1;      /* CAN3STB */

    SIUL2.MSCR[PC6].R = 0x02000000; /* Configure GPIOs as output */

    SIUL2.GPDO[PC6].R     = 1;      /* CAN3SHDN */

 

Hi,Now I am using CAN3 ISR.In order to configure CAN TX RX Pins,

SIUL2.MSCR[89].B.IBE  = 1;     /* Pad PF9: Enable pad for input - CAN3_RX */

SIUL2.MSCR[703].B.IBE  = 1;    /* Pad PF9: Enable pad for input - CAN3_RX */

which code is right?

Labels (1)
0 Kudos
2 Replies

629 Views
martin_kovar
NXP Employee
NXP Employee

Hi,

configuration of CAN3 RX should be following:

    SIUL2.MSCR[89].B.IBE = 1;    /* Pad PF9: Enable pad for input - CAN3_RX */
    SIUL2.IMCR[191].B.SSS = 4;  /* Pad PF9: Enable pad for input - CAN3_RX */

You cannot use construction SIUL2.MSCR[703], because maximal index of MSCR is 263. Look at the header file in your project.

But if you count index for IMCR register, you have to take number from documentation. CAN3RX has number 703 in documentation (please look at the figure below) and subtract number 512. Result is number 191, which is used in IMCR index in the code above.

pastedImage_1.png

Correct IMCR index you can also find in Input Muxing tab in IO_Signal_Description_and_Input_multiplexing_tables

pastedImage_3.png

I know, it is little bit complicated, so I hope my description is clear. If not, please write me back.

Regards,

Martin

0 Kudos

629 Views
tony_huang
Contributor III

Hi,I am confgureing CAN pins like 3,4,5,6,7 for CAN module;

//can3

    SIUL2.MSCR[88].B.SSS  = 1;    /* Pad PF8: Source signal is CAN3_TX */

    SIUL2.MSCR[88].B.OBE  = 1;    /* Pad PF8: Output Buffer Enable */

    SIUL2.MSCR[88].B.SRC  = 3;    /* Pad PF8: Maximum slew rate */

    SIUL2.MSCR[89].B.IBE  = 1;    /* Pad PF9: Enable pad for input - CAN3_RX */

    SIUL2.IMCR[191].B.SSS = 4;    /* CAN3_RX: connected to pad PF9 */

    //can4

    SIUL2.MSCR[94].B.SSS  = 1;    /* Pad PF14: Source signal is CAN4_TX */

    SIUL2.MSCR[94].B.OBE  = 1;    /* Pad PF14: Output Buffer Enable */

    SIUL2.MSCR[94].B.SRC  = 3;    /* Pad PF14: Maximum slew rate */

    SIUL2.MSCR[95].B.IBE  = 1;    /* Pad PF15: Enable pad for input - CAN4_RX */

    SIUL2.IMCR[192].B.SSS = 3;    /* CAN4_RX: connected to pad PF15 */

   

    //can5

    SIUL2.MSCR[96].B.SSS  = 1;    /* Pad PG0: Source signal is CAN5_TX */

    SIUL2.MSCR[96].B.OBE  = 1;    /* Pad PG0: Output Buffer Enable */

    SIUL2.MSCR[96].B.SRC  = 3;    /* Pad PG0: Maximum slew rate */

    SIUL2.MSCR[97].B.IBE  = 1;    /* Pad PG1: Enable pad for input - CAN5_RX */

    SIUL2.IMCR[193].B.SSS = 2;    /* CAN5_RX: connected to pad PG1 */

   

    //can6

    SIUL2.MSCR[80].B.SSS  = 4;    /* Pad PF0: Source signal is CAN6_TX */

    SIUL2.MSCR[80].B.OBE  = 1;    /* Pad PF0: Output Buffer Enable */

    SIUL2.MSCR[80].B.SRC  = 3;    /* Pad PF0: Maximum slew rate */

    SIUL2.MSCR[26].B.IBE  = 1;    /* Pad PB10: Enable pad for input - CAN6_RX */

    SIUL2.IMCR[194].B.SSS = 1;    /* CAN6_RX: connected to pad PB10 */

   

    //can7

    SIUL2.MSCR[104].B.SSS  = 4;    /* Pad PG8: Source signal is CAN7_TX */

    SIUL2.MSCR[104].B.OBE  = 1;    /* Pad PG8: Output Buffer Enable */

    SIUL2.MSCR[104].B.SRC  = 3;    /* Pad PG8: Maximum slew rate */

    SIUL2.MSCR[105].B.IBE  = 1;    /* Pad PG9: Enable pad for input - CAN7_RX */

    SIUL2.IMCR[195].B.SSS  = 2;    /* CAN7_RX: connected to pad PG9 */

 

Is there any wrong?

0 Kudos