This part is for members
Membership opens soon. Leave your email and we'll tell you the day it does. Founding members get the launch price.
Keep watching the free partsFour gates 3: calibrate, then open
Gates 1 and 2 are open by 512.25 ms, but the current loop still waits for gate 3, calibration, and calibration waits for the host to enable. At 1000 ms the controller goes to ENABLE, and PosSpeedLoopCtrl calls CurrentCalibrationStep once per tick: the first call only asks for 0 V and turns the outputs on (1000.05 ms); after that each tick samples all three phases, and after 1024 samples a 10-bit shift gives the zero points 32791, 32751 and 32772 (like zeroing a scale before weighing). Gate 3 opens at 1102.45 ms, and a few lines later in the same tick so does gate 4, hw_ready_state, which AppRun has been waiting for while holding PP in READY. At 1102.5 ms CurrentLoopCtrl runs for the first time (the 11810th interrupt), outputs 0 V at compare value 3300, and the two turns finish at 1444 ms. Pitfall: Y01's DRIVER_PWM_READY_TIME is 0, so “PWM ready” is true every tick; hw_ready_state really means “calibrated” and stays 1 after a disable (shown in a real run). All from real runs of the board build.