SPRZ425G November   2014  – November 2026 TDA3LA , TDA3LX , TDA3MA , TDA3MD , TDA3MV

 

  1.   1
  2. 1Introduction
    1.     Related Documentation
    2.     Trademarks
    3.     Modules Impacted
  3. 2Silicon Advisories
    1.     i202
    2.     i694
    3.     i709
    4.     i727
    5.     i729
    6.     i767
    7.     i813
    8.     i814
    9.     i826
    10.     i829
    11.     i866
    12.     i868
    13.     i872
    14.     i874
    15.     i879
    16.     i882
    17.     i883
    18.     i888
    19.     i889
    20.     i891
    21.     i893
    22.     i894
    23.     i898
    24.     i899
    25.     i904
    26.     i911
    27.     i914
    28.     i915
    29.     i916
    30.     i924
    31.     i930
    32.     i936
    33.     i938
    34.     i939
    35.     i940
  4. 3Silicon Limitations
    1.     i833
    2.     i873
    3.     i876
    4.     i877
    5.     i892
  5. 4Silicon Cautions
    1.     i781
    2.     i827
    3.     i828
    4.     i836
    5.     i839
    6.     i864
    7.     i886
    8.     i908
    9.     i912
    10.     i923
  6. 5Revision History

i893

DCAN Initialization Sequence

CRITICALITY

Low

DESCRIPTION

If the DCAN module is allowed to enter/exit clock-gated mode dynamically while traffic is present on the DCAN interface (even if the traffic is not to/from the SoC) then the DCAN module and PRCM handshake state machines can become out of sync resulting in the DCAN module hanging.

WORKAROUND

In order to cleanly initialize the DCAN module the following sequence should be followed. Steps 1 and 2 can happen in any order, but should occur before Step 3.

  1. Configure the DCAN module’s clock domain in SW_WKUP mode
    • DCAN1: CM_WKUPAON_CLKSTCTRL. CLKTRCTRL = 0x2
    • For SR1.0 and SR1.0A: DCAN2: CM_L4PER2_CLKSTCTRL. CLKTRCTRL= 0x2
  2. Configure CD_L4_CFG for NO_SLEEP mode
    • CM_L4CFG_CLKSTCTRL. CLKTRCTRL = 0x0
  3. Execute RAM Init Sequence:
    • Mask the RX input via pinmux configuration
      • Select default/gpio function instead of dcan rx. Specific register and MUXMODE value depends on pin-mux used on the board
      • For DCAN1 muxed with uart1_rtsn: CTRL_CORE_PAD_UART1_RTSN.UART1_RTSN_MUXMODE = 0xF
    • Enable DCAN module
      • DCAN1: CM_WKUPAON_DCAN1_CLKCTRL.MODULEMODE = 0x2
      • For SR1.0 and SR1.0A: DCAN2: CM_L4PER2_DCAN2_CLKCTRL.MODULEMODE = 0x2
    • Perform RAM_INIT sequence
      • DCAN1: For SR1.0 and SR1.0A CTRL_CORE_CONTROL_IO_2.DCAN1_RAMINIT_START = 0x1
        For SR2.0
        CTRL_CORE_CONTROL_IO_2.DCAN_RAMINIT_START = 0x1
      • For SR1.0 and SR1.0A DCAN2: CTRL_CORE_CONTROL_IO_2. DCAN2_RAMINIT_START = 0x1
      • Poll for
        For SR1.0 and SR1.0A CTRL_CORE_CONTROL_IO_2.DCAN1_RAMINIT_START = 0x1
        For SR2.0
        CTRL_CORE_CONTROL_IO_2.DCAN_RAMINIT_START = 0x1
        and
        For SR1.0 and SR1.0A DCAN2_RAMINIT_DONNE
    • Enable RX input via pin mux configuration
      • Select dcan_rx function
      • Specific register and MUXMODE value depends on pin-mux used on the board
      • For DCAN1 muxed with uart1_rtsn: CTRL_CORE_PAD_UART1_RTSN.UART1_RTSN_MUXMODE = 0xC

REVISIONS IMPACTED

SR 2.0A, 2.0, 1.0A, 1.0

TDA3x: 2.0A, 2.0, 1.0A, 1.0

DRA78x: 2.0A, 2.0

DM50x: 2.0