This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1294NCPDT: An question about UNIQUE ID, DID1 regs and DWT (Data Watchpoint and Trace)

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: TM4C129XNCZAD

Hello,

I'd like to ask a few questions about TM4C1294NCPDT CPU:

1. It's was not so clear when I read description about registers Unique ID 0-3.
Which one is first in a 128 bit word? The data sheet and another sources of info does not provide any details about this one.

2. A description of reg DID1 in data sheet does not match with a description in the file \SW-EK-TM4C1294XL-2.1.3.156\inc\hw_sysctl.h
(for example PINCOUNT (Package Pin Count) ) and  the comment looks like some joke)) :   #define SYSCTL_DID1_VER_1       0x10000000  // fury_ib

3. Why TI does not provide any information about DWT Unit (Data Watchpoint and Trace)
In this case I have to use information from ARM "ARM® Cortex®-M4 Technical Reference Manual Rev. r0p1" but it's common description for whole family Cortex®-M4.
I'd like to use DWT_CYCCNT counter for creating DELAY function and I need more info how use.
As result work my software I have figured out that TM4C1294NCPDT has at least 2 register:
DWT_CTRL - has value 0x40000001 (it is not match with list of possible reset values in accordance with description "ARM® Cortex®-M4 Technical Reference Manual Rev. r0p1")
DWT_CYCCNT - an counter which starts to work immediately after RESET from debugger in debug mode but it does not work in regular working mode.
I guess it needs some initialization but no info how to do this one.

I'll appreciate any help in this one.
Thanks a lot!
Vasili

  • Hello Vasili,

    As mentioned in the description the results of registers 0 to 3 is the value. Register 0 bit-31 is the MSB in the 128 bit value and Register 3 Bit-0 is the LSB.

    In the DID1 register the SYSCTL_DID1_VER_M value is 0xF000.0000 and that forms the mask value. After that the value 0x1000.0000 is the version type of the register which is 0x1 for TM4C devices.

    The DWT unit function is mostly not given as it is an trace and debug function which is well implemented by debug and trace probe vendors.
  • Thanks Amit for fast answer!


    About the sequence of words Unique ID I got it.
    ( By the way NXP uses an another way for this Unique ID: first 32-bit word of Device Identification Number is at the lowest address. Just FYI ))

    About DID1 probably you did not get me.
    In the header hw_sysctl.h we have correct (I hope) information about the possible values of DID1:
    //SYSCTL_DID1_VER_M            0xF0000000  // DID1 Version
    //SYSCTL_DID1_VER_1            0x10000000  // Second version of the DID1 register format.
    //SYSCTL_DID1_FAM_M            0x0F000000  // Family
    //SYSCTL_DID1_FAM_TIVA       0x00000000  // Tiva family of microcontollers
    //SYSCTL_DID1_PRTNO_M     0x00FF0000  // Part Number
    //SYSCTL_DID1_PRTNO_TM4C1294NCPDT  0x001F0000  // TM4C1294NCPDT
    //SYSCTL_DID1_PINCNT_M      0x0000E000  // Package Pin Count
    //SYSCTL_DID1_PINCNT_100  0x00004000  // 100-pin LQFP package
    //SYSCTL_DID1_PINCNT_64    0x00006000  // 64-pin LQFP package
    //SYSCTL_DID1_PINCNT_144  0x00008000  // 144-pin LQFP package
    //SYSCTL_DID1_PINCNT_157  0x0000A000  // 157-pin BGA package
    //SYSCTL_DID1_PINCNT_128  0x0000C000  // 128-pin TQFP package           
    //SYSCTL_DID1_TEMP_M          0x000000E0  // Temperature Range
    //SYSCTL_DID1_TEMP_C          0x00000000  // Commercial temperature range
    //SYSCTL_DID1_TEMP_I            0x00000020  // Industrial temperature range
    //SYSCTL_DID1_TEMP_E          0x00000040  // Extended temperature range
    //SYSCTL_DID1_TEMP_IE          0x00000060  // Available in both industrial temperature range (-40C to 85C) and extended temperature range (-40C to 105C) devices.
    //SYSCTL_DID1_PKG_M            0x00000018  // Package Type
    //SYSCTL_DID1_PKG_QFP       0x00000008  // QFP package
    //SYSCTL_DID1_PKG_BGA       0x00000010  // BGA package
    //SYSCTL_DID1_ROHS              0x00000004  // RoHS-Compliance
    //SYSCTL_DID1_QUAL_M          0x00000003  // Qualification Status
    //SYSCTL_DID1_QUAL_ES        0x00000000  // Engineering Sample (unqualified)
    //SYSCTL_DID1_QUAL_PP        0x00000001  // Pilot Production (unqualified)
    //SYSCTL_DID1_QUAL_FQ        0x00000002  // Fully Qualified

    and in its turn Data sheet provides the wrong information ( it based on my experience ).
    just for example:

    PINCOUNT:
    0x0 reserved
    0x1 reserved
    0x2 100-pin LQFP package
    0x3 64-pin LQFP package
    0x4 144-pin LQFP package
    0x5 157-pin BGA package
    0x6 128-pin TQFP package
    0x7 212-pin BGA package      ???????

    TEMP:
    0x0 Commercial temperature range
    0x1 Industrial temperature range
    0x2 Extended temperature range

    SYSCTL_DID1_TEMP_IE         ????

    Last rev.F Errata  does not fixed this one in its turn.

    And last one about DWT. If I want to use this DWT unit in my project can I get information from TI or it's closed information for programmers?


    Thanks!

  • Hello Vasili,

    The 212 BGA package is for the TM4C129 (ZAD package) e.g. TM4C129XNCZAD devuce

    As for the extended temperature range that is a place holder I believe for high temp devices (not sure if these are the Hi-Rel devices).

    The documentation on Trace and Debug comes from ARM and we do not re-distribute the document for the same.