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.

C2000WARE: Testing the AD7847 with the TMDSCNCD280049C

Part Number: C2000WARE
Other Parts Discussed in Thread: TMDSCNCD280049C, TMDSHSECDOCK,

Hello, fellow TI experts.

I'd like to test whether I can operate the AD7847 by combining the TMDSCNCD280049C and the TMDSHSECDOCK.

The test involves inputting a signal to the TMDSCNCD280049C's ADC_IN, sending that signal via GPIO to the AD7847 via parallel communication, and then outputting it from the AD7847.

How should I operate CCS20.3.1, and what code should I refer to?

I'm looking forward to your response. 

  • Hi Kotaro,

    We don’t have an example specifically for the AD7847, but you can build this test by combining the standard ADC and GPIO examples from C2000Ware for F28004x.You can install the latest C2000Ware and make sure CCS can see it under “Window > Preferences > Code Composer Studio > Products”. In CCS, use Project > Import CCS Projects… and browse into “C2000Ware\driverlib\f28004x\examples\adc”. For example, import and build “adc_ex1_soc_software” as a starting point. That gives you a working CCS project with clocks, linker command file, and basic device init for TMDSCNCD280049C on TMDSHSECDOCK.

    Select the ADC channel that corresponds to the ADC_IN pin you are using on the controlCARD/HSEC dock and modify “initADCs()”. Make sure to trigger the conversion (software or ePWM) and confirm you can read the correct value in AdcaResultRegs.ADCRESULTx.

    The AD7847 expects a 12-bit parallel bus plus control signals (CS, WR). Choose the GPIO pins like 12 data bits: (GPIO0–GPIO11) and control lines: (GPIO12 > CS, GPIO13 > WR) and configure them as output.

    After you read adcResult = AdcaResultRegs.ADCRESULT0, align to the AD7847’s data width (12-bit):

    uint16_t dacData = adcResult & 0x0FFF;

    Finally, drive each GPIO bit.

    You can first do this in a simple for(;;) loop (no interrupts) to validate the interface, then later move it into an ADC ISR if you need continuous streaming.

    Best Regards,

    Masoud

  • Dear Masoud
    Thank you for your reply, and I apologize for the late response.
    It took me quite a while, but I was able to test it according to your advice and get continuous streaming output.


    Thank you for your insightful advice.
    Kotaro