Part Number: AM263P4-Q1
Other Parts Discussed in Thread: SYSCONFIG
Hello,
I'm trying to integrate the resolver diagnostic example (resolver_diagnostics_am263px-cc_r5fss0-0_nortos) into our application.
1) Our timing budget means we can't afford to execute all the diagnostics in one call of App_checkDiagnostics() so I intend to split up the diag routines and execute in a round robin style. Is each diagnostic type independent? For example, can I execute " Monitor Sin or Cos DC offset drift(DOS)" in a different 10ms slot to " Monitor Sin or Cos Gain drift (DOS)". If so, is the order of execution of the diagnostics also unimportant?
2) In App_diagnosticsISR() the code commented as “ADC health check” calls calibration APIs (e.g. RDC_enableCalibration(gRdcBaseAddr);) repeatedly writing to RESOLVER_REGS_CAL_CFG. The characters CAL_CFG don’t appear anywhere in the TRM so what are the guidelines for calling these APIs? Must calibration be done before each and every diagnostic type? The TRM Programming Sequence for the diagnostics doesn’t mention this step as far as I understand it.
3) In the TRM it mentions “diagnostics checks can be performed using the registers in below Table…which are referred to as IRQ registers”. In your example, the RDC interrupts are not enabled so is it correct the IRQ registers are usually polled and using interrupts are optional?
4) In the TRM for 7.5.3.3.1.1 Monitor Sin or Cos DC offset drift (DOS) it says “RDC needs to be rotating for this diagnostics to work.” However, the example commented “Checking the Sine and Cosine Offset Drift” does not check for motor rotation. Which out of TRM and example is correct please?
5) In the example, RDC_setDiagnostics... is called every ISR for each type of diagnostic. Is this doing the “diagnostics health check”? If so, is it essential to do the health check on every ISR before polling the error flags or is it for demo purposes only? In other words, in a real application I would do the health check just once per operation cycle rather than every ISR, is that correct?
Thank you.