Making a PCB

A friend of mine was going to order PCBs pretty soon anyway, so I decided I could just as well whip up a little something to use as a starting point. I decided to take a 2-sided PCB of 5x5cm and fill it with what are basically 1-winding elongated coils. You can actually get a perfectly fine magnetic field by just taking a single wire, but with a loop, the magnetic field is more well-defined, at least that's what I seemed to remember from high school. The coils run horizontally on the front of the PCB and vertically on the back, the idea being that by driving both a horizontal and a vertical coil, I would be able to position a magnet on the intersection of the two. I managed to put 80 coils on the small board, 40 horizontally and 40 vertically.

As the drivers for the coils, I decided on using TC62D748CFNAGs. These basically are 16-bit shift registers with current-controlled outputs. They're meant to drive LEDs, but with their max output of 90mA, I figured they would be a nice first step for the coils too. These ICs only can sink current, however, so in this config the coils can only attract the magnets. The shift registers have their Sin and Souts cascaded, so they look like a big 80-bit shift register. I use an FT232-board in bit-bang mode to drive it all.

SO, I built a board. You have to admit, it looks pretty nice with the tiny ICs and the lines running over the active surface:

Unfortunately, nice as it might look, the drivers weren't really able to move even the smallest magnet. Time to add some more power! The easiest way to do that is by the tested-and-tried method of stacking chips. Each chip adds 90mA to the output current, and with a bit of out-of-spec fiddling even more.

Unfortunately, even with about half an amp running through the coils, the tiny magnet wouldn't budge. Was my design faulty? It didn't look like it: if I powered the coils manually through my lab PSU, the magnet would happily jump around:

With that in mind, there was an obvious solution to this problem.

« Prev 2 Next »

© 2006-2016 Sprite_tm - Contact