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.

TMS320F280049: Adc measurement issue

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

Hi.

Last few days measures from adc have become strange. Even when adc input not connected anywhere, i receive values more than 4000.

I work with tmsf280049cpms on custom board, 64pin. (full marking: f280049cpms YFB-7CA97LW G4)
I tried to give planty signals, and figure out, that if signal less than about 40mV, i get values less than 4000. So reference is not work correctly.

I have controlCard with tms280049m (100pin). It is tmx. And with the same code everything work fine.

There is some about it in the errata on the page p. 19 "Analog Subsystem: Software Configuration for Shared Reference Pins".
It says, that it is need to write 0x3 to ANAREFPP to disable all but one internal references (for 64 and 56 packets). But it is acceptable only for TMX devices.
As i can see, i have tms (there is no X symbol above signature f280049cpms). I have ANAREFB equal to 1 and ANAREFC 0.
Otherwise, I tried mannualy write 0x3 to it, even after EALLOW, and it is not work. Its just stay as it was.

For check, i used projects from examples "C2000Ware_1_00_04_00\driverlib\f28004x\examples\adc", just changed adc base and input to mine.

Thanks!

  • Hi Igor,

    When the ADC input is floating, the conversion has no meaning. Looks like you are having issues with a custom board. Are you using internal or external reference?
  • Hi, Frank.

    I am using internal reference.
    I tried today to supply reference externaly, and always work correctly.
    It seems, that internal reference is incorrect or, like you wrote, there is some issues with board. But since the measurements is correct with external referenct, this does not seem to be an issue in the board.


    We have two identical boards. This symptons appears on the first one now (she worked for several weeks as normal), and on the second board the symptoms appeared immediately.
    Here is a piece of the circuit, associated with the adc. Vin - voltage input, and U_Chan - line going directly to the adc input pin:

    And one more: when reference is internal, driverlib function (ADC_setVREF) setting up vRefHi pin like output.
    I saw today voltage on it once (with help of oscillograph), and after few minutes later (several reload of the project) its dissappears. Sounds weird, but it is. For to be sure, i will try on Monday to repeat it (if it will appear).

    Thanks, for reply.

  • Igor,

    I understand. Let's walk through it. The ADC on F280049 supports both internal and external references. For Internal reference mode, the reference voltage is supplied internally. This internal voltage is however still brought out on the VREFHI pin for filtering. This is why even in internal reference mode, you still have to place caps on the VREFHI pin. You can verify this by putting the device in internal reference mode (AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL=0) and measuring the voltage on the VREFHI pin. This voltage will be 2.5v or 1.65v depending on the bit value of (AnalogSubsysRegs.ANAREFCTL.bit.ANAREFA2P5SEL). In the figure below, you can see in the highlighted portion where the internal reference brings the voltage out onto the VREFHI pin. 

    Furthermore for 64-pin package, the 3 ADC references VREFHIA, VREFHIB and VREFHIC are ganged together into one VREFHI pin. If you switch to internal reference mode on the 64-pin package, all 3 internal reference voltage will try to come out on this single pin and as you probably realize, there will be contention. To prevent this contention, 2 of the internal references have to be disabled using the ANAREFPP register. For 64-pin TMX devices, this has to be done by the user. However for TMS devices, this is handled automatically in the bootrom at boot. Also, it is recommended that all 3 ADC references be configured the same way. So even though in the 64-pin package VREFHIB and VREFHIC internal references are disabled, they should still be configured the same as VREFHIA. 

    I hope this clears up the references for you. For the issue you are facing, with one board working and one not, you are most likely having a board issue. As i mentioned, you can debug if internal reference is working by switching to internal reference mode and measuring the voltage on VREFHI.

  • Thanks for the exhaustive explanation, now everything works.

    All i need is just to configure all 3 references the same way. Even if i don't use this adc.

  • Glad i could help and yes, that's right. All 3 ADC references should be configured the same way.