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.

TMS320F28377S: F28377S: ADC noise and flash execution

Part Number: TMS320F28377S
Other Parts Discussed in Thread: OPA320, OPA350

Hello,

I use the differential 16-bit-ADC of a F28377S with 2.5V-Reference and two different CCS-project-configurations: RAM (RAM only) and FLASH (stored in FLASH, signal processing executed from RAM).

Interesting observation:

The RAM-only version shows a better noise performance (approx. 100 uV RMS, 8 LSB peak/peak), the FLASH-version is worse (approx. 200 uV RMS, 16 LSBt peak/peak).

In the FLASH-version there are still some functions executed in the flash. Does it affect the ADC-performance?

Thanks,
Edwin

  • Edwin,

    I would suspect it is more when there is high CPU activity co-incident with the ADC sampling, and perhaps the flash/RAM mix code is placing those functions differently time wise than the RAM only code.  The code executed from flash will run slower than the RAM only code so the timings will be different.

    As an experiment could you insert one asm(" NOP"); at the beginning of the RAM code to see if moving it out in time has any effect on the noise profile?

    Best,
    Matthew

  • Thanks! I tried but there ist no effect. Just for information: Nearly the complete code is in RAM, just some functions remain in the flash. CPU-load is approx 70%.

    I will try to move the complete (!) program to the RAM. So that c_int00, main staying the flash but the ".text" will be in RAM. I will start a new thread.

    Best regards,
    Edwin

  • Edwin,

    I'll ask some others for comment as well, I would actually expect the RAM based version to be potentially noisier in terms of CPU activity due to its full speed operation.

    The alternate theory would be that since the flash uses the 3.3V rail there is some potential noise coupling at that node.  Are you actively programming the flash during the ADC read, or just executing code?

    Best,

    Matthew

  • Thanks for your help ... and for the information that flash execution might make the ADC performance worse.

    There is no flash write, just some functions with short execution time. The analog design is well done, enough decoupling with ferrit beads and capacitors.

    I decided the best way is to move the complete program into the RAM. Hence, I started a new thread:
    TMS320F28377S: F28377S: Moving ".text" segment to RAM

    Best regards,
    Edwin

  • Hello Edwin,

    To maximize ADC performance, we suggest using a high-bandwidth op amp buffer at the signal input and also at the VREFHI pin. The OPA320 and OPA350 are good options for VREFHI; the OPA2211AID is also an excellent option for driving a differential input pair. Of course this will depend on your system requirements as well.

    For more information please see our application report on ADC Input Circuit Evaluation.

    There could also be layout factors to consider. For a noise-sensitive 16bit input, I would recommend using ADC pins closest to the corner of the chip (and furthest away from any ground/power pins).

    Best regards,
    Ibukun