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.

PWM ISR and ADCs in PMSM sensorless program

Other Parts Discussed in Thread: DRV8301

Hell all,

I am currently working on PMSM sensorless program development using Concerto F28M35 and my own DRV8301 3-phase inverter.

Currently, I could run the motor open loop. When I am planing to close the current loop, I found the ADC reading was very noise from the pre-amp on DRV8301.  The PCB trace from the current sense resistor is designed as differential pair and the caps are placed as close to the DRV8301 as possible. 

I guess the problem could be from two aspects, hardware or software, or both... The software side, I read the code and found both ADC SOCs and mainISR are triggered by PWM1 counter zero event.

Following is the configurations of ADC SOCs

1. F28M35 has two ADCs, ADC1 simultaneously samples two samples(phase A current, and VDC), and ADC2  simultaneously samples two samples(phase B current, and spare)

2. both ADCs are triggered by PWM1 counter zero event.

3. MainISR triggered by PWM1 counter_zero event

Thus, when the mainISR reads the ADC result registers, it's highly possible the ADC conversions were not finished. I noticed the reference program on F28069 actually samples the leg currents in series due to one ADC available on chip. How should I set up the ADC channels and SOC on Concerto devices?

Thanks in advance for any advise!

best,

  • you should have the interrupt trigger the CPU on ADC conversions done, not on the PWM event.

    Also, on you current sense place the caps and sense circuit as close to the MCU ADC pins as possible. What you have created is a noise antennae.