I'm trying to control a customer motor using the approach in AN3206, but I'm having trouble scaling the quantities and setting things up.
I have controlled the setup as a BLDC motor using Hall detectors, so the setup is working, but I can't get past the ALIGN part of the example.
The ADC Vref is set to 2.5V, so below 0V corresponds to 2.5V VREF.
The currents come in with {-3.125A ... 0 ... 3.125A} mapped to {-2.5 ... 0V ... 2.5}
The bus voltage is 24V and is comes in with {0V ... 24V} mapped to {0V ... 2.4V}.
The way I thought this should work is:
- Phase current range in mA: 3125 (3.125A is 7FFFFF);
- DC bus voltage range in mA: 25000 (25.0V is7FFFFF);
- Phase current option should be FS_ETPU_ASAC_PHASE_CURR_USE_AB_CALC_C (I assume the demo board uses 2 shunt resistors?)
- CFIFO update should be FS_ETPU_ASAC_CFIFO_UPDATE_OFF (since I'm calculating C from A and B)
- Sign extension should be turned on in the ADC conversion? It isn't in the example program.
- Negate phase currents should be FS_ETPU_ASAC_PHASE_CURRENTS_POS (example program is NEG).
However, I never get any output during the ALIGN_START ... ALIGN_FINISH steps. The duty cycle is always 50%.
The u_dq D output is a reasonable value, but the u_ab output is always {0, 0}.
Any suggestions on how to debug this or additional info I can give?