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.

CCS/TMS320F280049: SDFM module

Part Number: TMS320F280049


Tool/software: Code Composer Studio

Hello!I'm learning a new TMS320F280049PMSR for myself. There are 3 questions:
1. When configuring the project, which variant should I choose: TMS320F280049, TMS320F280049C, TMS320F280049M?
2 In the example for configuring the SDFM module, the following interrupts are used: INT_SD FM 1 and INT_SDFM1DR1. I didn't find any description of this interrupts in the datasheet. Am I correct in assuming that INT_SDFM1DR1 is triggered when the conversion is complete, and INK_SD FM 1 is triggered when errors occur or comparators are triggered?
3. In the example for configuring the SD FM module shows the following interrupt handler:

__interrupt void sdfmDR1ISR(void)
{
    static uint16_t loopCounter1 = 0;

    SDFM_setOutputDataFormat(SDFM1_BASE, SDFM_FILTER_1,
                             SDFM_DATA_FORMAT_16_BIT);

    //
    // Read SDFM flag register (SDIFLG)
    //
    if(loopCounter1 >= MAX_SAMPLES)
    {
        loopCounter1 = 0;;
    }

    while((HWREG(SDFM1_BASE + SDFM_O_SDIFLG) & 0xF000U) != 0xF000U)
    {
    }

    filter1Result[loopCounter1] =
           (int16_t)(SDFM_getFilterData(SDFM1_BASE, SDFM_FILTER_1) >> 16U);
    filter2Result[loopCounter1] =
           (int16_t)(SDFM_getFilterData(SDFM1_BASE, SDFM_FILTER_2) >> 16U);
    filter3Result[loopCounter1] =
           (int16_t)(SDFM_getFilterData(SDFM1_BASE, SDFM_FILTER_3) >> 16U);
    filter4Result[loopCounter1++] =
           (int16_t)(SDFM_getFilterData(SDFM1_BASE, SDFM_FILTER_4) >> 16U);


    //
    // Clear SDFM flag register (SDIFLG)
    //
    SDFM_clearInterruptFlag(SDFM1_BASE, SDFM_MASTER_INTERRUPT_FLAG |
                            SDFM_FILTER_1_NEW_DATA_FLAG            |
                            SDFM_FILTER_2_NEW_DATA_FLAG            |
                            SDFM_FILTER_3_NEW_DATA_FLAG            |
                            SDFM_FILTER_4_NEW_DATA_FLAG);

    //
    // Acknowledge this interrupt to receive more interrupts from group 5
    //
    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP5);
}

How do I make the interrupt work only after the conversion in filter 4 ends?
((as with ADC: SOIC 0 - >SOC1 - >SOC2->SOC 3->INTERRUPT)

  • Vladimir,

    1. When configuring the project, which variant should I choose: TMS320F280049, TMS320F280049C, TMS320F280049M?

    Use TMS320F280049

    2 In the example for configuring the SDFM module, the following interrupts are used: INT_SD FM 1 and INT_SDFM1DR1. I didn't find any description of this interrupts in the datasheet. Am I correct in assuming that INT_SDFM1DR1 is triggered when the conversion is complete, and INK_SD FM 1 is triggered when errors occur or comparators are triggered?

    17.7 Interrupt Unit in SDFM chapter explains these interrupts. INT_SDFM is actually SDy_ERR interrupt.

    How do I make the interrupt work only after the conversion in filter 4 ends?

    Assuming the data rate for all the 4 filters are same and all 4 filter channels are in same phase (meaning all the 4 filter channel get new filter data at the same time), you can use INT_SDFM1DR4 interrupt and disable INT_SDFM1DRx(1,2,3) interrupt sources.

    Regards,

    Manoj