Hello every one,
I am currently working on a BLDC motor control project.
I use chip DRV10975PWPR
My MCU is ESP32
Now I can I2C communicate with DRV10975, write and read into register successfully.
The configuration parameters for EEPROM are also saved successfully, I have increased the supply voltage to 22V to save the parameters to eeprom.
But now I still can not control the motor speed, after sending speed command by I2C, motor only turn 1-2 revolutions then stop, delay about 5-10 seconds then repeat
I think the motor settings are not correct or am I missing some steps ?
This is my schematic
The flow of my code is below
write 0x40 to EECtrl (0x03) register
write 0x39 to param1 (0X20) register
write 0x1E to param2 (0X21) register
write 0x3A to param3 (0X22) register
write 0x08 to sysop1 (0X23) register (ISD enable)
write 0x50 to sysop2 (0X24) register
write 0xDA to sysop3 (0X25) register
write 0xB8 to sysop4 (0X26) register
write 0x10 to sysop5 (0X27) register
write 0x27 to sysop6 (0X28) register
write 0x37 to sysop7 (0X29) register
write 0x04 to sysop8 (0X2A) register
write 0x0E to sysop9 (0X2B) register
write 0xB6 to DEVCtrl (0x02) register
write 0x50 to EECtrl (0x03) register
speed = 200; (max is 0x1FF = 511)
tmp[0] = (uint8_t)(speed >> 8);
tmp[0] &= 0x01;
tmp[0] |= 0x80;
tmp[1] = (uint8_t)(speed);
write tmp[0]to SPEED_CTRL2 (0x01) register
write tmp[1]to SPEED_CTRL1 (0x00) register
This is my datasheet of BLDC
https://www.nidec-copal-electronics.com/e/catalog/micro-blower/tf029b-1000-f.pdf
Please support me if you detect some thing wrong
Best regards
Hiep Le