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.

Problem in configuring SD16_A conversion

Other Parts Discussed in Thread: MSP430F47197

I am new to MSP430F47197 controller. I am facing a problem of not getting interrupt as i expected.

Source-SMCLK - 8Mhz

Clock Divider-8

OSR 256, Single conversion mode, all the channels grouped with out any predelay.

After completing the settings i started the conversion. Once i got the interrupt

again i started the conversion.

In this case i have to get the interrupt for every 250usecs. But i am getting for every 1 msec.

In Continuous conversion mode i got the interrupt for every 250usecs. But i failed to get the same result

single conversion mode.

  • I'm not 100% sure whether my explanation is correct, but I think it has to do with how the SD16 works.

    While OSR256 means that a result is coming out of the digital filter each 256 clock pulses (= 256 samples taken), it does not mean that the output signal depends on these 256 samples alone. The digital filter has a much larger queue form which the result is calculated.
    While not converting, the SD16 won't take samples. So when you sart a single conversion, all data in the filter is outdated and needs to be replaced. In continuous mode, after first conversion is done, the buffer already contains up-to-date samples and the enxt result is ready 256 samples later. But if you start it, the SD16 has no knowledge about how old the filter contents are and all is discarded and needs to be filled anew. So the first sample takes longer. It needs to take longer or your conversion results are rather random.

    IIRC, the SD16INTDLYx bits are only active in continuous mode, suppressing the interrupts for the first three (invalid) results. In single conversion mode, there is only one conversion and only one interrupt. So these bits don't make sense and are inactive. The delay is always applied or else single conversion mode would always give you wrong results. Only in coninuous mode you may chosse whether to get the first (incorrect) results.
    Note that the default value of these bits is 0x00 which means discarding the first three results by default. Normally, there is no reason to change this.

**Attention** This is a public forum