DSP281x_ECan.h
上传用户:qingfan3
上传日期:2014-10-27
资源大小:31439k
文件大小:47k
源码类别:

DSP编程

开发平台:

C/C++

  1. //###########################################################################
  2. //
  3. // FILE:   DSP281x_ECan.h
  4. //
  5. // TITLE:  DSP281x Device eCAN Register Definitions.
  6. //
  7. //###########################################################################
  8. //
  9. //  Ver | dd mmm yyyy | Who  | Description of changes
  10. // =====|=============|======|===============================================
  11. //  1.00| 11 Sep 2003 | H.J. | Changes since previous version (v.58 Alpha)
  12. //      |             |      | Note: some changes were made to a limited released
  13. //      |             |      | version V.59.  These include all changes since V.58.
  14. //      |             |      | Register and bit names made consistent with UG
  15. //      |             |      | Bit name changes:
  16. //      |             |      | old       new        register
  17. //      |             |      | ---------------------------
  18. //      |             |      | SCM       SCB        CANMC
  19. //      |             |      | LNTM      TCC        CANMC
  20. //      |             |      | LNTC      MBCC       CANMC
  21. //      |             |      | TSEG2     TSEG2REG   CANBTC
  22. //      |             |      | TSEG1     TSEG1REG   CANBTC
  23. //      |             |      | SJW       SJWREG     CANBTC
  24. //      |             |      | BRP       BRPREG     CANBTC
  25. //      |             |      | ERM       reserved   CANBTC
  26. //      |             |      | MAIFO     MTOFO      CANGIFO
  27. //      |             |      | SIL       GIL        CANGIM
  28. //      |             |      | TCOIM     TCOM       CANGIM
  29. //      |             |      | MAIM      MTOM       CANGIM
  30. //      |             |      | TCOIF1    MTOF1      CANGIF1
  31. //      |             |      | MAIF1     MTOF1      CANGIF1
  32. //      |             |      | MSGID_L   EXTMSGID_L CANMSGID
  33. //      |             |      | MSGID_H   EXTMSGID_H CANMSGID 
  34. //      |             |      | 
  35. //      |             |      | TXIN, TXOUT, TXDIR in CANTIOC are now reserved.
  36. //      |             |      | RXIN, RXOUT, RXDIR in CANRIOC are now reserved.
  37. //      |             |      | MSGID_H was renamed and split into two parts:
  38. //      |             |      |     EXTMSGID_H and STDMSGID.
  39. //      |             |      |
  40. //      |             |      | Register name changes:
  41. //      |             |      | old       new
  42. //      |             |      |-------------------
  43. //      |             |      | CANLNT    CANTSC   (bit field definitions removed)
  44. //      |             |      | CANMID    CANMSGID
  45. //      |             |      | CANMCF    CANMSGCTRL
  46. //      |             |      | CANMDRL   CANMDL
  47. //      |             |      | CANMDRH   CANMDH
  48. //      |             |      |
  49. //      |             |      | MDL and MDH can now be accessed as .byte or .word
  50. //###########################################################################
  51. #ifndef DSP281x_ECAN_H
  52. #define DSP281x_ECAN_H
  53. #ifdef __cplusplus
  54. extern "C" {
  55. #endif
  56. /* --------------------------------------------------- */
  57. /* eCAN Control & Status Registers                     */
  58. /* ----------------------------------------------------*/
  59. /* eCAN Mailbox enable register (CANME) bit definitions */
  60. struct  CANME_BITS {      // bit  description
  61.    Uint16      ME0:1;     // 0   Enable Mailbox 0
  62.    Uint16      ME1:1;     // 1   Enable Mailbox 1
  63.    Uint16      ME2:1;     // 2   Enable Mailbox 2
  64.    Uint16      ME3:1;     // 3   Enable Mailbox 3
  65.    Uint16      ME4:1;     // 4   Enable Mailbox 4
  66.    Uint16      ME5:1;     // 5   Enable Mailbox 5
  67.    Uint16      ME6:1;     // 6   Enable Mailbox 6
  68.    Uint16      ME7:1;     // 7   Enable Mailbox 7
  69.    Uint16      ME8:1;     // 8   Enable Mailbox 8
  70.    Uint16      ME9:1;     // 9   Enable Mailbox 9
  71.    Uint16      ME10:1;    // 10  Enable Mailbox 10
  72.    Uint16      ME11:1;    // 11  Enable Mailbox 11
  73.    Uint16      ME12:1;    // 12  Enable Mailbox 12
  74.    Uint16      ME13:1;    // 13  Enable Mailbox 13
  75.    Uint16      ME14:1;    // 14  Enable Mailbox 14
  76.    Uint16      ME15:1;    // 15  Enable Mailbox 15
  77.    Uint16      ME16:1;    // 16  Enable Mailbox 16
  78.    Uint16      ME17:1;    // 17  Enable Mailbox 17
  79.    Uint16      ME18:1;    // 18  Enable Mailbox 18
  80.    Uint16      ME19:1;    // 19  Enable Mailbox 19
  81.    Uint16      ME20:1;    // 20  Enable Mailbox 20
  82.    Uint16      ME21:1;    // 21  Enable Mailbox 21
  83.    Uint16      ME22:1;    // 22  Enable Mailbox 22
  84.    Uint16      ME23:1;    // 23  Enable Mailbox 23
  85.    Uint16      ME24:1;    // 24  Enable Mailbox 24
  86.    Uint16      ME25:1;    // 25  Enable Mailbox 25
  87.    Uint16      ME26:1;    // 26  Enable Mailbox 26
  88.    Uint16      ME27:1;    // 27  Enable Mailbox 27
  89.    Uint16      ME28:1;    // 28  Enable Mailbox 28
  90.    Uint16      ME29:1;    // 29  Enable Mailbox 29
  91.    Uint16      ME30:1;    // 30  Enable Mailbox 30
  92.    Uint16      ME31:1;    // 31  Enable Mailbox 31
  93. };
  94. /* Allow access to the bit fields or entire register */
  95. union CANME_REG {
  96.    Uint32             all;
  97.    struct CANME_BITS  bit;
  98. };
  99. /* eCAN Mailbox direction register (CANMD) bit definitions */
  100. struct  CANMD_BITS {      // bit  description
  101.    Uint16      MD0:1;     // 0   0 -> Tx 1 -> Rx
  102.    Uint16      MD1:1;     // 1   0 -> Tx 1 -> Rx
  103.    Uint16      MD2:1;     // 2   0 -> Tx 1 -> Rx
  104.    Uint16      MD3:1;     // 3   0 -> Tx 1 -> Rx
  105.    Uint16      MD4:1;     // 4   0 -> Tx 1 -> Rx
  106.    Uint16      MD5:1;     // 5   0 -> Tx 1 -> Rx
  107.    Uint16      MD6:1;     // 6   0 -> Tx 1 -> Rx
  108.    Uint16      MD7:1;     // 7   0 -> Tx 1 -> Rx
  109.    Uint16      MD8:1;     // 8   0 -> Tx 1 -> Rx
  110.    Uint16      MD9:1;     // 9   0 -> Tx 1 -> Rx
  111.    Uint16      MD10:1;    // 10  0 -> Tx 1 -> Rx
  112.    Uint16      MD11:1;    // 11  0 -> Tx 1 -> Rx
  113.    Uint16      MD12:1;    // 12  0 -> Tx 1 -> Rx
  114.    Uint16      MD13:1;    // 13  0 -> Tx 1 -> Rx
  115.    Uint16      MD14:1;    // 14  0 -> Tx 1 -> Rx
  116.    Uint16      MD15:1;    // 15  0 -> Tx 1 -> Rx
  117.    Uint16      MD16:1;    // 16  0 -> Tx 1 -> Rx
  118.    Uint16      MD17:1;    // 17  0 -> Tx 1 -> Rx
  119.    Uint16      MD18:1;    // 18  0 -> Tx 1 -> Rx
  120.    Uint16      MD19:1;    // 19  0 -> Tx 1 -> Rx
  121.    Uint16      MD20:1;    // 20  0 -> Tx 1 -> Rx
  122.    Uint16      MD21:1;    // 21  0 -> Tx 1 -> Rx
  123.    Uint16      MD22:1;    // 22  0 -> Tx 1 -> Rx
  124.    Uint16      MD23:1;    // 23  0 -> Tx 1 -> Rx
  125.    Uint16      MD24:1;    // 24  0 -> Tx 1 -> Rx
  126.    Uint16      MD25:1;    // 25  0 -> Tx 1 -> Rx
  127.    Uint16      MD26:1;    // 26  0 -> Tx 1 -> Rx
  128.    Uint16      MD27:1;    // 27  0 -> Tx 1 -> Rx
  129.    Uint16      MD28:1;    // 28  0 -> Tx 1 -> Rx
  130.    Uint16      MD29:1;    // 29  0 -> Tx 1 -> Rx
  131.    Uint16      MD30:1;    // 30  0 -> Tx 1 -> Rx
  132.    Uint16      MD31:1;    // 31  0 -> Tx 1 -> Rx
  133. };
  134. /* Allow access to the bit fields or entire register */
  135. union CANMD_REG {
  136.    Uint32             all;
  137.    struct CANMD_BITS  bit;
  138. };
  139. /* eCAN Transmit Request Set register (CANTRS) bit definitions */
  140. struct  CANTRS_BITS {      // bit  description
  141.    Uint16      TRS0:1;     // 0   TRS for Mailbox 0
  142.    Uint16      TRS1:1;     // 1   TRS for Mailbox 1
  143.    Uint16      TRS2:1;     // 2   TRS for Mailbox 2
  144.    Uint16      TRS3:1;     // 3   TRS for Mailbox 3
  145.    Uint16      TRS4:1;     // 4   TRS for Mailbox 4
  146.    Uint16      TRS5:1;     // 5   TRS for Mailbox 5
  147.    Uint16      TRS6:1;     // 6   TRS for Mailbox 6
  148.    Uint16      TRS7:1;     // 7   TRS for Mailbox 7
  149.    Uint16      TRS8:1;     // 8   TRS for Mailbox 8
  150.    Uint16      TRS9:1;     // 9   TRS for Mailbox 9
  151.    Uint16      TRS10:1;    // 10  TRS for Mailbox 10
  152.    Uint16      TRS11:1;    // 11  TRS for Mailbox 11
  153.    Uint16      TRS12:1;    // 12  TRS for Mailbox 12
  154.    Uint16      TRS13:1;    // 13  TRS for Mailbox 13
  155.    Uint16      TRS14:1;    // 14  TRS for Mailbox 14
  156.    Uint16      TRS15:1;    // 15  TRS for Mailbox 15
  157.    Uint16      TRS16:1;    // 16  TRS for Mailbox 16
  158.    Uint16      TRS17:1;    // 17  TRS for Mailbox 17
  159.    Uint16      TRS18:1;    // 18  TRS for Mailbox 18
  160.    Uint16      TRS19:1;    // 19  TRS for Mailbox 19
  161.    Uint16      TRS20:1;    // 20  TRS for Mailbox 20
  162.    Uint16      TRS21:1;    // 21  TRS for Mailbox 21
  163.    Uint16      TRS22:1;    // 22  TRS for Mailbox 22
  164.    Uint16      TRS23:1;    // 23  TRS for Mailbox 23
  165.    Uint16      TRS24:1;    // 24  TRS for Mailbox 24
  166.    Uint16      TRS25:1;    // 25  TRS for Mailbox 25
  167.    Uint16      TRS26:1;    // 26  TRS for Mailbox 26
  168.    Uint16      TRS27:1;    // 27  TRS for Mailbox 27
  169.    Uint16      TRS28:1;    // 28  TRS for Mailbox 28
  170.    Uint16      TRS29:1;    // 29  TRS for Mailbox 29
  171.    Uint16      TRS30:1;    // 30  TRS for Mailbox 30
  172.    Uint16      TRS31:1;    // 31  TRS for Mailbox 31
  173. };
  174. /* Allow access to the bit fields or entire register */
  175. union CANTRS_REG {
  176.    Uint32              all;
  177.    struct CANTRS_BITS  bit;
  178. };
  179. /* eCAN Transmit Request Reset register (CANTRR) bit definitions */
  180. struct  CANTRR_BITS {      // bit  description
  181.    Uint16      TRR0:1;     // 0   TRR for Mailbox 0
  182.    Uint16      TRR1:1;     // 1   TRR for Mailbox 1
  183.    Uint16      TRR2:1;     // 2   TRR for Mailbox 2
  184.    Uint16      TRR3:1;     // 3   TRR for Mailbox 3
  185.    Uint16      TRR4:1;     // 4   TRR for Mailbox 4
  186.    Uint16      TRR5:1;     // 5   TRR for Mailbox 5
  187.    Uint16      TRR6:1;     // 6   TRR for Mailbox 6
  188.    Uint16      TRR7:1;     // 7   TRR for Mailbox 7
  189.    Uint16      TRR8:1;     // 8   TRR for Mailbox 8
  190.    Uint16      TRR9:1;     // 9   TRR for Mailbox 9
  191.    Uint16      TRR10:1;    // 10  TRR for Mailbox 10
  192.    Uint16      TRR11:1;    // 11  TRR for Mailbox 11
  193.    Uint16      TRR12:1;    // 12  TRR for Mailbox 12
  194.    Uint16      TRR13:1;    // 13  TRR for Mailbox 13
  195.    Uint16      TRR14:1;    // 14  TRR for Mailbox 14
  196.    Uint16      TRR15:1;    // 15  TRR for Mailbox 15
  197.    Uint16      TRR16:1;    // 16  TRR for Mailbox 16
  198.    Uint16      TRR17:1;    // 17  TRR for Mailbox 17
  199.    Uint16      TRR18:1;    // 18  TRR for Mailbox 18
  200.    Uint16      TRR19:1;    // 19  TRR for Mailbox 19
  201.    Uint16      TRR20:1;    // 20  TRR for Mailbox 20
  202.    Uint16      TRR21:1;    // 21  TRR for Mailbox 21
  203.    Uint16      TRR22:1;    // 22  TRR for Mailbox 22
  204.    Uint16      TRR23:1;    // 23  TRR for Mailbox 23
  205.    Uint16      TRR24:1;    // 24  TRR for Mailbox 24
  206.    Uint16      TRR25:1;    // 25  TRR for Mailbox 25
  207.    Uint16      TRR26:1;    // 26  TRR for Mailbox 26
  208.    Uint16      TRR27:1;    // 27  TRR for Mailbox 27
  209.    Uint16      TRR28:1;    // 28  TRR for Mailbox 28
  210.    Uint16      TRR29:1;    // 29  TRR for Mailbox 29
  211.    Uint16      TRR30:1;    // 30  TRR for Mailbox 30
  212.    Uint16      TRR31:1;    // 31  TRR for Mailbox 31
  213. };
  214. /* Allow access to the bit fields or entire register */
  215. union CANTRR_REG {
  216.    Uint32              all;
  217.    struct CANTRR_BITS  bit;
  218. };
  219. /* eCAN Transmit Acknowledge register (CANTA) bit definitions */
  220. struct  CANTA_BITS {      // bit  description
  221.    Uint16      TA0:1;     // 0   TA for Mailbox 0
  222.    Uint16      TA1:1;     // 1   TA for Mailbox 1
  223.    Uint16      TA2:1;     // 2   TA for Mailbox 2
  224.    Uint16      TA3:1;     // 3   TA for Mailbox 3
  225.    Uint16      TA4:1;     // 4   TA for Mailbox 4
  226.    Uint16      TA5:1;     // 5   TA for Mailbox 5
  227.    Uint16      TA6:1;     // 6   TA for Mailbox 6
  228.    Uint16      TA7:1;     // 7   TA for Mailbox 7
  229.    Uint16      TA8:1;     // 8   TA for Mailbox 8
  230.    Uint16      TA9:1;     // 9   TA for Mailbox 9
  231.    Uint16      TA10:1;    // 10  TA for Mailbox 10
  232.    Uint16      TA11:1;    // 11  TA for Mailbox 11
  233.    Uint16      TA12:1;    // 12  TA for Mailbox 12
  234.    Uint16      TA13:1;    // 13  TA for Mailbox 13
  235.    Uint16      TA14:1;    // 14  TA for Mailbox 14
  236.    Uint16      TA15:1;    // 15  TA for Mailbox 15
  237.    Uint16      TA16:1;    // 16  TA for Mailbox 16
  238.    Uint16      TA17:1;    // 17  TA for Mailbox 17
  239.    Uint16      TA18:1;    // 18  TA for Mailbox 18
  240.    Uint16      TA19:1;    // 19  TA for Mailbox 19
  241.    Uint16      TA20:1;    // 20  TA for Mailbox 20
  242.    Uint16      TA21:1;    // 21  TA for Mailbox 21
  243.    Uint16      TA22:1;    // 22  TA for Mailbox 22
  244.    Uint16      TA23:1;    // 23  TA for Mailbox 23
  245.    Uint16      TA24:1;    // 24  TA for Mailbox 24
  246.    Uint16      TA25:1;    // 25  TA for Mailbox 25
  247.    Uint16      TA26:1;    // 26  TA for Mailbox 26
  248.    Uint16      TA27:1;    // 27  TA for Mailbox 27
  249.    Uint16      TA28:1;    // 28  TA for Mailbox 28
  250.    Uint16      TA29:1;    // 29  TA for Mailbox 29
  251.    Uint16      TA30:1;    // 30  TA for Mailbox 30
  252.    Uint16      TA31:1;    // 31  TA for Mailbox 31
  253. };
  254. /* Allow access to the bit fields or entire register */
  255. union CANTA_REG {
  256.    Uint32             all;
  257.    struct CANTA_BITS  bit;
  258. };
  259. /* eCAN Transmit Abort Acknowledge register (CANAA) bit definitions */
  260. struct  CANAA_BITS {      // bit  description
  261.    Uint16      AA0:1;     // 0   AA for Mailbox 0
  262.    Uint16      AA1:1;     // 1   AA for Mailbox 1
  263.    Uint16      AA2:1;     // 2   AA for Mailbox 2
  264.    Uint16      AA3:1;     // 3   AA for Mailbox 3
  265.    Uint16      AA4:1;     // 4   AA for Mailbox 4
  266.    Uint16      AA5:1;     // 5   AA for Mailbox 5
  267.    Uint16      AA6:1;     // 6   AA for Mailbox 6
  268.    Uint16      AA7:1;     // 7   AA for Mailbox 7
  269.    Uint16      AA8:1;     // 8   AA for Mailbox 8
  270.    Uint16      AA9:1;     // 9   AA for Mailbox 9
  271.    Uint16      AA10:1;    // 10  AA for Mailbox 10
  272.    Uint16      AA11:1;    // 11  AA for Mailbox 11
  273.    Uint16      AA12:1;    // 12  AA for Mailbox 12
  274.    Uint16      AA13:1;    // 13  AA for Mailbox 13
  275.    Uint16      AA14:1;    // 14  AA for Mailbox 14
  276.    Uint16      AA15:1;    // 15  AA for Mailbox 15
  277.    Uint16      AA16:1;    // 16  AA for Mailbox 16
  278.    Uint16      AA17:1;    // 17  AA for Mailbox 17
  279.    Uint16      AA18:1;    // 18  AA for Mailbox 18
  280.    Uint16      AA19:1;    // 19  AA for Mailbox 19
  281.    Uint16      AA20:1;    // 20  AA for Mailbox 20
  282.    Uint16      AA21:1;    // 21  AA for Mailbox 21
  283.    Uint16      AA22:1;    // 22  AA for Mailbox 22
  284.    Uint16      AA23:1;    // 23  AA for Mailbox 23
  285.    Uint16      AA24:1;    // 24  AA for Mailbox 24
  286.    Uint16      AA25:1;    // 25  AA for Mailbox 25
  287.    Uint16      AA26:1;    // 26  AA for Mailbox 26
  288.    Uint16      AA27:1;    // 27  AA for Mailbox 27
  289.    Uint16      AA28:1;    // 28  AA for Mailbox 28
  290.    Uint16      AA29:1;    // 29  AA for Mailbox 29
  291.    Uint16      AA30:1;    // 30  AA for Mailbox 30
  292.    Uint16      AA31:1;    // 31  AA for Mailbox 31
  293. };
  294. /* Allow access to the bit fields or entire register */
  295. union CANAA_REG {
  296.    Uint32             all;
  297.    struct CANAA_BITS  bit;
  298. };
  299. /* eCAN Received Message Pending register (CANRMP) bit definitions */
  300. struct  CANRMP_BITS {      // bit  description
  301.    Uint16      RMP0:1;     // 0   RMP for Mailbox 0
  302.    Uint16      RMP1:1;     // 1   RMP for Mailbox 1
  303.    Uint16      RMP2:1;     // 2   RMP for Mailbox 2
  304.    Uint16      RMP3:1;     // 3   RMP for Mailbox 3
  305.    Uint16      RMP4:1;     // 4   RMP for Mailbox 4
  306.    Uint16      RMP5:1;     // 5   RMP for Mailbox 5
  307.    Uint16      RMP6:1;     // 6   RMP for Mailbox 6
  308.    Uint16      RMP7:1;     // 7   RMP for Mailbox 7
  309.    Uint16      RMP8:1;     // 8   RMP for Mailbox 8
  310.    Uint16      RMP9:1;     // 9   RMP for Mailbox 9
  311.    Uint16      RMP10:1;    // 10  RMP for Mailbox 10
  312.    Uint16      RMP11:1;    // 11  RMP for Mailbox 11
  313.    Uint16      RMP12:1;    // 12  RMP for Mailbox 12
  314.    Uint16      RMP13:1;    // 13  RMP for Mailbox 13
  315.    Uint16      RMP14:1;    // 14  RMP for Mailbox 14
  316.    Uint16      RMP15:1;    // 15  RMP for Mailbox 15
  317.    Uint16      RMP16:1;    // 16  RMP for Mailbox 16
  318.    Uint16      RMP17:1;    // 17  RMP for Mailbox 17
  319.    Uint16      RMP18:1;    // 18  RMP for Mailbox 18
  320.    Uint16      RMP19:1;    // 19  RMP for Mailbox 19
  321.    Uint16      RMP20:1;    // 20  RMP for Mailbox 20
  322.    Uint16      RMP21:1;    // 21  RMP for Mailbox 21
  323.    Uint16      RMP22:1;    // 22  RMP for Mailbox 22
  324.    Uint16      RMP23:1;    // 23  RMP for Mailbox 23
  325.    Uint16      RMP24:1;    // 24  RMP for Mailbox 24
  326.    Uint16      RMP25:1;    // 25  RMP for Mailbox 25
  327.    Uint16      RMP26:1;    // 26  RMP for Mailbox 26
  328.    Uint16      RMP27:1;    // 27  RMP for Mailbox 27
  329.    Uint16      RMP28:1;    // 28  RMP for Mailbox 28
  330.    Uint16      RMP29:1;    // 29  RMP for Mailbox 29
  331.    Uint16      RMP30:1;    // 30  RMP for Mailbox 30
  332.    Uint16      RMP31:1;    // 31  RMP for Mailbox 31
  333. };
  334. /* Allow access to the bit fields or entire register */
  335. union CANRMP_REG {
  336.    Uint32              all;
  337.    struct CANRMP_BITS  bit;
  338. };
  339. /* eCAN Received Message Lost register (CANRML) bit definitions */
  340. struct  CANRML_BITS {      // bit  description
  341.    Uint16      RML0:1;     // 0   RML for Mailbox 0
  342.    Uint16      RML1:1;     // 1   RML for Mailbox 1
  343.    Uint16      RML2:1;     // 2   RML for Mailbox 2
  344.    Uint16      RML3:1;     // 3   RML for Mailbox 3
  345.    Uint16      RML4:1;     // 4   RML for Mailbox 4
  346.    Uint16      RML5:1;     // 5   RML for Mailbox 5
  347.    Uint16      RML6:1;     // 6   RML for Mailbox 6
  348.    Uint16      RML7:1;     // 7   RML for Mailbox 7
  349.    Uint16      RML8:1;     // 8   RML for Mailbox 8
  350.    Uint16      RML9:1;     // 9   RML for Mailbox 9
  351.    Uint16      RML10:1;    // 10  RML for Mailbox 10
  352.    Uint16      RML11:1;    // 11  RML for Mailbox 11
  353.    Uint16      RML12:1;    // 12  RML for Mailbox 12
  354.    Uint16      RML13:1;    // 13  RML for Mailbox 13
  355.    Uint16      RML14:1;    // 14  RML for Mailbox 14
  356.    Uint16      RML15:1;    // 15  RML for Mailbox 15
  357.    Uint16      RML16:1;    // 16  RML for Mailbox 16
  358.    Uint16      RML17:1;    // 17  RML for Mailbox 17
  359.    Uint16      RML18:1;    // 18  RML for Mailbox 18
  360.    Uint16      RML19:1;    // 19  RML for Mailbox 19
  361.    Uint16      RML20:1;    // 20  RML for Mailbox 20
  362.    Uint16      RML21:1;    // 21  RML for Mailbox 21
  363.    Uint16      RML22:1;    // 22  RML for Mailbox 22
  364.    Uint16      RML23:1;    // 23  RML for Mailbox 23
  365.    Uint16      RML24:1;    // 24  RML for Mailbox 24
  366.    Uint16      RML25:1;    // 25  RML for Mailbox 25
  367.    Uint16      RML26:1;    // 26  RML for Mailbox 26
  368.    Uint16      RML27:1;    // 27  RML for Mailbox 27
  369.    Uint16      RML28:1;    // 28  RML for Mailbox 28
  370.    Uint16      RML29:1;    // 29  RML for Mailbox 29
  371.    Uint16      RML30:1;    // 30  RML for Mailbox 30
  372.    Uint16      RML31:1;    // 31  RML for Mailbox 31
  373. };
  374. /* Allow access to the bit fields or entire register */
  375. union CANRML_REG {
  376.    Uint32              all;
  377.    struct CANRML_BITS  bit;
  378. };
  379. /* eCAN Remote Frame Pending register (CANRFP) bit definitions */
  380. struct  CANRFP_BITS {      // bit  description
  381.    Uint16      RFP0:1;     // 0   RFP for Mailbox 0
  382.    Uint16      RFP1:1;     // 1   RFP for Mailbox 1
  383.    Uint16      RFP2:1;     // 2   RFP for Mailbox 2
  384.    Uint16      RFP3:1;     // 3   RFP for Mailbox 3
  385.    Uint16      RFP4:1;     // 4   RFP for Mailbox 4
  386.    Uint16      RFP5:1;     // 5   RFP for Mailbox 5
  387.    Uint16      RFP6:1;     // 6   RFP for Mailbox 6
  388.    Uint16      RFP7:1;     // 7   RFP for Mailbox 7
  389.    Uint16      RFP8:1;     // 8   RFP for Mailbox 8
  390.    Uint16      RFP9:1;     // 9   RFP for Mailbox 9
  391.    Uint16      RFP10:1;    // 10  RFP for Mailbox 10
  392.    Uint16      RFP11:1;    // 11  RFP for Mailbox 11
  393.    Uint16      RFP12:1;    // 12  RFP for Mailbox 12
  394.    Uint16      RFP13:1;    // 13  RFP for Mailbox 13
  395.    Uint16      RFP14:1;    // 14  RFP for Mailbox 14
  396.    Uint16      RFP15:1;    // 15  RFP for Mailbox 15
  397.    Uint16      RFP16:1;    // 16  RFP for Mailbox 16
  398.    Uint16      RFP17:1;    // 17  RFP for Mailbox 17
  399.    Uint16      RFP18:1;    // 18  RFP for Mailbox 18
  400.    Uint16      RFP19:1;    // 19  RFP for Mailbox 19
  401.    Uint16      RFP20:1;    // 20  RFP for Mailbox 20
  402.    Uint16      RFP21:1;    // 21  RFP for Mailbox 21
  403.    Uint16      RFP22:1;    // 22  RFP for Mailbox 22
  404.    Uint16      RFP23:1;    // 23  RFP for Mailbox 23
  405.    Uint16      RFP24:1;    // 24  RFP for Mailbox 24
  406.    Uint16      RFP25:1;    // 25  RFP for Mailbox 25
  407.    Uint16      RFP26:1;    // 26  RFP for Mailbox 26
  408.    Uint16      RFP27:1;    // 27  RFP for Mailbox 27
  409.    Uint16      RFP28:1;    // 28  RFP for Mailbox 28
  410.    Uint16      RFP29:1;    // 29  RFP for Mailbox 29
  411.    Uint16      RFP30:1;    // 30  RFP for Mailbox 30
  412.    Uint16      RFP31:1;    // 31  RFP for Mailbox 31
  413. };
  414. /* Allow access to the bit fields or entire register */
  415. union CANRFP_REG {
  416.    Uint32              all;
  417.    struct CANRFP_BITS  bit;
  418. };
  419. /* eCAN Global Acceptance Mask register (CANGAM) bit definitions */
  420. struct  CANGAM_BITS {   // bits  description
  421.    Uint16 GAM150:16;    // 15:0  Global acceptance mask bits 0-15
  422.    Uint16 GAM2816:13;   // 28:16 Global acceptance mask bits 16-28    
  423.    Uint16 rsvd:2;       // 30:29 reserved        
  424.    Uint16 AMI:1;        // 31    AMI bit
  425. };
  426. /* Allow access to the bit fields or entire register */
  427. union CANGAM_REG {
  428.    Uint32              all;
  429.    struct CANGAM_BITS  bit;
  430. };
  431. /* eCAN Master Control register (CANMC) bit definitions */
  432. struct  CANMC_BITS {       // bits  description
  433.    Uint16      MBNR:5;     // 4:0   MBX # for CDR bit
  434.    Uint16      SRES:1;     // 5     Soft reset
  435.    Uint16      STM:1;      // 6     Self-test mode
  436.    Uint16      ABO:1;      // 7     Auto bus-on
  437.    Uint16      CDR:1;      // 8     Change data request
  438.    Uint16      WUBA:1;     // 9     Wake-up on bus activity
  439.    Uint16      DBO:1;      // 10    Data-byte order
  440.    Uint16      PDR:1;      // 11    Power-down mode request
  441.    Uint16      CCR:1;      // 12    Change configuration request
  442.    Uint16      SCB:1;      // 13    SCC compatibility bit      
  443.    Uint16      TCC:1;      // 14    TSC MSB clear bit
  444.    Uint16      MBCC:1;     // 15    TSC clear bit thru mailbox 16      
  445.    Uint16      SUSP:1;     // 16    SUSPEND free/soft bit
  446.    Uint16      rsvd:15;    // 31:17  reserved   
  447. };
  448. /* Allow access to the bit fields or entire register */
  449. union CANMC_REG {
  450.    Uint32             all;
  451.    struct CANMC_BITS  bit;
  452. };
  453. /* eCAN Bit -timing configuration register (CANBTC) bit definitions */
  454. struct  CANBTC_BITS {  // bits  description
  455.    Uint16  TSEG2REG:3; // 2:0   TSEG2 register value
  456.    Uint16  TSEG1REG:4; // 6:3   TSEG1 register value
  457.    Uint16  SAM:1;      // 7     Sample-point setting
  458.    Uint16  SJWREG:2;   // 9:8   Synchroniztion Jump Width register value
  459.    Uint16  rsvd1:6;    // 15:10 reserved   
  460.    Uint16  BRPREG:8;   // 23:16 Baudrate prescaler register value
  461.    Uint16  rsvd2:8;    // 31:24 reserved   
  462. };
  463. /* Allow access to the bit fields or entire register */
  464. union CANBTC_REG {
  465.    Uint32              all;
  466.    struct CANBTC_BITS  bit;
  467. };
  468. /* eCAN Error & Status register (CANES) bit definitions */
  469. struct  CANES_BITS {    // bits  description
  470.    Uint16   TM:1;       // 0     Transmit Mode
  471.    Uint16   RM:1;       // 1     Receive Mode
  472.    Uint16   rsvd1:1;    // 2     reserved   
  473.    Uint16   PDA:1;      // 3     Power-down acknowledge
  474.    Uint16   CCE:1;      // 4     Change Configuration Enable
  475.    Uint16   SMA:1;      // 5     Suspend Mode Acknowledge
  476.    Uint16   rsvd2:10;   // 15:6  reserved   
  477.    Uint16   EW:1;       // 16    Warning status
  478.    Uint16   EP:1;       // 17    Error Passive status
  479.    Uint16   BO:1;       // 18    Bus-off status
  480.    Uint16   ACKE:1;     // 19    Acknowledge error
  481.    Uint16   SE:1;       // 20    Stuff error
  482.    Uint16   CRCE:1;     // 21    CRC error
  483.    Uint16   SA1:1;      // 22    Stuck at Dominant error
  484.    Uint16   BE:1;       // 23    Bit error
  485.    Uint16   FE:1;       // 24    Framing error
  486.    Uint16   rsvd3:7;    // 31:25 reserved   
  487. };
  488. /* Allow access to the bit fields or entire register */
  489. union CANES_REG {
  490.    Uint32             all;
  491.    struct CANES_BITS  bit;
  492. };
  493. /* eCAN Transmit Error Counter register (CANTEC) bit definitions */
  494. struct  CANTEC_BITS {  // bits  description
  495.    Uint16 TEC:8;       // 7:0   TEC
  496.    Uint16 rsvd1:8;     // 15:8  reserved
  497.    Uint16 rsvd2:16;    // 31:16  reserved      
  498. };
  499. /* Allow access to the bit fields or entire register */
  500. union CANTEC_REG {
  501.    Uint32              all;
  502.    struct CANTEC_BITS  bit;
  503. };
  504. /* eCAN Receive Error Counter register (CANREC) bit definitions */
  505. struct  CANREC_BITS {  // bits  description
  506.    Uint16 REC:8;       // 7:0   REC
  507.    Uint16 rsvd1:8;     // 15:8  reserved
  508.    Uint16 rsvd2:16;    // 31:16 reserved      
  509. };
  510. /* Allow access to the bit fields or entire register */
  511. union CANREC_REG {
  512.    Uint32              all;
  513.    struct CANREC_BITS  bit;
  514. };
  515. /* eCAN Global Interrupt Flag 0 (CANGIF0) bit definitions */
  516. struct  CANGIF0_BITS {  // bits  description
  517.    Uint16   MIV0:5;     // 4:0   Mailbox Interrupt Vector
  518.    Uint16   rsvd1:3;    // 7:5   reserved   
  519.    Uint16   WLIF0:1;    // 8     Warning level interrupt flag
  520.    Uint16   EPIF0:1;    // 9     Error-passive interrupt flag
  521.    Uint16   BOIF0:1;    // 10    Bus-off interrupt flag
  522.    Uint16   RMLIF0:1;   // 11    Received message lost interrupt flag
  523.    Uint16   WUIF0:1;    // 12    Wakeup interrupt flag
  524.    Uint16   WDIF0:1;    // 13    Write denied interrupt flag
  525.    Uint16   AAIF0:1;    // 14    Abort Ack interrupt flag
  526.    Uint16   GMIF0:1;    // 15    Global MBX interrupt flag
  527.    Uint16   TCOF0:1;    // 16    TSC Overflow flag
  528.    Uint16   MTOF0:1;    // 17    Mailbox Timeout flag
  529.    Uint16   rsvd2:14;   // 31:18 reserved   
  530. };
  531. /* Allow access to the bit fields or entire register */
  532. union CANGIF0_REG {
  533.    Uint32               all;
  534.    struct CANGIF0_BITS  bit;
  535. };
  536. /* eCAN Global Interrupt Mask register (CANGIM) bit definitions */
  537. struct  CANGIM_BITS { // bits  description
  538.    Uint16  I0EN:1;    // 0      Interrupt 0 enable
  539.    Uint16  I1EN:1;    // 1      Interrupt 1 enable
  540.    Uint16  GIL:1;     // 2      Global Interrupt Level
  541.    Uint16  rsvd1:5;   // 7:3    reserved   
  542.    Uint16  WLIM:1;    // 8      Warning level interrupt mask 
  543.    Uint16  EPIM:1;    // 9      Error-passive interrupt mask
  544.    Uint16  BOIM:1;    // 10     Bus-off interrupt mask
  545.    Uint16  RMLIM:1;   // 11     Received message lost interrupt mask
  546.    Uint16  WUIM:1;    // 12     Wakeup interrupt mask
  547.    Uint16  WDIM:1;    // 13     Write denied interrupt mask
  548.    Uint16  AAIM:1;    // 14     Abort Ack interrupt mask
  549.    Uint16  rsvd2:1;   // 15     reserved 
  550.    Uint16  TCOM:1;    // 16     TSC overflow interrupt mask
  551.    Uint16  MTOM:1;    // 17     MBX Timeout interrupt mask
  552.    Uint16  rsvd3:14;  // 31:18  reserved   
  553. };
  554. /* Allow access to the bit fields or entire register */
  555. union CANGIM_REG {
  556.    Uint32              all;
  557.    struct CANGIM_BITS  bit;
  558. };
  559. /* eCAN Global Interrupt Flag 1 (eCANGIF1) bit definitions */
  560. struct  CANGIF1_BITS {     // bits  description
  561.    Uint16      MIV1:5;     // 4:0   Mailbox Interrupt Vector
  562.    Uint16      rsvd1:3;    // 7:5   reserved   
  563.    Uint16      WLIF1:1;    // 8     Warning level interrupt flag
  564.    Uint16      EPIF1:1;    // 9     Error-passive interrupt flag
  565.    Uint16      BOIF1:1;    // 10    Bus-off interrupt flag
  566.    Uint16      RMLIF1:1;   // 11    Received message lost interrupt flag
  567.    Uint16      WUIF1:1;    // 12    Wakeup interrupt flag
  568.    Uint16      WDIF1:1;    // 13    Write denied interrupt flag
  569.    Uint16      AAIF1:1;    // 14    Abort Ack interrupt flag
  570.    Uint16      GMIF1:1;    // 15    Global MBX interrupt flag
  571.    Uint16      TCOF1:1;    // 16    TSC Overflow flag
  572.    Uint16      MTOF1:1;    // 17    Mailbox Timeout flag
  573.    Uint16      rsvd2:14;   // 31:18 reserved   
  574. };
  575. /* Allow access to the bit fields or entire register */
  576. union CANGIF1_REG {
  577.    Uint32               all;
  578.    struct CANGIF1_BITS  bit;
  579. };
  580. /* eCAN Mailbox Interrupt Mask register (CANMIM) bit definitions */
  581. struct  CANMIM_BITS {      // bit  description
  582.    Uint16      MIM0:1;     // 0   MIM for Mailbox 0
  583.    Uint16      MIM1:1;     // 1   MIM for Mailbox 1
  584.    Uint16      MIM2:1;     // 2   MIM for Mailbox 2
  585.    Uint16      MIM3:1;     // 3   MIM for Mailbox 3
  586.    Uint16      MIM4:1;     // 4   MIM for Mailbox 4
  587.    Uint16      MIM5:1;     // 5   MIM for Mailbox 5
  588.    Uint16      MIM6:1;     // 6   MIM for Mailbox 6
  589.    Uint16      MIM7:1;     // 7   MIM for Mailbox 7
  590.    Uint16      MIM8:1;     // 8   MIM for Mailbox 8
  591.    Uint16      MIM9:1;     // 9   MIM for Mailbox 9
  592.    Uint16      MIM10:1;    // 10  MIM for Mailbox 10
  593.    Uint16      MIM11:1;    // 11  MIM for Mailbox 11
  594.    Uint16      MIM12:1;    // 12  MIM for Mailbox 12
  595.    Uint16      MIM13:1;    // 13  MIM for Mailbox 13
  596.    Uint16      MIM14:1;    // 14  MIM for Mailbox 14
  597.    Uint16      MIM15:1;    // 15  MIM for Mailbox 15
  598.    Uint16      MIM16:1;    // 16  MIM for Mailbox 16
  599.    Uint16      MIM17:1;    // 17  MIM for Mailbox 17
  600.    Uint16      MIM18:1;    // 18  MIM for Mailbox 18
  601.    Uint16      MIM19:1;    // 19  MIM for Mailbox 19
  602.    Uint16      MIM20:1;    // 20  MIM for Mailbox 20
  603.    Uint16      MIM21:1;    // 21  MIM for Mailbox 21
  604.    Uint16      MIM22:1;    // 22  MIM for Mailbox 22
  605.    Uint16      MIM23:1;    // 23  MIM for Mailbox 23
  606.    Uint16      MIM24:1;    // 24  MIM for Mailbox 24
  607.    Uint16      MIM25:1;    // 25  MIM for Mailbox 25
  608.    Uint16      MIM26:1;    // 26  MIM for Mailbox 26
  609.    Uint16      MIM27:1;    // 27  MIM for Mailbox 27
  610.    Uint16      MIM28:1;    // 28  MIM for Mailbox 28
  611.    Uint16      MIM29:1;    // 29  MIM for Mailbox 29
  612.    Uint16      MIM30:1;    // 30  MIM for Mailbox 30
  613.    Uint16      MIM31:1;    // 31  MIM for Mailbox 31
  614. };
  615. /* Allow access to the bit fields or entire register */
  616. union CANMIM_REG {
  617.    Uint32              all;
  618.    struct CANMIM_BITS  bit;
  619. };
  620. /* eCAN Mailbox Interrupt Level register (CANMIL) bit definitions */
  621. struct  CANMIL_BITS {      // bit  description
  622.    Uint16      MIL0:1;     // 0   0 -> Int 9.5   1 -> Int 9.6
  623.    Uint16      MIL1:1;     // 1   0 -> Int 9.5   1 -> Int 9.6
  624.    Uint16      MIL2:1;     // 2   0 -> Int 9.5   1 -> Int 9.6
  625.    Uint16      MIL3:1;     // 3   0 -> Int 9.5   1 -> Int 9.6
  626.    Uint16      MIL4:1;     // 4   0 -> Int 9.5   1 -> Int 9.6
  627.    Uint16      MIL5:1;     // 5   0 -> Int 9.5   1 -> Int 9.6
  628.    Uint16      MIL6:1;     // 6   0 -> Int 9.5   1 -> Int 9.6
  629.    Uint16      MIL7:1;     // 7   0 -> Int 9.5   1 -> Int 9.6
  630.    Uint16      MIL8:1;     // 8   0 -> Int 9.5   1 -> Int 9.6
  631.    Uint16      MIL9:1;     // 9   0 -> Int 9.5   1 -> Int 9.6
  632.    Uint16      MIL10:1;    // 10  0 -> Int 9.5   1 -> Int 9.6
  633.    Uint16      MIL11:1;    // 11  0 -> Int 9.5   1 -> Int 9.6
  634.    Uint16      MIL12:1;    // 12  0 -> Int 9.5   1 -> Int 9.6
  635.    Uint16      MIL13:1;    // 13  0 -> Int 9.5   1 -> Int 9.6
  636.    Uint16      MIL14:1;    // 14  0 -> Int 9.5   1 -> Int 9.6
  637.    Uint16      MIL15:1;    // 15  0 -> Int 9.5   1 -> Int 9.6
  638.    Uint16      MIL16:1;    // 16  0 -> Int 9.5   1 -> Int 9.6
  639.    Uint16      MIL17:1;    // 17  0 -> Int 9.5   1 -> Int 9.6
  640.    Uint16      MIL18:1;    // 18  0 -> Int 9.5   1 -> Int 9.6
  641.    Uint16      MIL19:1;    // 19  0 -> Int 9.5   1 -> Int 9.6
  642.    Uint16      MIL20:1;    // 20  0 -> Int 9.5   1 -> Int 9.6
  643.    Uint16      MIL21:1;    // 21  0 -> Int 9.5   1 -> Int 9.6
  644.    Uint16      MIL22:1;    // 22  0 -> Int 9.5   1 -> Int 9.6
  645.    Uint16      MIL23:1;    // 23  0 -> Int 9.5   1 -> Int 9.6
  646.    Uint16      MIL24:1;    // 24  0 -> Int 9.5   1 -> Int 9.6
  647.    Uint16      MIL25:1;    // 25  0 -> Int 9.5   1 -> Int 9.6
  648.    Uint16      MIL26:1;    // 26  0 -> Int 9.5   1 -> Int 9.6
  649.    Uint16      MIL27:1;    // 27  0 -> Int 9.5   1 -> Int 9.6
  650.    Uint16      MIL28:1;    // 28  0 -> Int 9.5   1 -> Int 9.6
  651.    Uint16      MIL29:1;    // 29  0 -> Int 9.5   1 -> Int 9.6
  652.    Uint16      MIL30:1;    // 30  0 -> Int 9.5   1 -> Int 9.6
  653.    Uint16      MIL31:1;    // 31  0 -> Int 9.5   1 -> Int 9.6
  654. };
  655. /* Allow access to the bit fields or entire register */
  656. union CANMIL_REG {
  657.    Uint32              all;
  658.    struct CANMIL_BITS  bit;
  659. };
  660. /* eCAN Overwrite Protection Control register (CANOPC) bit definitions */
  661. struct  CANOPC_BITS {      // bit  description
  662.    Uint16      OPC0:1;     // 0   OPC for Mailbox 0
  663.    Uint16      OPC1:1;     // 1   OPC for Mailbox 1
  664.    Uint16      OPC2:1;     // 2   OPC for Mailbox 2
  665.    Uint16      OPC3:1;     // 3   OPC for Mailbox 3
  666.    Uint16      OPC4:1;     // 4   OPC for Mailbox 4
  667.    Uint16      OPC5:1;     // 5   OPC for Mailbox 5
  668.    Uint16      OPC6:1;     // 6   OPC for Mailbox 6
  669.    Uint16      OPC7:1;     // 7   OPC for Mailbox 7
  670.    Uint16      OPC8:1;     // 8   OPC for Mailbox 8
  671.    Uint16      OPC9:1;     // 9   OPC for Mailbox 9
  672.    Uint16      OPC10:1;    // 10  OPC for Mailbox 10
  673.    Uint16      OPC11:1;    // 11  OPC for Mailbox 11
  674.    Uint16      OPC12:1;    // 12  OPC for Mailbox 12
  675.    Uint16      OPC13:1;    // 13  OPC for Mailbox 13
  676.    Uint16      OPC14:1;    // 14  OPC for Mailbox 14
  677.    Uint16      OPC15:1;    // 15  OPC for Mailbox 15
  678.    Uint16      OPC16:1;    // 16  OPC for Mailbox 16
  679.    Uint16      OPC17:1;    // 17  OPC for Mailbox 17
  680.    Uint16      OPC18:1;    // 18  OPC for Mailbox 18
  681.    Uint16      OPC19:1;    // 19  OPC for Mailbox 19
  682.    Uint16      OPC20:1;    // 20  OPC for Mailbox 20
  683.    Uint16      OPC21:1;    // 21  OPC for Mailbox 21
  684.    Uint16      OPC22:1;    // 22  OPC for Mailbox 22
  685.    Uint16      OPC23:1;    // 23  OPC for Mailbox 23
  686.    Uint16      OPC24:1;    // 24  OPC for Mailbox 24
  687.    Uint16      OPC25:1;    // 25  OPC for Mailbox 25
  688.    Uint16      OPC26:1;    // 26  OPC for Mailbox 26
  689.    Uint16      OPC27:1;    // 27  OPC for Mailbox 27
  690.    Uint16      OPC28:1;    // 28  OPC for Mailbox 28
  691.    Uint16      OPC29:1;    // 29  OPC for Mailbox 29
  692.    Uint16      OPC30:1;    // 30  OPC for Mailbox 30
  693.    Uint16      OPC31:1;    // 31  OPC for Mailbox 31
  694. };
  695. /* Allow access to the bit fields or entire register */
  696. union CANOPC_REG {
  697.    Uint32              all;
  698.    struct CANOPC_BITS  bit;
  699. };
  700. /* eCAN TX I/O Control Register (CANTIOC) bit definitions */
  701. struct  CANTIOC_BITS { // bits  description
  702.    Uint16  rsvd1:3;    // 2:0   reserved
  703.    Uint16  TXFUNC:1;   // 3     TXFUNC
  704.    Uint16  rsvd2:12;   // 15:4  reserved   
  705.    Uint16  rsvd3:16;   // 31:16 reserved   
  706. };
  707. /* Allow access to the bit fields or entire register */
  708. union CANTIOC_REG {
  709.    Uint32               all;
  710.    struct CANTIOC_BITS  bit;
  711. };
  712. /* eCAN RX I/O Control Register (CANRIOC) bit definitions */
  713. struct  CANRIOC_BITS { // bits  description
  714.    Uint16  rsvd1:3;    // 2:0   reserved
  715.    Uint16  RXFUNC:1;   // 3     RXFUNC
  716.    Uint16  rsvd2:12;   // 15:4  reserved   
  717.    Uint16  rsvd3:16;   // 31:16 reserved   
  718. };
  719. /* Allow access to the bit fields or entire register */
  720. union CANRIOC_REG {
  721.    Uint32               all;
  722.    struct CANRIOC_BITS  bit;
  723. };
  724. /* eCAN Time-out Control register (CANTOC) bit definitions */
  725. struct  CANTOC_BITS {      // bit  description
  726.    Uint16      TOC0:1;     // 0   TOC for Mailbox 0
  727.    Uint16      TOC1:1;     // 1   TOC for Mailbox 1
  728.    Uint16      TOC2:1;     // 2   TOC for Mailbox 2
  729.    Uint16      TOC3:1;     // 3   TOC for Mailbox 3
  730.    Uint16      TOC4:1;     // 4   TOC for Mailbox 4
  731.    Uint16      TOC5:1;     // 5   TOC for Mailbox 5
  732.    Uint16      TOC6:1;     // 6   TOC for Mailbox 6
  733.    Uint16      TOC7:1;     // 7   TOC for Mailbox 7
  734.    Uint16      TOC8:1;     // 8   TOC for Mailbox 8
  735.    Uint16      TOC9:1;     // 9   TOC for Mailbox 9
  736.    Uint16      TOC10:1;    // 10  TOC for Mailbox 10
  737.    Uint16      TOC11:1;    // 11  TOC for Mailbox 11
  738.    Uint16      TOC12:1;    // 12  TOC for Mailbox 12
  739.    Uint16      TOC13:1;    // 13  TOC for Mailbox 13
  740.    Uint16      TOC14:1;    // 14  TOC for Mailbox 14
  741.    Uint16      TOC15:1;    // 15  TOC for Mailbox 15
  742.    Uint16      TOC16:1;    // 16  TOC for Mailbox 16
  743.    Uint16      TOC17:1;    // 17  TOC for Mailbox 17
  744.    Uint16      TOC18:1;    // 18  TOC for Mailbox 18
  745.    Uint16      TOC19:1;    // 19  TOC for Mailbox 19
  746.    Uint16      TOC20:1;    // 20  TOC for Mailbox 20
  747.    Uint16      TOC21:1;    // 21  TOC for Mailbox 21
  748.    Uint16      TOC22:1;    // 22  TOC for Mailbox 22
  749.    Uint16      TOC23:1;    // 23  TOC for Mailbox 23
  750.    Uint16      TOC24:1;    // 24  TOC for Mailbox 24
  751.    Uint16      TOC25:1;    // 25  TOC for Mailbox 25
  752.    Uint16      TOC26:1;    // 26  TOC for Mailbox 26
  753.    Uint16      TOC27:1;    // 27  TOC for Mailbox 27
  754.    Uint16      TOC28:1;    // 28  TOC for Mailbox 28
  755.    Uint16      TOC29:1;    // 29  TOC for Mailbox 29
  756.    Uint16      TOC30:1;    // 30  TOC for Mailbox 30
  757.    Uint16      TOC31:1;    // 31  TOC for Mailbox 31
  758. };
  759. /* Allow access to the bit fields or entire register */
  760. union CANTOC_REG {
  761.    Uint32              all;
  762.    struct CANTOC_BITS  bit;
  763. };
  764. /* eCAN Time-out Status register (CANTOS) bit definitions */
  765. struct  CANTOS_BITS {            // bit  description
  766.    Uint16      TOS0:1;     // 0   TOS for Mailbox 0
  767.    Uint16      TOS1:1;     // 1   TOS for Mailbox 1
  768.    Uint16      TOS2:1;     // 2   TOS for Mailbox 2
  769.    Uint16      TOS3:1;     // 3   TOS for Mailbox 3
  770.    Uint16      TOS4:1;     // 4   TOS for Mailbox 4
  771.    Uint16      TOS5:1;     // 5   TOS for Mailbox 5
  772.    Uint16      TOS6:1;     // 6   TOS for Mailbox 6
  773.    Uint16      TOS7:1;     // 7   TOS for Mailbox 7
  774.    Uint16      TOS8:1;     // 8   TOS for Mailbox 8
  775.    Uint16      TOS9:1;     // 9   TOS for Mailbox 9
  776.    Uint16      TOS10:1;    // 10  TOS for Mailbox 10
  777.    Uint16      TOS11:1;    // 11  TOS for Mailbox 11
  778.    Uint16      TOS12:1;    // 12  TOS for Mailbox 12
  779.    Uint16      TOS13:1;    // 13  TOS for Mailbox 13
  780.    Uint16      TOS14:1;    // 14  TOS for Mailbox 14
  781.    Uint16      TOS15:1;    // 15  TOS for Mailbox 15
  782.    Uint16      TOS16:1;    // 16  TOS for Mailbox 16
  783.    Uint16      TOS17:1;    // 17  TOS for Mailbox 17
  784.    Uint16      TOS18:1;    // 18  TOS for Mailbox 18
  785.    Uint16      TOS19:1;    // 19  TOS for Mailbox 19
  786.    Uint16      TOS20:1;    // 20  TOS for Mailbox 20
  787.    Uint16      TOS21:1;    // 21  TOS for Mailbox 21
  788.    Uint16      TOS22:1;    // 22  TOS for Mailbox 22
  789.    Uint16      TOS23:1;    // 23  TOS for Mailbox 23
  790.    Uint16      TOS24:1;    // 24  TOS for Mailbox 24
  791.    Uint16      TOS25:1;    // 25  TOS for Mailbox 25
  792.    Uint16      TOS26:1;    // 26  TOS for Mailbox 26
  793.    Uint16      TOS27:1;    // 27  TOS for Mailbox 27
  794.    Uint16      TOS28:1;    // 28  TOS for Mailbox 28
  795.    Uint16      TOS29:1;    // 29  TOS for Mailbox 29
  796.    Uint16      TOS30:1;    // 30  TOS for Mailbox 30
  797.    Uint16      TOS31:1;    // 31  TOS for Mailbox 31
  798. };
  799. /* Allow access to the bit fields or entire register */
  800. union CANTOS_REG {
  801.    Uint32              all;
  802.    struct CANTOS_BITS  bit;
  803. };
  804. /**************************************/
  805. /* eCAN Control & Status register file */
  806. /**************************************/
  807. struct ECAN_REGS {
  808.    union CANME_REG   CANME;          // Mailbox Enable
  809.    union CANMD_REG   CANMD;          // Mailbox Direction
  810.    union CANTRS_REG  CANTRS;         // Transmit Request Set
  811.    union CANTRR_REG  CANTRR;         // Transmit Request Reset
  812.    union CANTA_REG   CANTA;          // Transmit Acknowledge
  813.    union CANAA_REG   CANAA;          // Abort Acknowledge
  814.    union CANRMP_REG  CANRMP;         // Received Message Pending
  815.    union CANRML_REG  CANRML;         // Received Message Lost
  816.    union CANRFP_REG  CANRFP;         // Remote Frame Pending
  817.    union CANGAM_REG  CANGAM;         // Global Acceptance Mask       
  818.    union CANMC_REG   CANMC;          // Master Control
  819.    union CANBTC_REG  CANBTC;         // Bit Timing
  820.    union CANES_REG   CANES;          // Error Status
  821.    union CANTEC_REG  CANTEC;         // Transmit Error Counter
  822.    union CANREC_REG  CANREC;         // Receive Error Counter
  823.    union CANGIF0_REG CANGIF0;        // Global Interrupt Flag 0
  824.    union CANGIM_REG  CANGIM;         // Global Interrupt Mask 0
  825.    union CANGIF1_REG CANGIF1;        // Global Interrupt Flag 1
  826.    union CANMIM_REG  CANMIM;         // Mailbox Interrupt Mask
  827.    union CANMIL_REG  CANMIL;         // Mailbox Interrupt Level
  828.    union CANOPC_REG  CANOPC;         // Overwrite Protection Control
  829.    union CANTIOC_REG CANTIOC;        // TX I/O Control
  830.    union CANRIOC_REG CANRIOC;        // RX I/O Control
  831.    Uint32            CANTSC;         // Time-stamp counter
  832.    union CANTOC_REG  CANTOC;         // Time-out Control
  833.    union CANTOS_REG  CANTOS;         // Time-out Status               
  834.  
  835. };
  836. /* --------------------------------------------------- */
  837. /* eCAN Mailbox Registers                               */
  838. /* ----------------------------------------------------*/
  839. /* eCAN Message ID (MSGID) bit definitions */
  840. struct  CANMSGID_BITS {        // bits  description
  841.    Uint16      EXTMSGID_L:16;  // 0:15
  842.    Uint16      EXTMSGID_H:2;   // 16:17
  843.    Uint16      STDMSGID:11;    // 18:28  
  844.    Uint16      AAM:1;          // 29   
  845.    Uint16      AME:1;          // 30
  846.    Uint16      IDE:1;          // 31   
  847.  
  848. };
  849. /* Allow access to the bit fields or entire register */ 
  850. union CANMSGID_REG {
  851.    Uint32                all;
  852.    struct CANMSGID_BITS  bit;
  853. };
  854. /* eCAN Message Control Field (MSGCTRL) bit definitions */
  855. struct  CANMSGCTRL_BITS {     // bits  description
  856.    Uint16 DLC:4;          // 0:3  
  857.    Uint16 RTR:1;          // 4  
  858.    Uint16 rsvd1:3;        // 7:5   reserved   
  859.    Uint16 TPL:5;          // 12:8  
  860.    Uint16 rsvd2:3;        // 15:13 reserved 
  861.    Uint16 rsvd3:16;       // 31:16 reserved     
  862. };
  863. /* Allow access to the bit fields or entire register */ 
  864. union CANMSGCTRL_REG {
  865.    Uint32                  all;
  866.    struct CANMSGCTRL_BITS  bit;
  867. };
  868. /* eCAN Message Data Register low (MDR_L) word definitions */
  869. struct  CANMDL_WORDS {      // bits  description
  870.    Uint16      LOW_WORD:16; // 0:15  
  871.    Uint16      HI_WORD:16;  // 31:16  
  872. };
  873. /* eCAN Message Data Register low (MDR_L) byte definitions */
  874. struct  CANMDL_BYTES {      // bits   description
  875.    Uint16      BYTE1:8;     // 0:7
  876.    Uint16      BYTE2:8;     // 8:15
  877.    Uint16      BYTE3:8;     // 16:23
  878.    Uint16      BYTE4:8;     // 24:31      
  879. };
  880. /* Allow access to the bit fields or entire register */ 
  881. union CANMDL_REG {
  882.    Uint32                all;
  883.    struct CANMDL_WORDS   word;
  884.    struct CANMDL_BYTES   byte;      
  885. };
  886. /* eCAN Message Data Register high  (MDR_H) word definitions */
  887. struct  CANMDH_WORDS {         // bits  description
  888.    Uint16      LOW_WORD:16;    // 0:15  
  889.    Uint16      HI_WORD:16;     // 31:16  
  890. };
  891. /* eCAN Message Data Register low (MDR_H) byte definitions */
  892. struct  CANMDH_BYTES {      // bits   description
  893.    Uint16      BYTE5:8;     // 0:7  
  894.    Uint16      BYTE6:8;     // 8:15
  895.    Uint16      BYTE7:8;     // 16:23    
  896.    Uint16      BYTE8:8;     // 24:31  
  897. };
  898. /* Allow access to the bit fields or entire register */ 
  899. union CANMDH_REG {
  900.    Uint32                  all;
  901.    struct CANMDH_WORDS     word;
  902.    struct CANMDH_BYTES     byte;
  903. };
  904. struct MBOX {
  905.    union CANMSGID_REG     MSGID;
  906.    union CANMSGCTRL_REG   MSGCTRL;
  907.    union CANMDL_REG       MDL;
  908.    union CANMDH_REG       MDH;
  909. };
  910. /**************************************/
  911. /*          eCAN Mailboxes             */
  912. /**************************************/
  913. struct ECAN_MBOXES {
  914.    struct MBOX MBOX0;
  915.    struct MBOX MBOX1;
  916.    struct MBOX MBOX2;
  917.    struct MBOX MBOX3;
  918.    struct MBOX MBOX4;
  919.    struct MBOX MBOX5;
  920.    struct MBOX MBOX6;
  921.    struct MBOX MBOX7;
  922.    struct MBOX MBOX8;
  923.    struct MBOX MBOX9;
  924.    struct MBOX MBOX10;
  925.    struct MBOX MBOX11;
  926.    struct MBOX MBOX12;
  927.    struct MBOX MBOX13;
  928.    struct MBOX MBOX14;
  929.    struct MBOX MBOX15;
  930.    struct MBOX MBOX16;
  931.    struct MBOX MBOX17;
  932.    struct MBOX MBOX18;
  933.    struct MBOX MBOX19;
  934.    struct MBOX MBOX20;
  935.    struct MBOX MBOX21;
  936.    struct MBOX MBOX22;
  937.    struct MBOX MBOX23;
  938.    struct MBOX MBOX24;
  939.    struct MBOX MBOX25;
  940.    struct MBOX MBOX26;
  941.    struct MBOX MBOX27;
  942.    struct MBOX MBOX28;
  943.    struct MBOX MBOX29;
  944.    struct MBOX MBOX30;
  945.    struct MBOX MBOX31;
  946. };   
  947. /* eCAN Local Acceptance Mask (LAM) bit definitions */
  948. struct  CANLAM_BITS {                // bits  description
  949.    Uint16      LAM_L:16;     // 0:15  
  950.    Uint16      LAM_H:13;     // 16:28  
  951.    Uint16 rsvd1:2;           // 29:30   reserved   
  952.    Uint16      LAMI:1;       // 31 
  953. };
  954. /* Allow access to the bit fields or entire register */ 
  955. union CANLAM_REG {
  956.    Uint32        all;
  957.    struct CANLAM_BITS  bit;
  958. };
  959. /**************************************/
  960. /*    eCAN Local Acceptance Masks      */
  961. /**************************************/
  962. /* eCAN LAM File */
  963. struct LAM_REGS {
  964.    union CANLAM_REG LAM0;
  965.    union CANLAM_REG LAM1;
  966.    union CANLAM_REG LAM2;
  967.    union CANLAM_REG LAM3;
  968.    union CANLAM_REG LAM4;
  969.    union CANLAM_REG LAM5;
  970.    union CANLAM_REG LAM6;
  971.    union CANLAM_REG LAM7;
  972.    union CANLAM_REG LAM8;
  973.    union CANLAM_REG LAM9;
  974.    union CANLAM_REG LAM10;
  975.    union CANLAM_REG LAM11;
  976.    union CANLAM_REG LAM12;
  977.    union CANLAM_REG LAM13;
  978.    union CANLAM_REG LAM14;
  979.    union CANLAM_REG LAM15;
  980.    union CANLAM_REG LAM16;
  981.    union CANLAM_REG LAM17;
  982.    union CANLAM_REG LAM18;
  983.    union CANLAM_REG LAM19;
  984.    union CANLAM_REG LAM20;
  985.    union CANLAM_REG LAM21;
  986.    union CANLAM_REG LAM22;
  987.    union CANLAM_REG LAM23;
  988.    union CANLAM_REG LAM24;
  989.    union CANLAM_REG LAM25;
  990.    union CANLAM_REG LAM26;
  991.    union CANLAM_REG LAM27;
  992.    union CANLAM_REG LAM28;
  993.    union CANLAM_REG LAM29;
  994.    union CANLAM_REG LAM30;
  995.    union CANLAM_REG LAM31;
  996. };
  997. /* Mailbox MOTS File */
  998. struct MOTS_REGS {
  999.    Uint32 MOTS0;
  1000.    Uint32 MOTS1;
  1001.    Uint32 MOTS2;
  1002.    Uint32 MOTS3;
  1003.    Uint32 MOTS4;
  1004.    Uint32 MOTS5;
  1005.    Uint32 MOTS6;
  1006.    Uint32 MOTS7;
  1007.    Uint32 MOTS8;
  1008.    Uint32 MOTS9;
  1009.    Uint32 MOTS10;
  1010.    Uint32 MOTS11;
  1011.    Uint32 MOTS12;
  1012.    Uint32 MOTS13;
  1013.    Uint32 MOTS14;
  1014.    Uint32 MOTS15;
  1015.    Uint32 MOTS16;
  1016.    Uint32 MOTS17;
  1017.    Uint32 MOTS18;
  1018.    Uint32 MOTS19;
  1019.    Uint32 MOTS20;
  1020.    Uint32 MOTS21;
  1021.    Uint32 MOTS22;
  1022.    Uint32 MOTS23;
  1023.    Uint32 MOTS24;
  1024.    Uint32 MOTS25;
  1025.    Uint32 MOTS26;
  1026.    Uint32 MOTS27;
  1027.    Uint32 MOTS28;
  1028.    Uint32 MOTS29;
  1029.    Uint32 MOTS30;
  1030.    Uint32 MOTS31;
  1031. };
  1032. /* Mailbox MOTO File */
  1033. struct MOTO_REGS {
  1034.    Uint32 MOTO0;
  1035.    Uint32 MOTO1;
  1036.    Uint32 MOTO2;
  1037.    Uint32 MOTO3;
  1038.    Uint32 MOTO4;
  1039.    Uint32 MOTO5;
  1040.    Uint32 MOTO6;
  1041.    Uint32 MOTO7;
  1042.    Uint32 MOTO8;
  1043.    Uint32 MOTO9;
  1044.    Uint32 MOTO10;
  1045.    Uint32 MOTO11;
  1046.    Uint32 MOTO12;
  1047.    Uint32 MOTO13;
  1048.    Uint32 MOTO14;
  1049.    Uint32 MOTO15;
  1050.    Uint32 MOTO16;
  1051.    Uint32 MOTO17;
  1052.    Uint32 MOTO18;
  1053.    Uint32 MOTO19;
  1054.    Uint32 MOTO20;
  1055.    Uint32 MOTO21;
  1056.    Uint32 MOTO22;
  1057.    Uint32 MOTO23;
  1058.    Uint32 MOTO24;
  1059.    Uint32 MOTO25;
  1060.    Uint32 MOTO26;
  1061.    Uint32 MOTO27;
  1062.    Uint32 MOTO28;
  1063.    Uint32 MOTO29;
  1064.    Uint32 MOTO30;
  1065.    Uint32 MOTO31;
  1066. };
  1067. //---------------------------------------------------------------------------
  1068. // eCAN External References & Function Declarations:
  1069. //
  1070. extern volatile struct ECAN_REGS ECanaRegs;
  1071. extern volatile struct ECAN_MBOXES ECanaMboxes;
  1072. extern volatile struct LAM_REGS ECanaLAMRegs;
  1073. extern volatile struct MOTO_REGS ECanaMOTORegs;
  1074. extern volatile struct MOTS_REGS ECanaMOTSRegs;
  1075. #ifdef __cplusplus
  1076. }
  1077. #endif /* extern "C" */
  1078. #endif  // end of DSP281x_ECAN.H definition        
  1079. //===========================================================================
  1080. // No more.
  1081. //===========================================================================