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.

AM6442: Is there any comprehensive documentation for the CPSW3G peripheral?

Part Number: AM6442

Is there any comprehensive documentation for the CPSW3G peripheral?

I am hoping that there is some standalone PDF documents somewhere that describes this hardware block in detail.  Even a document for a similar block used in another product that was like 90% similar would be very useful.

The AM6442 TRM (SPRUIM2H) does have a list of registers and bit field definitions within the registers.  It also has some general descriptions about how the peripheral works.  But there are many registers that are largely undocumented.  In those cases, the TRM literally just lists the names of the registers and bitfields but provides no further explanation.

Some examples of such registers would be...

SOME UNDOCUMENTED REGISTERS
SPRUIM2E § 12.2.1.6.5.2 CPSW_INT_EOI_REG Register (Offset = 1010h) [reset = X]
SPRUIM2E § 12.2.1.6.5.3 CPSW_INT_INTR_VECTOR_REG Register (Offset = 1014h) [reset = 0h]
SPRUIM2E § 12.2.1.6.5.4 CPSW_INT_ENABLE_REG_OUT_PULSE_0 Register (Offset = 1100h) [reset = X]
SPRUIM2E § 12.2.1.6.5.5 CPSW_INT_ENABLE_CLR_REG_OUT_PULSE_0 Register (Offset = 1300h) [reset = X]
SPRUIM2E § 12.2.1.6.5.6 CPSW_INT_STATUS_REG_OUT_PULSE_0 Register (Offset = 1500h) [reset = X]
SPRUIM2E § 12.2.1.6.5.7 CPSW_INT_INTR_VECTOR_REG_OUT_PULSE Register (Offset = 1A80h) [reset = 0h]
SPRUIM2E § 12.2.1.6.4.3 CPSW_EM_CONTROL_REG Register (Offset = 00020010h) [reset = X]
SPRUIM2E § 12.2.1.6.4.5 CPSW_PTYPE_REG Register (Offset = 00020018h) [reset = X]

There are many more such registers.

The descriptions don't give enough information to allow a third-party engineer to understand how to use the hardware if they want to write their own code (as opposed to using TI provided code).  Reasons for wanting to write their own code may include, but not limited to, information security requirements, safety critical software design requirements, etc.

  • Hi Andrew,

    CPSW has been a common peripheral for all the devices starting from AM33x. If you wish to know more about the peripheral you can refer to the TRM of any device with CPSW3G.

    But the best place to know about a device peripheral is to refer to the TRM of that device only.

    Basic information of the registers is provided in the TRM, for basic programming steps using those register, you can refer to 12.2.1.5 CPSW0 Programming Guide. Other than that referring to the examples provided in the SDK is the way to get a glimpse of how to use the peripheral and build on top of that.

    Please let me know if you have any specific requirement that I can help you with.

    Regards,

    Nitika

  • The problem with 12.2.1.5 CPSW0 Programming Guide in SPRUIM2H is that its's very brief (only 3 pages) for a peripheral that has literally hundreds of registers.  12.2.1.5 only covers the bare minimum (enabling/disabling the CPSW3G and operation of the MDIO interface).  Due to errata the MDIO interface is broken so I won't be using it and instead I will be doing MDIO in pure software.

    I suspect that the AM6442 TRM is still a work in progress and might get more details later.  I have found dozens of errors in the document (and I have a big list).  Which reminds me, if I find such errors, where can I submit them to help you guys out for the next revision?

    Thank you for these suggestions.

    I will look at the AM33X TRM.  If you know of any other devices using that same CPSW3G I would also like to know their part numbers.

    I can also try using the SDK code as a reference (although I won't be using it directly).

  • I have found dozens of errors in the document (and I have a big list).  Which reminds me, if I find such errors, where can I submit them to help you guys out for the next revision?

    Thank you for letting me know. You can always create a new thread listing the errors you have found, we will accept those as bugs and address them in the next release.

    If you know of any other devices using that same CPSW3G I would also like to know their part numbers.

    You can find the devices here - ti.com/microcontrollers-mcus-processors/arm-based-processors/2-Port-10-100-1000

    I would still recommend you to use the AM64x TRM and SDK example code as your main reference.

    Regards,

    Nitika