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.

ADCTSSEL - Datasheet vs. TM4C123GH6PGEI mismatch (ERRATA)

Hello TI,

As reported in http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/179988.aspx the bit fields in the ADCTSSEL register do not respond as documented in the data sheet (currently July 17, 2013 version).

On my LM4F232H5QD Development Board, fitted with a new TM4C123GH6PGEI, I must set ADCTSSEL = 0x00000010 in order to successfully trigger ADC0 SS1 from PWM Module 1.  According to the data sheet, 0x00001000 should do the trick, but it does not.  Only 0x00000010 triggers ADC0 SS1 from PWM Module 1.

Please consider correcting the data sheet to match the silicon.  Also, are there any plans to add an API function for the ADCTSSEL register's functionality in the Tiva Peripheral Driver Library?

Thank you for your consideration!

Regards,

Dave

  • Hi Dave,

    Thanks for taking the time to bring this to our attention.  I've opened up a bug for it to be looked at and fixed - we may not make the next revision as I think it is already frozen, but we'll get to it.

    Regards,

    Sue

  • Hi Sue,

    Thank you very much for looking into this.  I / we sincerely appreciate your enthuastic participation on this forum and look forward hearing your findings!

    Regards,

    Dave

  • @Sue,

    IIRC - ADCTSSEL issue has been previously noted - discussed here (multiple posts) and may be, "in process."  (offer - "just in case...")

    Of course - we echo the "source's" favorable comments...

  • SourceTwo,

    Are you using PWM generator 0 to trigger the interrupt? If so, then it is working as designed.

    The PWM generators are subcomponents of the PWM modules. In order to use them as trigger sources for the ADC, both the PWM generator and module must be selected in the ADC module's registers.

    The ADCTSSEL register selects which PWM module each PWM generator is in. The ADCEMUX register selects which PWM generator is used for each sample sequence.

    The July datasheet has the updates that were promised in this post.

  • Hi John,

    Thank you for your response.

    I am using PWM module 1.  For the record, I am in full agreement with your statement "The ADCTSSEL register selects which PWM module each PWM generator is in. The ADCEMUX register selects which PWM generator is used for each sample sequence."

    Initially (way back), the documentation for the ADCTSSEL register had the selection fields in the lower nibbles of each byte - this was corrected some time ago.  The post I cited from April 2012 points out that the actual nibbles are mixed up.  If TI looks at their silicon design language (RTL, System-c, etc) I believe they could quickly and authoritively resolve the confusion.

    Thank you again!

     

    Regards,

    Dave

  • SourceTwo,

    There are two PWM modules. Each module contains four generators.

    Are you writing 0x6 to the EM1 field of the ADCEMUX register? Then you are selecting a PWM generator 0 to trigger SS1. Then when you write 0x00000010 to ADCTSSEL, you complete the configuration by selecting the PWM generator 0 in PWM module 1 to trigger SS1.

    If, for example, you wanted to trigger SS0 from PWM 1 generator 3, then you would write 0x9 to EM0 in ADCEMUX and then 0x10000000 to ADCTSSEL.

    The description of the register operation from the April 2012 datasheet was incorrect. It incorrectly mapped the ADCTSSEL bit field placement to the sample sequencers, instead of the PWM generators.

    The correct mapping of the ADCTSSEL bit field placement to the generators was only discovered in June 2013 after I asked the IC design team, who actually investigated the silicon design language implementation.

  • Hi John,

    I just compared the July 17 datasheet to the April 09 datasheet that I had been using,  Although I compared them briefly before starting this thread, at a (too quick) glance, the ADCTSSEL register looked the same.  NOW, after your email prompted me to check again, I see that the register description has been changed from ADC Sequencer-centric to PWM Generator-centric!

    Now everything adds up nicely!  The newly-described method is less versatile, but it will not affect me - glad, because newly designed boards are due in a week...

    So, once again, thank you for your assistance!  Thank you to Sue as well - I guess you can drop what ever research effort you had launched on my behalf.

    Sincerely,

    Dave

  • Hi Dave,

    I'm glad you are all set.  I've cancelled the bug report.

    John,

    Thank you for jumping in and sharing your knowledge on this subject!

    Regards,

    Sue