Skip to content
/ dSMD Public

dSMD - dSpin Stepper Motor Driver, a triple axis stepper motor driver board based on the L6470 chip.

Notifications You must be signed in to change notification settings

pinski1/dSMD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

#dSMD# #####dSpin Stepper Motor Driver#####

This is a triple axis stepper motor driver board based on the L6470 chip.

The L6470 is a very advanced stepper motor driver chip. It can be controlled accurately though an SPI interface. Through this interface acceleration, deceleration, maximum speed and minimum speed can be programmed in. This then allows the user to simply command the chip to move the motor in a specific direction by 'n' number of steps. Alternatively a target speed or a target position may be set. The aim is to reduce the overhead on the host processor for motion control.

This board puts 3 of these fantastic chips together on a single PCB. This should be ideal for a CNC or 3D printer with steppers requiring up to 3 Amps each.

Please note:

  • That should you require a fourth or fifth stepper, say for an extruder/s then this will require a separate board.
  • This board has yet to be prototyped so I cannot offer any guarantees of it working.

More information on the L6470 can be found here.

##The Board## In addition to the 3 stepper motor drivers the board also contains connections for attaching a power supply, 6 limit switches which are also connected to a 10 way IDC header, a 16 way IDC header for connecting to your host processor of choice.

###Dimensions### The board size is 100mm by 62mm and is compatible with the Sick of Beige board size specification.

Due to the heat that can be generated by the 3 L6470 ICs it is not recommended to mount a plastic cover without adequate cooling. It is however recommended to use the board either mounted or with standoffs.

###Power Supply Input### * Motor supply: +8 to +45V at a maximum of 9A * The voltage compensation is set for a motor supply of +13V. * Logic supply: +5V at a maximum of 0.2A

Power can be supplied either via screw terminals or a PC PSU molex connector.

###Endstops Pinout####

Pin Func Pin Pin Pin Func
GND 1 2 +5V
min_x 3 4 max_x
min_y 5 6 max_y
min_z 7 8 max_z
GND 9 10 +5V

The "min_" and "max_" signals are active high signals with 10k pull-down resistors. Note these signals can be monitored by reading the "SW_F" bit in the "STATUS" register of each L6470. The L6470 is set by default to cause a "HARD_STOP" interrupt which stops all movement if the pin SW goes low.

###Control Pinout####

Pin Func Pin Pin Pin Func
GND 1 2 +5V
/flag_x 3 4 SCK
/flag_y 5 6 MISO
/flag_z 7 8 MOSI
step_x 9 10 /cs_x
step_y 11 12 /cs_y
step_z 13 14 /cs_z
GND 15 16 +5V
  • The "/flag_*" signals are active low outputs with a 10k pull-up. This signal will only activate if the bit for the condition is set in the "ALARM_EN" register of the L6470. If this signal does go low then it is recommended to read the "STATUS" register for more information.
  • The "step_*" signals are active high inputs. The maximum step frequency that the L6470 will recognise is 2MHz. When the L6470 is sent hte "StepClock" command with a direction of rotation then with every rising edge on step the L6470 will move one microstep in that direction.
  • The current revision of the board has 3 seperate "/cs_*" active low inputs for selecting individual L6470s. Future revisions will daisy chain the L6470s to reduce GPIO count.

##Firmware## This is difficult as it can vary between architectures (AVR, PIC & ARM) as well as between IDEs (MPLab, Arduino, AVR Studio etc). I shall try to add links & relevant bits of code as this project progresses.

Notes:

  • The "/cs_*" line must be raised after every byte.
  • If you are expecting a response you should send a dummy byte (0x00 or 0xFF).
  • The L6470 requires both power supply rails, +12V and +5V to operate.

###Debugging###

  1. Disconnect everything.
  2. Connect the motor and logic supplies. LED1 should light if there is a voltage on the logic supply. LED2 should light if there is a voltage on the motor supply.
  3. Use a multi-meter to confirm the voltages are within acceptable ranges. See the power supply section above.
  4. Connect the host processor and attempt to get it to read the status register.

##Licence## Creative Commons License
dSMD is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License</a.>

This project is an Open Source Hardware Project.

About

dSMD - dSpin Stepper Motor Driver, a triple axis stepper motor driver board based on the L6470 chip.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published