2021-04-05 10:22 PM
My powerStep01 is constantly triggering the Overcurrent alarm whenever I give a movement command, even if there is no stepper connected. What could possibly be causing this? Previously I was getting a similar effect on the L6470 chip. When I turned off the overcurrent shutdown feature the chip fried and apparently took out GPIO25 of the Raspberry Pi that was command it. In both cases, the motors never moved.
Solved! Go to Solution.
2021-04-16 02:58 AM
Hi @Kurtnelle , finally I did the tests !
Here a step by step sequence that you can try.
I think its only a matter of providing the supply voltages and sending the right SPI commands.
So, you can use any control hardware you want: can be the Raspberry Pi or the NUCLEO F401 board.
First, check the connection between the control board and the IHM03A1; you need:
Here is the operation sequence:
I suggest to try this routine without the motor first and check that no Overcurrent or other error occurs.
If it works, stop the power stage setting it in high impedance, connect your motor and try to run it in the same way.
Consider that I tried the configuration on my motor. Probably yours will move as well, but then you will have to fine tune the configuration according to the target motor and application.
Here is the list registers to be written: the configuration is in current mode, about 0.85A of phase current on IHM03A1.
Addr. 0x05 ACC = 0x15
Addr. 0x06 DEC = 0x15
Addr. 0x07 MAX_SPEED = 0x106
Addr. 0x08 MIN_SPEED = 0x000
Addr. 0x09 TVAL_HOLD = 0x0A
Addr. 0x0A TVAL_RUN = 0x0A
Addr. 0x0B TVAL_ACC = 0x0A
Addr. 0x0C TVAL_DEC = 0x0A
Addr. 0x0E T_FAST = 0x35
Addr. 0x0F TON_MIN = 0x08
Addr. 0x10 TOFF_MIN = 0x29
Addr. 0x13 OCD_TH = 0x08
Addr. 0x15 FS_SPD = 0x3FF
Addr. 0x16 STEP_MODE = 0x0C
Addr. 0x17 ALARM_EN = 0xFF
Addr. 0x18 GATECFG1 = 0xA6
Addr. 0x19 GATECFG2 = 0x20
Addr. 0x1A CONFIG = 0x3F88
2021-04-18 09:39 PM
The red light never goes out.
Clear the status flags sending the command “GetStatus�?. Once is executed, you should see the red LED (D2) turning off. <- It doesn't turn off.
I haven't tried setting any registers beyond that.
2021-04-18 10:00 PM
Also, the status register:
0xE003 : 1110000000000011 <= bit 2 is set! The device is busy?!
(EDIT: Busy is active low. So no the device is not busy.)
2021-04-21 03:55 AM
Yes, looking at the status register I only see that the device has detected an UVLO and and UVLO on the ADC (both bits = 0). Also OCD is active low, so OCD =1 means no overcurrent detected. UVLO and UVLO_ADC are the ones that keep the red LED on.
An UVLO_ADC is detected because the X-NUCLEO-IHM03A1 by default does not have any component mounted on the ADC pin, so the voltage on it is around zero. In my board I've already some components on ADC, I forgot to specify it :grinning_face_with_sweat: .
I see two possibilities:
The other bit UVLO is referred to Vs: at the start up there is always a detection because the voltage supply is ramping-up
All these bits are latched, meaning that even if the UVLO condition is gone, the bits stay in the error condition until a "GetStatus�? command is sent.
I expect that if 18V are applied on Vs and you send a "GetStatus�? , the UVLO bit becomes 1 (error released).
2021-04-21 08:34 AM
So then:
2021-04-21 08:41 AM
This is the expected behavior. Let me know if it works.
2021-04-21 10:33 PM
The motor is humming. The configuration works! Turning off the ADC_ULVO is required for the operation of this eval board.