Go Down

Topic: 64 I/O Expander Shield for max 1024 I/O (Read 23339 times) previous topic - next topic

leen15

Feb 21, 2015, 08:45 pm Last Edit: Feb 21, 2015, 08:50 pm by leen15
Hi to all, for my home automation project i would like to use lots of MCP23017 expander for increase digital I/O pins of arduino (in my case Yun).
As i wrote in this discussion http://forum.arduino.cc/index.php?topic=301266.0 i bought a centipede shield clone (only one available in europe) but, as you can read in topic pcb was wrong because chip3 had the same address of chip0.
So now, i would like to build a new shield (only for digital I/O, no Analog I/O) that can be like for some things better than this bad copy and (i hope) a little better than centipede (http://macetech.com/store/index.php?main_page=product_info&cPath=4&products_id=23), that can be use it only until 128 I/O (2 boards).

With this new shield, you can use until 16 boards, for a total of 1024 I/O !  :smiley-twist:

With the big big help of "ShapeShifter", this is where we are until now.  :P


There is three things that i would like to say:
- First one, components are fit for don't stay above RJ45 and USB of Arduino Yun
- Pin out schema of every MCP23017 has VCC and GND at bottom
- I would like to use SMD only for MCP23017 and 74*85, because i want that solder components will be easy

Nothing to say more, if not that I accept every type of comment, suggestion or criticism (only if for improve).
I'm not an expert! I think that there is always to learn, from everyone, so i hope that many of you can help me to build a shield that, first of all, will work!  :smiley-yell:

leen15

#1
Feb 23, 2015, 08:47 am Last Edit: Feb 23, 2015, 08:48 am by leen15
Topic read 50 times, nobody answers.. maybe i wrong the section?  :smiley-confuse:

ShapeShifter

Curious... I figured it would get good exposure here.  :smiley-neutral:

leen15

Me too...  :smiley-roll:

so.. Do we consider the schematic as right?  :smiley-razz:

I'll try to build the layout..

CrossRoads

I think you may have trouble getting the board routed with that placement - you  have a lot of signals to drop from the chips down to the connectors. You may have to lengthen the board left-to-right to make room.  Or try rotating the chips 90 degrees.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

leen15

#5
Feb 23, 2015, 03:44 pm Last Edit: Feb 23, 2015, 03:56 pm by leen15
Thanks for your suggestion, i'll give it a try!  ;)

Some comments about schematic?

CrossRoads

I don't see anything needing changes.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

leen15


ShapeShifter

I think you may have trouble getting the board routed with that placement - you  have a lot of signals to drop from the chips down to the connectors.
Yes, it's tight, but I think it can be done. I've just done up a quick proof of concept, and I think it will work. See the attached.

I was originally having trouble with the capacitor, so I moved it. Then I ran into an impasse where the control bus signals couldn't be routed through the data lines because there were already top and bottom traces.

So I spun the chips 180 degrees, and the connectors 180 degrees. The data lines fit, and don't interfere with the control bus. I now see there is room for the bypass cap in the original place, but I didn't bother updating the drawing.

It will take some care, but I think it will fit.

I don't see anything needing changes.
I've made all my comments in that other thread, so I have nothing further.

leen15

Yes, it's tight, but I think it can be done. I've just done up a quick proof of concept, and I think it will work. See the attached.

I was originally having trouble with the capacitor, so I moved it. Then I ran into an impasse where the control bus signals couldn't be routed through the data lines because there were already top and bottom traces.

So I spun the chips 180 degrees, and the connectors 180 degrees. The data lines fit, and don't interfere with the control bus. I now see there is room for the bypass cap in the original place, but I didn't bother updating the drawing.

It will take some care, but I think it will fit.
I've made all my comments in that other thread, so I have nothing further.
Can you tell me widths of wire and via that you use?  :)

leen15

This is what I've done until now.
I didn't use autoroute, i prefered to do it manually. 

The problem is that DRC tells me that i've too little space between wires, too little width of wires and too little drill size.  :smiley-cry:

Some help?

