I've been looking into something like this for a while as well. One thing that caught my eye was this pin converter shield for the UNO/Leo to go between the old pinout and 1.0
Something like this could be implemented with logic converters between the connection points. This could also leads in some other interesting directions as well:
Being able to select/designate individual pins as 5v or 3.3v logic
Integrating dynamic pin assignment so the pinout could be adaptable to older shields configurations
And if you really wanted to get crazy, you could even wire the whole thing up to be driven by an integrated IC so you just add a library to your sketch and assign the pinout and voltage in software.
And since I've already gone way out in left field, to complete the prefect conversion shield, add either an IC to linearly scale the analog inputs or a separate 5v 12 or 16 bit ADC
EDIT: Just read the post about the GTL2000 and it got me thinking there has got to be a chip that could route pins and shift logic levels... Yup.
Being able to select/designate individual pins as 5v or 3.3v logic
Needs a lot of hardware, in banks of 4, 6, or 8 not so bad.
A crosspoint switch would be one way to go, you'd need a lot for them and last I looked they were not cheap. Also I don't think they level shift but at least they should pass the analog.
As for the analog you can get programmable gain chips or just make your own with opamps.
Either way you need more IO to control this lot, so add 1 or 2 I2C IO expander chips with jumpers to set the address so they don't clash with any shields.
In general I like the basic concept but it could very quickly turn into a cluster f*ck with 30 chips that cost 2x the Due and the shield you want to use.
Crossroads (aka derekmjenkins!?), you've obviously made a start, any thoughts on doing something?
Are there many mega shields?
I don't think so, I'd drop the extra stuff and just go for a standard shield.
EDIT: I just looked at the price for that CD22M3494 crosspoint switch, it's not too bad but still too much for this I think.
I was thinking just TXB0108s or maybe a couple of GTL2000 for the bank of 18 header pins.
Bring the analog straight over, with TXB0108 in parallel, maybe a jumper to enable the OE/ when digital was required.
Or couple TXB0104s so analog/digital could be split up some.
Really stinks not being able to log in during the day except occasionally due to system conflicts or something.
Being able to select/designate individual pins as 5v or 3.3v logic
Needs a lot of hardware, in banks of 4, 6, or 8 not so bad.
A crosspoint switch would be one way to go, you'd need a lot for them and last I looked they were not cheap. Also I don't think they level shift but at least they should pass the analog.
As for the analog you can get programmable gain chips or just make your own with opamps.
Either way you need more IO to control this lot, so add 1 or 2 I2C IO expander chips with jumpers to set the address so they don't clash with any shields.
In general I like the basic concept but it could very quickly turn into a cluster f*ck with 30 chips that cost 2x the Due and the shield you want to use.
Crossroads (aka derekmjenkins!?), you've obviously made a start, any thoughts on doing something?
Are there many mega shields?
I don't think so, I'd drop the extra stuff and just go for a standard shield.
EDIT: I just looked at the price for that CD22M3494 crosspoint switch, it's not too bad but still too much for this I think.
Use something like this after a crosspoint switch and before exiting the shield. That way, each pin's output voltage can be selected and each pin can by dynamically assigned. Also, why do you think this would be too expensive? Mouser has the level shifter I just mentioned at $2 and the crosspoint at $4 or 6. Plus other parts and custom fab, you could almost surely get away under $20.
EDIT: Just thinking, you would just need the crosspoint for the pins that need to be moved like SCL and SDA, then just use a couple more of the level shifters I mentioned for the rest of the I/O. That way, the pins that might need to be moved can be, while all the pins can still be selected to be either 5v or 3.3v.
Here is what I'm thinking. This first drawing is a rough schematic for just the crosspoint section of pins. Other pins could be added to these and all the rest of the pins would need to be passed through 74LVC16245's as well.
Red trace is on bottom
Blue is on top
Black is on bottom (5v, 3.3v, gnd)
To answer you question about the pins, Mayhew Labs came up with a pretty nice solution.
Here's the schematic & layout, please create a version with the parts you are suggesting.
Top & bottom mount surface mount headers would be one way to keep the physical board the same size, as long as its cut back from the USB header.
I've been looking into something like this for a while as well. One thing that caught my eye was this pin converter shield for the UNO/Leo to go between the old pinout and 1.0
Something like this could be implemented with logic converters between the connection points. This could also leads in some other interesting directions as well:
Being able to select/designate individual pins as 5v or 3.3v logic
Integrating dynamic pin assignment so the pinout could be adaptable to older shields configurations
And if you really wanted to get crazy, you could even wire the whole thing up to be driven by an integrated IC so you just add a library to your sketch and assign the pinout and voltage in software.
And since I've already gone way out in left field, to complete the prefect conversion shield, add either an IC to linearly scale the analog inputs or a separate 5v 12 or 16 bit ADC
EDIT: Just read the post about the GTL2000 and it got me thinking there has got to be a chip that could route pins and shift logic levels... Yup.
Ok so here's the diagram of the circuit as I see it. Let me know what you guys think
Circuit for pins who's position might need to be changed
And here is for the other pins who's position is fixed
For both the CD22M3494 (crosspoint) and the SN74LVC16T245 (logic shifter) I think the buses can be 16 bit wide. As for going with the SN74LVC16T245 over the TXB0108, the advantage I see is that with the SN74LVC16T245, you can select each pin's output so some pins could interface with 5v logic, while others with devices at 3.3v. Might as well keep the shield dynamic as we can, especially if things really are moving towards 3.3v logic. Just my two cents, what's your guys reaction?
CrossRoads:
Here's the schematic & layout, please create a version with the parts you are suggesting.
Top & bottom mount surface mount headers would be one way to keep the physical board the same size, as long as its cut back from the USB header.
I tried the TXB0108 and finally gave up.
The blue boxes in the attached picture contain 3 pcs pf TXB0108.
I made the beta board and tested it.
While I test the TXB0108 5V output with voltmeter, the voltage is 3V.
However, I test it with oscilloscope, the output is 5V. I touch the wire or chip with my finger, the voltage became unstable.
Well, I think, the TXB0108 is easy to go into self-excited oscillation process. And the load capacity is small. If I connect other devices to it through long cables, such as a digital sensor, the output may have problem. However, if I intert the sensor in the header of the beta DUE board directly, it works fine.
I tried many time but still didn't success.
Not sure if the TXB0108 performs not good enough.
Graynomad:
I can't see where the data sheet says this is possible, apart from two OE and two DIR pins there are no control signals.
Rob
Hey Rob,
Guess I had an optimistic read on that datasheet, you are right. Here is my solution.
With the setup, each pin can be selected as 3.3v or 5v through the MUX, then routed through the logic shifter if it is 5v. After that, the crosspoint handles the pin reassignment if needed. How about this? We getting close?
I assume that all the data busses are 8 bits. I don't get how the Logic shifter has bi-directional signals. What's on the 3v3 side?
TBH I'm treating this as an academic exercise because it's interesting, personally I really can't see much use for such a complex shield but I'm happy to help with a design if you do.
Graynomad:
Maybe there is a market after all, I always was 180 degrees out of phase with the consumer
Dan, my last question? How does the logic shifting circuit have bi-directional IO?
Rob
I would say if there is a market for the Due - then there is a market for this shield. To choose the Due over the raspberry pi the main feature is the general purpose IO and the existing shields. But to use either of these such a board is extremely useful.
Not only would a significant percentage of Due purchasers want such a shield- there would also be a market of people who current do NOT choose a Due to to shield incompatibility!