Agreement on I/O configuration
QuattroRS4
Posts: 916
Folks,
······ With numerous third party options available and many more in development it would be nice to see
a structure in place whereby 'modules' from one persons offering can be used with various other peoples iterations. If a connection type and I/O configuration can be agreed - I believe it would be of great benefit
for all .... I suppose this refers to module based offerings rather than 'complete' development systems - I know
that Coley and Baggers have tried to maintain as much compatibility between their Hybrid and the Hydra as possible - which is commendable ..
Example for module based offerings
e.g. 10pin·IDC header with VDD,VSS on header pins 1 & 2 and sequential I/O pins·on 3-10 of header .. i.e blocks of 8 I/O's - I was just looking at Ron's PropBus again and quite like the way he divides the I/O's via IDC headers.
Perhaps that way leaves it open for us to concentrate on new modules without having to have·1 specific
propboard ..If a configuration is agreed then we may see more and more useful modules.. Just my musings ..
....·your thoughts ??
Regards,
·········· John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
Post Edited (QuattroRS4) : 3/24/2008 12:36:35 PM GMT
······ With numerous third party options available and many more in development it would be nice to see
a structure in place whereby 'modules' from one persons offering can be used with various other peoples iterations. If a connection type and I/O configuration can be agreed - I believe it would be of great benefit
for all .... I suppose this refers to module based offerings rather than 'complete' development systems - I know
that Coley and Baggers have tried to maintain as much compatibility between their Hybrid and the Hydra as possible - which is commendable ..
Example for module based offerings
e.g. 10pin·IDC header with VDD,VSS on header pins 1 & 2 and sequential I/O pins·on 3-10 of header .. i.e blocks of 8 I/O's - I was just looking at Ron's PropBus again and quite like the way he divides the I/O's via IDC headers.
Perhaps that way leaves it open for us to concentrate on new modules without having to have·1 specific
propboard ..If a configuration is agreed then we may see more and more useful modules.. Just my musings ..
....·your thoughts ??
Regards,
·········· John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
Post Edited (QuattroRS4) : 3/24/2008 12:36:35 PM GMT
Comments
i think this is a good choice
if somebody wants to do something more special he could use a 10wire-cable or an IDC-conector and on the second end
SUB-divide the IO-Lines to his needs
regards
Stefan
Yeah - thats the general idea . ..
Regards,
John
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
James L
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
James L
Partner/Designer
Lil Brother LLC (SMT Assembly Services)
I have had several requests to add a Hydra type expansion slot to SpinStudio, but I have been hesitant to provide one, as this is Andre's design and I didn't want to copy it without permission.
And as far as a standard connector, the SpinStudio connectors each contain 8 IO lines, VDD and VSS, but also 5V and lines for I2C. Since it uses a 20 pin connector, there's room for expansion.
The protocards that I sell have access to those I2c lines, made it really simple to make a plug in real time clock. And simple it's permanently soldered with a back up battery, It keeps time even when it's not plugged in.
Having access to 5 volts is handy as well.
I guess my point is, if a connection type is to be adopted as a standard. It would be a good idea to have all the connections that might be needed, as well as some empty spots for future expansion. That way you can have a connector that can grow and evolve (think forward to Prop2)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio - the modular Development system for the Propeller
PropNIC - Add ethernet ability to your Propeller! PropJoy - Plug in a joystick and play some games!
SD card Adapter - mass storage for the masses Audio/Video adapter add composite video and sound to your Proto Board
I have experimented with ribbon cables with 20 pin IDC connectors on SpinStudio to use as and "extension cable" so I could mount modules remotely. I couldn't find any male IDC connectors, so I had to mount male sockets on the module instead of the usual female socket. But an IDC socket on one end, and bare wires at the other end of the ribbon cable would work as well.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio - the modular Development system for the Propeller
PropNIC - Add ethernet ability to your Propeller! PropJoy - Plug in a joystick and play some games!
SD card Adapter - mass storage for the masses Audio/Video adapter add composite video and sound to your Proto Board
It would be great if there was a 'standard' configuration ... I was hoping that this thread would spark an action to achieve just that . There are some great offerings out there (including yours) ... Once somebody has the heart of their project in place - the Main Prop board - it would be great if they could mix and match modules easily to achieve the desired config.
Perhaps then greater emphasis would be placed on code and future modules rather than a 'from ground up' approach.
Regards,
John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
Those who can, do.Those who can’t, teach.
Post Edited (QuattroRS4) : 2/21/2009 6:07:01 PM GMT
propeller.wikispaces.com
My personal preference would be 20-way IDC, with 0V, D0-D7, 3V3 on the 'front row' so that can also be easily used with 10x1 SIL connectors. P28-P31 to all connectors is useful, as is having 5V, the other 5 could be 'user defined'.
Sounds good .. Perhaps if we get a few more suggestions and hopefully agreement on the proposed configuration .. we can pen a document outlining 'preferred practice' .it is my opinion that by having a standard will lead to more inventive code and a greater proliferation of modules .. or allowing for products that exist already - at least define a standard arrangement for I2C and SPI based modules - agree on a connection type and pinout configuration...
Rgds,
John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
VGA
TV
Keyboard/Mouse
SD
Game Control
Etc
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
There already seems to be some standards emerging, mainly based on the configuration of the Parallax DemoBoard ...
SD on P0-P3
TV on P12-P15
VGA on P16-P23
Mouse on P24-P25
Keyboard on P26-P27
Although the Hydra is entirely different except for VGA.
I'm currently re-wiring all my ProtoBoards ( VGA not needed ) as follows -
Application specific on P0-P15
USB+ on P16
USB- on P17
Serial Tx on P18
Serial Rx on P19
TV on P20-P22
USB Enable / Mono Audio on P23
Mouse on P24-P25
Keyboard on P26-P27
Post Edited (hippy) : 3/25/2008 4:38:24 PM GMT
Briefly, the daughterboard format provides eight signal lines, plus Vdd, Vss, +5V, and (optionally) Vin. For the Propeller, the specified signal lines are A0 .. A7 (or A8 .. A15), mapped to pins A .. H on the DB-Expander.
The physical format for the daughterboards is implicit in this drawing. The Propeller motherboard (MoBoProp) will have the same form factor when it becomes available. (Geez, I've got a lot of projects stacked up!) On this board, A0, A1, A8, and A9 will have analog input capabilities, for compatibility with the MoBoStamp-pe. So any daughterboard that has analog outputs should use these pin pairs.
There are some additional design rules that need to be followed:
1. Keep vertical clearances for parts mounted on the bottom of the board to an absolute minimum. SMD parts are okay, for example, but vertical headers that hang down are not.
2. For boards with components that can't work with both 3.3V and 5V and that have to operate with the MoBoStamp-pe, in addition to the Propeller, do not use Vdd. Use the 5V line instead and regulate down as necessary. Boards designed to work only with the Propeller or whose parts are multi-voltage-capable can use Vdd.
3. For boards whose logic does not use Vdd (as in #2) and which must interoperate with the MoBoStamp-pe, level shifting circuitry may be required on the signal lines.
4. Assume that pins A4 .. A7 (A12 .. A15) are pulled up to Vdd via 4.7K resistors (as they are on the DB-Expander and will be on the MoBoProp).
There's also a prototyping daughterboard available which, when combined with the DB-Expander, provides handy proto capabilities for existing Propeller systems.
Obviously, eight signal lines may be inadequate for some apps, and the 1.35" square daughterboard size could be a bit cramped. But for those apps that do fit, leveraging an existing design can be a Good Thing.
-Phil
Post Edited (Phil Pilgrim (PhiPi)) : 3/25/2008 7:20:18 PM GMT
i have some more ideas:
for a prototyping board universal use would be good.
How about using the IOs like hippy mentioned and add the possability to switch to a general-purpose IDC-connector by jumpers or micro-dip-switches?
another idea: make it modular
one propeller-baseboard with the minimum required:
crystal, EEPROM, RS232, LED indicating supplyvoltage ready
A small board similar to the propstick
a DIP-connector or an 40 pin IDC to some kind of a "backbone"
Then it would be possible to create some backbones
one with
SD on P0-P3
TV on P12-P15
VGA on P16-P23
Mouse on P24-P25
Keyboard on P26-P27
one with super general IO four 8-PIN IDC
one with ?
another complete different idea:
the reason for an IO-agreement is that you can compile a SPIN-file load to the eeprom and everything should run
how about a system of constants for the different devices
if the IO-Numbers doesn't fit just change ONE basenumber of the starting IO-PIN and the others will follow because the other numbers are kind of VGA-basepin + 1, VGA-basepin+2 etc. ?
this could be a compromise between changing IO-numbers and keeping it as flexible as possible ?
best regards
Stefan
propeller.wikispaces.com/IO+Bus+Systems
-Phil
And now that I think about it, I might mention that D4 and D5 don't exist in Socket D, but are accessible as those I2c lines on all 4 sockets. (did that make sense?)
It may be to late to adopt a standard, as everyone seems to have come up with their own connector. I don't think that I would change my pinout, as it would inconvenience customers that have previously purchased SpinStudios, as their old Mainboards would not support next gen modules.
Perhaps a small adapter could be made to interchange modules between systems though??
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio - the modular Development system for the Propeller
PropNIC - Add ethernet ability to your Propeller! PropJoy - Plug in a joystick and play some games!
SD card Adapter - mass storage for the masses Audio/Video adapter add composite video and sound to your Proto Board
Just my 2 cents (but we don't have 2 cents anymore in Australia so I should make that 5 cents )
-Phil
Rgds,
John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
@ Phil : I hadn't realised the MoBoStamp/MoBoProp IDC was 2mm pitch; that might be an obstacle to its adoption by others, especially hobbyists who may find it hard to source such connectors and cables themselves.
As well as adapters ( there is a MoBoStamp breadboard adapter ) it is possible that anyone designing a development board in the future fits more than one style of bus adapter. I must say that I do like the idea of a 40-way as per the Hybrid which can get all I/O etc off the board on a single cable ( not sure how a true one-to-one with long cable affects the crystal and I2C lines etc ). Most people have access to 40-way IDE cables and sockets or molex headers. Providing that could be the lowest common denominator.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
The 2mm connector was chosen for compactness, so that the daughterboards could be kept small without the "tail wagging the dog". While it's true that such connectors are — by themselves — incompatible with breadboard spacings and are less popular among hobbyists than the 0.1" variety, the ready availability from Parallax of the DB-Expander 0.1" SIP adapter, along with the Daughterboard Extension Cable, effectively moots the connector issue for most applications. Obviously, where size is not a factor or where a given function is too complex to fit the diminutive daughterboard format, some of the other bus/connector systems might well be more appropriate. I think they all have valid roles to play, though, and the Wiki makes it easy for a potential user to pick the one most suitable for his/her application.
If you think it appropriate, it might be instructive to add, under each bus section, a list of the functions already available for that particular system, with links to their product pages where available. To relieve you of the burden, this might best be undertaken by the developers and/or champions of each particular system.
-Phil
Complying examples: Keyboard.spin, TV_terminal.spin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter
www.brilldea.com·- check out the uOLED-IOC, an I/O expansion for the uOLED-96-PROP
www.tdswieter.com
One little spark of imagination is all it takes for an idea to explode
I personally think the PropTool should have some means to override whatever _CLKMODE and _XINFREQ is specified in source with whatever the user has pre-defined and there's no reason that couldn't extend to other named constants ( eg "TV_PIN" etc ).
Most home users have one hardware platform or multiple hardware platforms configured the same so it would be useful tehre. If people have multiple platforms then turn the override off and edit manually.
The most useful thing I see is that people using peculiar settings ( ie, that 7.3728MHz crystal ) can develop with those settings but still have written code for the defacto 5MHz, so everyone doesn't have to keep checking they changed it before release etc.