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.

TM4C1294KCPDT: Internal ASRCP ladder VDDA

Guru 55913 points
Part Number: TM4C1294KCPDT

Why does the maximum ladder VIref (table 22-3) stop at 0xF (2.525v) Max when VDDA is >3v3? How can this be a useful VIRef level for highly restricted 3v3 comparator threshold when -Cn inputs are overly trigger happy? Is there a way to make VDDA input less sensitive to transients in light of less useful VIRef table values?

Typical use of internal analog comparators for PWM fault triggering is highly limited by it's design!

  • Which explains - why SO MANY here - reject those (inherent) limitations and thus, 'Drive both Analog Comparator Inputs via external circuitry!'

    Indeed - the (clever) switch from 'internal to external' signal input achieves:

    • Range of Compared Voltages Much EXTENDED   (from so limited (you've noted) to 'R2R' (rail to rail) )
    • Resolves the 'coarseness' of those (so limited) internal references.    Any voltage you desire - may be emplaced!
    • And NO (extraneous software/programming - of those (did we say 'so limited' references) is demanded 

    Note too that (some ... actually many) ARM Cortex MCUs (even low cost M0/M0+) 'include on-board DACs' - which enable the, 'Setting/Altering' of comparator reference inputs (external ones - of course) - 'ON the FLY!'    (Staff notes that (even) some such MCUs may route the DAC signal 'internally' (to the MCU's analog comparator input) - for use as, 'FAR LESS COARSE AND wide ranging  Reference - which proves, Exactly what you seek!)

  • Hi BP101,

      There is limitation on the number of step sizes supported - which is 16 and the range of VIref is from 0.841V to 2.525V. If you are asking why the limitation, I can't really give you an answer. It is what it is. This is what got implemented in the silicon taking into account the process and temperature and spec'ed in such way to provide enough guardband. As suggested by cb1, if you want the full range up to the VDDA and finer granularity you will need to explore the external comparator. 

  • Charles Tsai said:
    As suggested by cb1, if you want the full range up to the VDDA and finer granularity you will need to explore the external comparator. 

    Indeed Charles - an 'external analog comparator' - just as you well note - always works!

    That said (admitted to evidence) it is possible to, 'STILL employ the MCU's Internal Analog Comparator - yet employ EXTERNAL CIRCUITRY - to provide the 'FULL RANGE & FINE GRAIN Voltage Levels' - which are (necessarily) 'Kicked to the Curb' - by the MCU's (rather crude) analog reference implementation.    (i.e. Make NO USE of the 'So Limited' internal analog references - employ externally created ones (i.e. 'proper ones') instead!

  • Charles Tsai said:
    If you are asking why the limitation, I can't really give you an answer

    Exactly my point that comparators in general allow just bellow VCC rail to be set as an input threshold. The issue involves other TI products that also wavier with internal limitation (ASRCP), as if all who work for TI are not on the same page! Seemingly random confusion at TI especially on the peripheral side, that an analog device set mid supply would never exceed internal ASRCP limitation "or should not, but can or does."

    CB1 is not the concept of the embedded MCU to combine external elements into one neat package reducing PCB layout space typically required to add external or duplicate parts? Anyway the problem was cause of sensor output configured for mid supply (1.65v) , passing an initial transient just above peak rail (3v34) and faulting both internal and or external threshold modes. The said peripheral vendor was not TI this time.  

  • Also to mention Tivaware (comp.h) does not have the correct Symbolic ASRCP voltage levels shown in datasheet table 22-3, 22-4 . Perhaps someone can update symbolic names to reflect the ASRCP tables? This makes it difficult to determine or configure the ASRCP ladder threshold for an intended trip point.

    //*****************************************************************************
    //
    // Values that can be passed to ComparatorRefSet() as the ui32Ref parameter.
    //
    //*****************************************************************************
    #define COMP_REF_OFF            0x00000000  // Turn off the internal reference
    #define COMP_REF_0V             0x00000300  // Internal reference of 0V
    #define COMP_REF_0_1375V        0x00000301  // Internal reference of 0.1375V
    #define COMP_REF_0_275V         0x00000302  // Internal reference of 0.275V
    #define COMP_REF_0_4125V        0x00000303  // Internal reference of 0.4125V
    #define COMP_REF_0_55V          0x00000304  // Internal reference of 0.55V
    #define COMP_REF_0_6875V        0x00000305  // Internal reference of 0.6875V
    #define COMP_REF_0_825V         0x00000306  // Internal reference of 0.825V
    #define COMP_REF_0_928125V      0x00000201  // Internal reference of 0.928125V
    #define COMP_REF_0_9625V        0x00000307  // Internal reference of 0.9625V
    #define COMP_REF_1_03125V       0x00000202  // Internal reference of 1.03125V
    #define COMP_REF_1_134375V      0x00000203  // Internal reference of 1.134375V
    #define COMP_REF_1_1V           0x00000308  // Internal reference of 1.1V
    #define COMP_REF_1_2375V        0x00000309  // Internal reference of 1.2375V
    #define COMP_REF_1_340625V      0x00000205  // Internal reference of 1.340625V
    #define COMP_REF_1_375V         0x0000030A  // Internal reference of 1.375V
    #define COMP_REF_1_44375V       0x00000206  // Internal reference of 1.44375V
    #define COMP_REF_1_5125V        0x0000030B  // Internal reference of 1.5125V
    #define COMP_REF_1_546875V      0x00000207  // Internal reference of 1.546875V
    #define COMP_REF_1_65V          0x0000030C  // Internal reference of 1.65V
    #define COMP_REF_1_753125V      0x00000209  // Internal reference of 1.753125V
    #define COMP_REF_1_7875V        0x0000030D  // Internal reference of 1.7875V
    #define COMP_REF_1_85625V       0x0000020A  // Internal reference of 1.85625V
    #define COMP_REF_1_925V         0x0000030E  // Internal reference of 1.925V
    #define COMP_REF_1_959375V      0x0000020B  // Internal reference of 1.959375V
    #define COMP_REF_2_1625V        0x0000030F  // Internal reference of 2.0625V
    #define COMP_REF_2_165625V      0x0000020D  // Internal reference of 2.165625V
    #define COMP_REF_2_26875V       0x0000020E  // Internal reference of 2.26875V
    #define COMP_REF_2_371875V      0x0000020F  // Internal reference of 2.371875V
    

  • Hi CB1,

    I actually added mock hysteresis into the analog comparator by changing the GPIO output structure for WPU with OD MnFault inputs. Since hysteresis control was never added and inputs were made highly sensitive, slightest impulse trips standard Tivaware configuration ASRCP thresholds.  

    It would seem some kind of register control of input/output hysteresis should be designed into the analog comparators.

  • BP101 said:
    CB1 is not the concept of the embedded MCU to combine external elements into one neat package reducing PCB layout space typically required to add external or duplicate parts?

    Greetings, thank you - and "Yes - the 'swallow' of (many/most) 'functional blocks' is indeed - the MCU's Manifest Destiny!"    (Note that (both) Tech & History - arrive w/in - posts from this reporter...)    That said/admitted - one must carefully, 'Compare/Contrast' the 'Specified Performance Figures' - achieved by the MCU's 'Big-Gulp' against those of the 'Far more established' external implementations. 

    Now Vendor's Charles surely KNOWS WHY the Analog Reference design is 'So compromised.'    (it simply costs more (MCU internal) die space & interconnects (to extend to 32 levels) - and these FREE/ADD-ON functions (analog references, here) - are (usually) only considered - AFTER ALL MCU MAJOR FUNCTION BLOCKS have been implemented.    It is for this reason - that such 'Kitchen-Sink attempts' - invariably 'TANK'  (i.e.  'Leak and/or only Stutter/Pulsate Water!')

    Alas - as has proven true here - a rather, 'HUGE COMPROMISE' has been enforced upon the 'less aware/knowing' - who (likely) absorbed 'Only the Headline' and did not 'Read the fine print (spec)!'

    Investors (good/skilled ones) always advise - "If one is to criticize - be sure to provide a satisfactory alternative!"    You may achieve the 'Best of both worlds' (i.e. Gain the 'size & cost saving' of the MCU's Analog Comparator) by using external components (yielding 'infinitely adjustable') Range & Resolution -  as your VASTLY IMPROVED 'analog reference!'

    My skilled young team has proposed a, 'Superior Description' for the MCU's (alleged) Analog REFERENCE - 'Analog  APPROXIMATOR' - seems (beyond) apt - does it not?   (And they still RAGE (and SHARE via social media) their huge disappointment - at being (so badly) deprived of their week's past 'Well-Earned Verify.')