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.

TMS320F28377D ADCSOCBO Not correctly configured?

Other Parts Discussed in Thread: TMS320F28377D

Hello,

I am trying to measure the ADCSOCBO pulse from a TMS320F28377D processor on my oscilloscope by using one of the GPIO pins.
 I have the following configuration:

EPWM7 generates a SOCB pulse when CTRU = CMPB. When I force the SOCB pulse with the ETFRC[SOCB] register, then the ETFLG[SOCB] is set. The flag is also set when I dont force the SOCB pulse. Therefore this is working properly.

I've connected the EPWM7SOCB pulse to the ADC with the ADCBURSTCTL[BURSTTRIGSEL] register. But this has probably nothing to do with the ADCSOCB output.

I am guessing that there must be some kind of selection between the EPWM modules and the ADCSOCB output? Just like the BURSTTRIGSEL register.

Could you provide me with some more information on how to connect the EPWM7SOCB to the ADCSOCBO.

Kind regards,


Erik

  • Hi Erik,

    Refer to the EXTADCSOCSELECT register documented in the TRM.  This register will choose which PWM's SOC outputs will go to the OUTPUTXBAR.

    You will then also have to configure the OUTPUTXBAR (& GPIO mux) correctly in order to bring the PWM SOC to a pin so that you can measure the timing externally.


    Thank you,
    Brett

  • But why does the dsp have a dedicated ADCSOCBO pin on GPIO10? Can't I just use this pin directly? Instead of using the OUTPUTXBAR.

    I also found the following two outputs from the ePWM modules. But I can't find ant documentation on these signals (marked in red):

  • I think I forgot to configure something yesterday. Because the ADCSOCBO is now working. Both the ADCSOBO on GPIO10 and an output on the OUTPUTXBAR work.

    I just use the following code and it works fine:

            //ADCSOCBO
            TrigRegs.EXTADCSOCSELECT.bit.PWM7SOCBEN = 1;

            GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 3;
            GpioCtrlRegs.GPAGMUX1.bit.GPIO10 = 0;
            GpioCtrlRegs.GPADIR.bit.GPIO10 = dGPIO_DIR_OUT;
            GpioCtrlRegs.GPAPUD.bit.GPIO10 = dGPIO_NO_PULL_UP;

            //Outputbar 6
            OutputXbarRegs.OUTPUT6MUX0TO15CFG.bit.Mux15 = 0x01;
            OutputXbarRegs.OUTPUT6MUXENABLE.bit.Mux15 = 1;

            GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 3;
            GpioCtrlRegs.GPAGMUX1.bit.GPIO9 = 0;
            GpioCtrlRegs.GPADIR.bit.GPIO9 = dGPIO_DIR_OUT;
            GpioCtrlRegs.GPAPUD.bit.GPIO9 = dGPIO_NO_PULL_UP;

    Still I wonder what the above outputs marked in red are, and where they are documented.

  • Hi Erik,

    You are right, there is also a GPIO mux connection.  I forgot about that. :)

    The ADCSOCxOn Select Circuit (the section you marked in red in your picture) outputs [1] to the GPIO mux and [2] to the OUTPUTXBAR.  I agree this is not documented as well as it could be, and I will file a documentation change request for the TRM so that this gets clarified in a future revision.

    I'm glad you got your system working.


    Thank you,
    Brett