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: How to make CPU2 access EMIF1?

Genius 3095 points
Part Number: TMS320F28377D


Dear team:

1, I have implemented reading EMIF1 with CPU1, I want to use CPU2 to access EMIF1, How should I write programs?

I've switched the data address bus to CPU2, and I don't know what else to set up,

setup_emif1_pinmux_async_16bit(GPIO_MUX_CPU2); 

2, In the calculation of duty cycle of HVPM28335 sensorless PWM, why do we need to add v.HalfPerMax in the formula?

(*ePWM[ch1]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC1)+ v.HalfPerMax; \
(*ePWM[ch2]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC2)+ v.HalfPerMax; \
(*ePWM[ch3]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC3)+ v.HalfPerMax; \

Best regards

  • Hi,

    1, I have implemented reading EMIF1 with CPU1, I want to use CPU2 to access EMIF1, How should I write programs?

    I've switched the data address bus to CPU2, and I don't know what else to set up,

    setup_emif1_pinmux_async_16bit(GPIO_MUX_CPU2); 

    Please refer the E2E post below which is on same topic.

    e2e.ti.com/.../3071924 CPU2#3071924

    Let me know if that help so that I can assign this post to other expert to answer your query related to HVPM28335.

    Regards,

    Vivek Singh

  • Hi Vivek:

    Thank you for your answer and it can help me.

     Please assign this post to other expert.

    Best regards

  • Great. I have assigned it to PWM expert.

    Regards

    Vivek Singh

  • Hi,

    Regarding your second question -

    2, In the calculation of duty cycle of HVPM28335 sensorless PWM, why do we need to add v.HalfPerMax in the formula?

    (*ePWM[ch1]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC1)+ v.HalfPerMax; \
    (*ePWM[ch2]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC2)+ v.HalfPerMax; \
    (*ePWM[ch3]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC3)+ v.HalfPerMax; \

    v.HalfPerMax is added because the modulation is occurring over 50% duty cycle. So, either the duty cycle will increase or decrease w.r.t. 50% value - based on the calculation. The MfuncC1/2/3 are in turn calculated by space vector modulation. You can refer to SVGEN macro.