L6470 - Dspin

Alot of cool information about the L6470 Dspin Stepper Motor Driver.


think i will be breaking out a new eagle project when i get home tonight. :slight_smile:

Thats pretty wizzy…

Having played with this chip it’s really striking how they gloss over the back emf compensation configuration. Sure, they have an app that can calculate the values, but even they atmitted to me that the values generated by their app is only a starting point, and you need to use an oscilloscope to tune the values.

That was the end of my L6470 Gadgeteer module.

Made a new module with L6472, which is only 16 micro steps, but it is current control and easier to set up. Have yet to write the driver…

@ GMod(Errol) - bet you will sell a few of those :wink:

“Only 16” microsteps is still plenty. Microstepping is often useful, but it’s not perfect.


So here’s the thing. Can that BEMF calculation be done with Analog Circuitry as opposed to using an oscilloscope?

Not easily. You need to measure high frequency current in the motor while running the motor from 0 to the maximum speed. You need to verify that the high frequency AC current stays constant. If the current goes down when the speed goes up then you need to increase the BEMF values in the registers as the BEMF compensation is under compensating and the motor is loosing power. If the current goes higher with speed then the BEMF compensation is over compensating and can damage the motor.

I suppose one can make a “motor tune module” that wires in between the motor and the driver and it measures the current and gives you feedback. But that will add a lot of expense…

[quote=“godefroi”]“Only 16” microsteps is still plenty. Microstepping is often useful, but it’s not perfect.

Yep, but as that article states, fine microstepping does help smoothness, even if it doesn’t increase accuracy.

ive read the data sheets for the L6470, L6472 and L6480.

The 72 version is current control with 16 micro steps, the control is done via steps and direction through digital io as you would expect most existing stepper controllers are. this is the standard way for a interface unit to send commands to a stepper driver.

however the 70 version has a motion control core included which enables the user to send position or speed commands via spi to the stepper controller vastly simplifying control aspects. the 80 version is the same as the 70 with the exception that the motor driver MOSFETS are offchip where in the 70 they are built in. these two version do not use current control but voltage with this bemf system. both are capable of 128 microsteps whic yes as stated by others is kinda useless for position control but will give a smoother response for speed control.

for me the thing that would make me try using the 70 version is the motion engine, it looks pretty powerful and definetly worth a look, as the droop from bemf not being perfect would only be a problem if running a drive on the edge of its capabilities say nema 34 ramped fully up i think this chip would have no problem controlling nema 23 and below very well with little thought given to back emf issues.

shame st dont ake a 70 version with current controll and the motion engine now that would be awsome. That being said, ive been looking to start a new project and this is right up my alley so i have stated to design a module to take the LC6470chip and i`ll see how it works out.

Think you got confused. :slight_smile: It has happened to me before. The L6472 has a motion engine and current control. See L6472 - Fully integrated microstepping motor driver with motion engine and SPI - STMicroelectronics

1 Like

@ Errol, so then we have to find a way to measure high frequency current over time to determine if it is compensating correctly Is this the design objective?

argghh pap,

just looked and you know what i have done… somehow printed off the lc6474 manual instead of the lc6472 manual grrrr lol.

ahha current control + the motion engine = win yep the 72 is the the ic i wanted, shame i didnt read the right datasheet last night.

To me, the 6472 seems like the perfect blend of ease-of-implementation and capabilities.

Pretty much, yes… :slight_smile:

@ Errol, So I asked a question on electronics stack exchange ([url]arduino - Measuring high frequency current with Adrunio - Electrical Engineering Stack Exchange) and they said, which I understand, to use a current sensing device ([url]https://www.sparkfun.com/products/8883[/url]) then measure the values with an ADC.

Yep, plus something to measure fast enough with an ADC, and to display, or give feedback somehow. And C# will not be fast enough to do the ADC readings unless you go to RLP.

All the bits are small/cheap, but if you take a current sensor + cpu + display + pcb + code then you get to something that costs $40 to $100, which noone will want to pay…

I may look at something like this, but I have higher priorities at the moment…

@ Error, Nope no display. The uM will be doing the caculations and adjusting the dSpin Automatically. the result will be output in the debug console if you’re listening.

I now have access to a scope and a 16 bit spi based ADC. I’m using a current sense IC to turn the current into voltage which is proportional to the current. If I smooth this voltage with decoupling capacitors then I should be able to register a voltage change over time. If I speed the motor up slowly sampling the voltage at each interval I should be able to see if the current to the motor is increasing or decreasing with the speed.

I know this thread is old, but I’ve spend a long time thinking about how this could be done :slight_smile: