Other Parts Discussed in Thread: BQ25120A, , DRV2605
I am getting an error when running the auto-calibration routine with this ERM:
https://www.vybronics.com/erm-cylindrical-vibration-motors/v-z30l4b8790008l
The DRV2625 is powered by a 3V power rail, obtained from the LDO on a BQ25120A.
This is a snippet of the code I'm running on initialization. It uses a driver I found for the BOOSTXL-DRV2625 on this thread: e2e.ti.com/.../where-is-boostxl-drv2625-demo-code
// configure the trigger pin so we can use the GO function (over I2C) DRV262x_setTrigPin(DRV262x_trigPin_interrupt); // read status flags just to clear them DRV262x_getReg(DRV262x_reg_status, &(statusReg.r)); // configure actuator and trigger auto-calibration DRV262x_setMode(DRV262x_mode_autocal); // set driver in ERM, open-loop mode DRV262x_Ctrl2Reg_t ctrl2Reg; DRV262x_getReg(DRV262x_reg_ctrl2, &(ctrl2Reg.r)); //ctrl2Reg.b.bOLnCL = 1; // calibrate in open-loop ctrl2Reg.b.bLRAnERM = DRV262x_actuator_ERM; DRV262x_setReg(DRV262x_reg_ctrl2, ctrl2Reg.r); DRV262x_Ctrl6Reg_t ctrl6Reg; DRV262x_getReg(DRV262x_reg_ctrl6, &(ctrl6Reg.r)); ctrl6Reg.b.bAutoCalTime = 2; // set auto-cal time to 1s DRV262x_setReg(DRV262x_reg_ctrl6, ctrl6Reg.r); DRV262x_RatedVoltageReg_t ratedVoltage; DRV262x_OverdriveVoltageReg_t overdriveClampVoltage; ratedVoltage.r = 0x89;//0x80, // 2.8V overdriveClampVoltage.r = 0xBC;//0x8B, // 3V DRV262x_setReg(DRV262x_reg_ratedVoltage, ratedVoltage.r); DRV262x_setReg(DRV262x_reg_overdriveVoltage, overdriveClampVoltage.r); DRV262x_blockUntilGoIsCleared(); DRV262x_go(); DRV262x_blockUntilGoIsCleared(); // read status flags to check auto-calibration result DRV262x_getReg(DRV262x_reg_status, &(statusReg.r)); LOG_INF("status: %x", statusReg.r); if (statusReg.b.bDiagResult) //DRV262x_loadActuatorConfig(&DRV262x_actuator_VZ30L4B8790008L); //if (DRV262x_runAutoCalibration()) { // auto-calibration failed LOG_ERR("haptic driver auto-calibration failed");
The procedure always ends with the flag DIAG_RESULT set.
What steps can I take to understand what exactly is the problem? Is it a compatibility issue with the actuator I'm using? I tested the board for shorts and it'd fine. The actuator actually spins and vibrates as expected.
Thank you,
Rafael