AnsweredAssumed Answered

Custom MC-LVPMSM PCB Startup

Question asked by Frank Roberts on Dec 12, 2019
Latest reply on Dec 18, 2019 by Frank Roberts

Hello I have developed a Custom MC-LVPMSM PCBA essentially based on the FRDM-MC-LVPMSM and FRDM KV11 Eval board.  There are a few minor changes such as I am using a smaller pin count MCU in the KV11Z64VFM7 as we are looking for a small form factor and I have changed the OpAmp to a TLV9062 and modified some of the power management outside of that I am using the same FET Driver and FETs that are used on the MC-LVPMSM FRDM board.  

 

One other change that is noteworthy is I have changed the 10MHz XTAL to a 8MHz MEMs OSC though I have updated the clock settings and from what I can tell this is working fine.

 

Project Setup:

Compiler = IAR

Project = frdmkv10f/pmsm_ref_sol

 

What has been verified:

FRDM KV11

1) I have successfully used the frdmkv10F project with the FRDM KV11 Eval + MC-LVPMSM boars to successfully tune and drive my motor.

   a) IAR Project 'General Options' Device = NXP MKV11Z64xxx7

CUSTOM PCB with Same Project:

1) I can successfully connect/program & debug the KV11 on my custom PCB with a Segger J-LINK with custom PCB

2) I can successfully establish communication with the Freemaster pmsm_ref_sol.pmp project with custom PCB.

3) Freemaster GUI successfully reads V_DCB and display correct DCB Voltage with custom PCB.

4) Usr SW2 successfully generates Interrupt and starts 'Demo'.  I have SW2 connected to PTB0

5) RED/GREEN LED's turn on when expected RED=PTE24, GRN=PTE25

6) The critical pin assignments for the PWM Channels and ADC inputs are the exact same between the FRDM KV11 and Custom PCB.  You can see the attached spreadsheet with the Pinouts and schematic.

7) Verified the 8MHz MEMs OSC is operational and that I have PWM's being output from the KV11 though the frequency appears rather low for the PWM's at ~8KHz.

8)  I have configured the Clock Settings to make use of an External Reference Clock as shown below...

const osc_config_t oscConfig = {.freq = BOARD_XTAL0_CLK_HZ,
.capLoad = 0,
.workMode = kOSC_ModeExt,
.oscerConfig = {
.enableMode = kOSC_ErClkEnable,
#if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER)
.erclkDiv = 0U,
#endif
}};

9) Set the BOARD_XTAL0_CLK_Hz = 8000000 // Set to 8MHz for MEMs OSC

10) I can measure ADC Midpoint Ref = 1.65 and other Testpoints all are within expected levels when not trying to drive the motor.

 

WHAT IS HAPPENING:

1) When I try to start the motor from the FMSTR GUI very quickly the DCB drops to a very low voltage and I_DCB Fault occurs in which I see large spikes on the I_DCB line.  If repeated attempts are made the Dual N-FET on the Phase A line dramatically fails in a poof of smoke.

2) I still somewhat believe that this is all related to a clocking issue since I am using an 8MHz MEMs oscillator vs. a 10MHz XTAL but I have changed all the clock settings that appear to be needed to be changed?  Maybe there is something I am missing here...?

3) Another possible scenario though seems unlikely is that there is some sort of pin map issue.  I don't believe this is the case though as all my PWM & ADC inputs are the exact same GPIO/PORTx definititions that are used on the FRDM KV11 which uses a 64pin QFP vs. a 32pin QFN on my custom PCB but the PORTx assignments are all the same...

4)  Outside of those items the only thing I am left with is something that I have completely overlooked in the Schematic that is not wired/connected as expected that maybe a 2nd set of eyes can uncover...

 

I can provide a schematic but I am not allowed to post it publicly to the forum...

 

Any insight or suggestions to verify, test, debug would be greatly appreciated as I have already fried 2 PCB's and only built up 6 on this initial prototype build.

 

Regards,

Frank

Outcomes