What is the min size of wires and vias for no DRC errors?

ShapeShifter

10 mil (0.010 inch) traces on 25 mil (0.025 inch) centers with 13 mil (0.013 inch ) vias. (I'll leave it to you to figure the metric equivalents.)

Well within the abilities of a board house like OSHpark without hitting the limits (except for vias which are right at the limit - I prefer vias a little bigger at 20 mil, but they take up more room and don't fit between 25 mil trace spacing.)

You will, of course, need to use minimum sizes that correlate to your board house's abilities, but there is at least one house out there that can handle it.

This is what I've done until now.
A good start! I like how you used the heavy traces for power. But you need to keep them heavy between the connectors as well. Also, use heavier traces to power the chips, especially between the bypass caps and the chips. It's going to be tough to get power and ground to the connector power pins, because those parallel top and bottom traces act as impenetrable barriers (unless you go to four layers and add power and ground planes.) it would be better to put the power pins on the other end of the connectors, that way you can run a heavy bus right down the row.

Sometimes, you can't do the perfect pin ordering on connectors, and sometimes you could but it's not worth the effort. If you put the power pins on the opposite end, it may not line up directly with a relay board: bit 0 goes to 7, 1 to 6, 2 to 5, and so on. Not ideal, but you can work around that in software with a pin translation lookup table. (Or just put stickers on the relay board with the correct logical PIN number!)

Another thing to watch out for are "acid traps" which is where a trace intersection forms a tight acute angle. Take a look at how the SCL trace leaves the header pad. It forms a tight narrow corner that can trap acid during the etching process and eat away too much of the trace (or something like that, I don't know the details, just that it's a bad idea.) compare it to the SDA trace, and toy can see where that little bit of vertical offset has it leaving the pad almost perpendicularly. Oval pads can make soldering easier, especially on long leads, but I prefer round or octagonal pads because you don't have to worry about departure angle so much.

Quote
I didn't use autoroute, i prefered to do it manually.  
Autoroute is horrible, you are wise to stay away from it. I clicked it once to see what it would do with a simple layout, and it was really ugly. I'm sure it won't handle this board, it would just lay out a bunch of meandering random traces, and then give up, leaving you no room to do the rest.

Besides, I like manually routing: I find it relaxing and a fun puzzle to solve.

Quote
The problem is that DRC tells me that i've too little space between wires, too little width of wires and too little drill size.  :smiley-cry:
Are you using the default DRC rules? The minimum sizes and spaces they use are pretty big. You need to choose the board house that will make the boards, and get the minimum parameters from them. Things like minimum trace width, trace spacing, via sizes, clearances, etc. Many board houses will have Eagle rules files you can download and load directly, others you will have to enter manually (and if that's the case, make sure to save then to a settings file for later use.)

Quote
What is the min size of wires and vias for no DRC errors?
It depends. The better the board house and the processes they use, the finer work they can do, and the smaller values you can use. Go cheap, and their limits will often be bigger. If you plan on etching the board yourself, then you probably want to increase the size of the default limits. (This board is complex enough that I don't think home etching is going to be practical.)

This is already too much typing to do on a tablet. I'll take another look at this when I get to my computer and see if I see anything else.

CrossRoads

I use the DRC and CAM files from iteadstudio.
Signal traces: 10 mil wide, 10 mil clearance, 12 mil drills.
Set the routing grid to 2 or 1 mil.
I have no issues with the Eagle autorouter in general. It does a decent job, and if it's struggling that's  a good sign your placement needs work. You'll have to go thru and clean up right angles and do some trace placement adjusting to get some of the grounds connected sometimes.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

CrossRoads

Select Edit:Net Classes to define the signal widths.
You could set Default as noted:  10 mil wide, 10 mil clearance, 12 mil drills
And then add Power with the width you used, 10 mil clearance, and width +2 or +4 for drills.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

CrossRoads

Could also go SMD for the other caps, the resistors, the diode, and use DPAK regulator package. Select one with IN-GND-OUT for leads so the tab can be soldered to the ground plane for cooling.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up