Skip to main content
Updated choke to correct footprint
Source Link
dhst
  • 163
  • 5

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom

duostepper_RevC_top

duostepper_RevC_bottom

UPDATE 2017-04-15:

I updated the power input section of the schematic with a beefier capacitor, additional 100nF-capacitors and a ferrite bead. I changed the motor-capacitors to 220µF as well.

RevD_new_power_input

In the layout, I implemented it like this: duostepper_RevD_allduostepper_RevD_all duostepper_RevD_topduostepper_RevD_top duostepper_RevD_bottomduostepper_RevD_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom

duostepper_RevC_top

duostepper_RevC_bottom

UPDATE 2017-04-15:

I updated the power input section of the schematic with a beefier capacitor, additional 100nF-capacitors and a ferrite bead. I changed the motor-capacitors to 220µF as well.

RevD_new_power_input

In the layout, I implemented it like this: duostepper_RevD_all duostepper_RevD_top duostepper_RevD_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom

duostepper_RevC_top

duostepper_RevC_bottom

UPDATE 2017-04-15:

I updated the power input section of the schematic with a beefier capacitor, additional 100nF-capacitors and a ferrite bead. I changed the motor-capacitors to 220µF as well.

RevD_new_power_input

In the layout, I implemented it like this: duostepper_RevD_all duostepper_RevD_top duostepper_RevD_bottom

Added RevD of the circuit.
Source Link
dhst
  • 163
  • 5

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematicduostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottomduostepper_RevC_topbottom   

duostepper_RevC_topduostepper_RevC_top   

duostepper_RevC_bottomduostepper_RevC_bottom

UPDATE 2017-04-15:

I updated the power input section of the schematic with a beefier capacitor, additional 100nF-capacitors and a ferrite bead. I changed the motor-capacitors to 220µF as well.

RevD_new_power_input

In the layout, I implemented it like this: duostepper_RevD_all duostepper_RevD_top duostepper_RevD_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom  duostepper_RevC_top  duostepper_RevC_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom 

duostepper_RevC_top 

duostepper_RevC_bottom

UPDATE 2017-04-15:

I updated the power input section of the schematic with a beefier capacitor, additional 100nF-capacitors and a ferrite bead. I changed the motor-capacitors to 220µF as well.

RevD_new_power_input

In the layout, I implemented it like this: duostepper_RevD_all duostepper_RevD_top duostepper_RevD_bottom

Typo: 0.5mA instead of 0.5A
Source Link
dhst
  • 163
  • 5

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5mA5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom duostepper_RevC_top duostepper_RevC_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5mA at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom duostepper_RevC_top duostepper_RevC_bottom

For a while now I'm working on a project where I want to control 48 stepper motors.

A pair of two motors is controlled by an Atmega8. All modules are connected as slaves on an I2C/TWI-bus with an Arduino acting as the master device.

A while ago I already posted a question about power supply issues and got many useful comments regarding ground loops, capacitors and PCB design. The main issue that the Atmega8s are not working properly anymore when I run more than 5 of the motor-control-modules simultaneously.

I've tried to implement most of the suggestions, but still have some questions for possible improvements:

  • Are the large capacitors at the VCC-input as well as next to the motors placed properly?
  • Is the layout of the "power-plane" designed properly?
  • Is the decoupling of the analogue ground any good?

One module with both steppers running takes up roughly 0.5A at the same time. My power supply should be capably of running all modules at the same time. I'm running a star-topography with thick wires between all modules.

Okay, so here is what the whole thing looks like (I2C-bus/resistors not displayed to keep it simple): system overview

The circuit for each of the modules (0X10 etc.) is looking like this. Some notes about the different sections:

  • The two motors on the bottom right are connected to the ports PB and PD via darlington arrays
  • Connected to PC1/PC2 on the top right are two optical sensors for homing the stepper motors
  • PRG on the bottom is the programming port for the Atmega8

duostepper_RevC_schematic

The PCB design (40 x 60 mm) I plan to order looks like this. This is not implemented, yet! duostepper_RevC_topbottom duostepper_RevC_top duostepper_RevC_bottom

Clarified, that the PCB in the pictures is currently only a design and has not yet been produced.
Source Link
dhst
  • 163
  • 5
Loading
replaced http://electronics.stackexchange.com/ with https://electronics.stackexchange.com/
Source Link
Loading
Source Link
dhst
  • 163
  • 5
Loading