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.

AMC1305M25: Evaluating AMC1305 with C2000

Part Number: AMC1305M25
Other Parts Discussed in Thread: TMS320F28379D

Hi team,

I am helping my customer evaluating AMC1305 with C2000 TMS320F28379D.

I believe our connection configuration is right, and we can get data flow out of AMC1305 data out pin.

We are providing a 7Mhz clock to AMC1305 via a PWM, and try to decode using SDFM of C2000.

However, even for a constant input, I am getting a changing result. I believe the problem is we did not config the SDFM in the right way.

My question is: 

For AMC1305, do you have a recommended configuration for SDFM(Filter type, OSR, mode0/1/2/3 and so on)?

I understand the question is related to C2000, but I believe you are professional on this device.

Thanks for your help.

  • Hi Brian,

    The AMC1305 DOUT matches up with Mode 0 in the SDFM.  By the AMC1305X datasheet, we run the device with a SYNC 3 filter and OSR of 256.  Generally speaking, the preferred SDFM input would be using the ASYNC mode when the clock and data inputs have clean signals.

    That being said, what sort of input are you providing to the AMC1305 and how are you determining that you have a changing result?  Are you looking at the bit-stream itself or the output of the SDFM?

  • 1. I shorted two input of AMC1305, but I am getting a changing value observed via CCS.
    2. I provided a 1kHz 100mV sine signal to AMC1305. In this case, I also cannot get the right result.

    BTW, in C2000 how to convert the result of SDFM into the true value of measured signal?

    Thanks!
  • Hi Weiqi,

    I did not write this program and have limited experience with the C2000, but these comments from a functional program may help:

    SDFM1 is used in this example

    Mode 0 is the input control mode

    Comparator settings:
    Sinc3 filter selected
    OSR = 32
    HLT = 0x7FFF (Higher threshold setting)
    LLT = 0x0000 (Lower threshold setting)

    Data Filter settings:
    All 4 filter modules enabled
    Sinc3 filter selected
    OSR = 256
    All 4 filters are synchronized by using PWM (Master filter enable bit)
    Filter output represented in 16 bit format
    In order to convert 25 bit data filter into 16 bit format, user needs to right shift by 9 bits for Sinc3 filter with OSR = 256

    Interrupt module settings for SDFM filter:
    All 4 higher threshold comparator interrupts disabled
    All 4 lower threshold comparator interrupts disabled
    All 4 modulator failure interrupts disabled
    All 4 filters will generate an interrupt when new filter data is available

    For code to voltage conversion, this thread may help: e2e.ti.com/.../1363393
  • Hi Alex,

    Thanks for your reply.
    For code to voltage conversion, is that correct to follow the below procedure?
    1. XOR the data I got with 0x800000h to get a 'code'.
    2. [code-1 (in decimal)*LSB size]/gain to get the voltage result.

    Is that correct?

    Regards,
    Brian
  • Hi Brian,

    You're welcome, I hope that it helps!
    0x800000h is 100000000000000000000000b in binary. (24 bits)
    Since you are doing a 16 bit filter, you would want to use 0x8000h, which is 1000000000000000b in binary. (16 bits)