TwinProp "P-51" Concept/Prototype for YOUR review...
RinksCustoms
Posts: 531
Chalk one up for the Deviants! Two Props spining at 80MHz fully loaded with options and the flexibility to give the user up to 45 direct I/O lines... ON-THE-FLY!!
Board features as of Rev 1.0a;
Optional ports/parts being researched that may be added into the design:
Inter-accessable features - features both Props can access currently:
DESIGN-
At the heart of the design lies two Propeller chips connected by a 4 bit data bus for very fast transfer of data between the two chips, after programming independently, the 2 DIP switches (SW1 & SW2) can be switched on letting pins 30 & 31 be used for handshaking of the 4 bit exclusive data bus. Pins 28 & 29 on each Prop serve as an I2C bus each independent from the other Prop. This allows for more collective devices to be used as well as independent programability, as this design is asymetrical purposely.
BUSES, SHMUSES-
Where this board really differs from other boards is it's flexibility. Each available Propeller pin is tied to one of two Master I/O buses. For the Primary, it's pins 5..27 (pin 4 is "freqout'ed" 10MHz used for the Secondary's XIN input), for the Secondary it's pins 4..27. Each Master bus is either connected to its own Main or Auxilary bus for user I/O. The Main and AUX buses make 4 electrically independent buses. What do all these buses mean to the user? The user could tie up all the I/O's on the main buses with interfaces like VGA, Keyboard, Mouse, MP3 chips, Ethernet devices and other periphials that require most of the attention of a Propeller and use the Aux buses for things that require periodic sampling or adjusting like PING sensor(s), temp, humidity, or pressure sensors muxed through one of the two·onboard ADC's, drive an 8 bit latch to create a bargraph of LED's, or interface to SNES controllers.
This bus flexibility is achieved through switching the inputs of the MCP23016's to outputs. The 4 MCP23016's outputs control the array of 4066 IC's that serve as the I/O swithces. Each 4066 is arranged so that two gates form a SPDT electronic switch for each available I/O pin on each propeller. It takes 4 16 bit I/O expanders and (23) 74HC4066's bilateral switches to make this all possible. Accessing the user pins on the main or aux busses is fairly straight foward, assuming some knowledge of serial and I2C data transmission, the user only need to write to the corresponding I2C device and set the direction registers bits·to output·and output registers bits to either high or low (0 or 1). This is similar to the propellers opperation of registers, it just requires I2C formatted device address (4 or 5) followed by the register you want to modify. A spin or assembly object could be made fairly easy to make selecting an I/O on a main, aux, or MatriX bus almost built-in.
MatriX'ed-
Then there is the MatriX bus. This bus allows inter-bus access, giving the user even more flexibility of the system. The MatriX bus operates like it's counter part buses with one exeption, it can connect one prop with certain devices that·are exlusive to the other. For example, the Mouse and Keyboard are exclusive to the secondary, but by accessing device 5 on the primary's I2C bus, and setting outputs GPB1, GPB0, GPA7, and GPA6 to high(1) and now the primary prop has access to keyboard and mouse. But the coresponding pins going to the secondary should be disconnected via the secondary's I2C bus controller. This is done anually and it could also be achieved using the 4 bit exclusive data bus by setting a flag or changing a variable that some code checks periodically or monitors that can write the Secondary's I2C bus with the correct device address and corresponding pins to disconnect.
WHERE YOU COME IN-
I'm posting the schematics for your scrutany, constructive critisism, and otherwise suggestions as i begin the PCB layout proccess. You'll need the Adobe Acrobat reader to view these schematics.
If you would like to see a feature incorporated into this design, a successful submition meets the following criteria:
·Updated 7/12/2007 - This board will have integrated S-video out along with some documentation on how to implement it using the TV driver ver 1.1, the current schematics will not show this change yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! My team stats.
Post Edited (RinksCustoms) : 7/30/2007 6:04:45 AM GMT
Board features as of Rev 1.0a;
- 1 VGA out
- S-video out
- 1 Video·out w/ optional broadcast
- 1 Keyboard port
- 1 Mouse port
- 2 SD card ports
- 3 additional·EEPROM slots for each Prop
- 1 slot for an ADC8031
- 1 slot for an LTC1289
Optional ports/parts being researched that may be added into the design:
- S-Video out
- 2 PSx game controller ports take a peak!·The page goes into detail of interfacing PS1/PS2 conrollers to a PC, but i read somewhere that the PSx data transfers run from 200MHz to 500MHz.
- Ethernet port
- MP3 decoder chip
- M74HC4316 Quad Bilateral switch as a replacement for the aging 4066 chips - it has some better characteristics.
- A few NLAS7222A-D's to handle video switching for broadcast bandwidth capacity.
Inter-accessable features - features both Props can access currently:
- Mouse
- Keyboard
- both onboard ADC's
- both SD cards
DESIGN-
At the heart of the design lies two Propeller chips connected by a 4 bit data bus for very fast transfer of data between the two chips, after programming independently, the 2 DIP switches (SW1 & SW2) can be switched on letting pins 30 & 31 be used for handshaking of the 4 bit exclusive data bus. Pins 28 & 29 on each Prop serve as an I2C bus each independent from the other Prop. This allows for more collective devices to be used as well as independent programability, as this design is asymetrical purposely.
BUSES, SHMUSES-
Where this board really differs from other boards is it's flexibility. Each available Propeller pin is tied to one of two Master I/O buses. For the Primary, it's pins 5..27 (pin 4 is "freqout'ed" 10MHz used for the Secondary's XIN input), for the Secondary it's pins 4..27. Each Master bus is either connected to its own Main or Auxilary bus for user I/O. The Main and AUX buses make 4 electrically independent buses. What do all these buses mean to the user? The user could tie up all the I/O's on the main buses with interfaces like VGA, Keyboard, Mouse, MP3 chips, Ethernet devices and other periphials that require most of the attention of a Propeller and use the Aux buses for things that require periodic sampling or adjusting like PING sensor(s), temp, humidity, or pressure sensors muxed through one of the two·onboard ADC's, drive an 8 bit latch to create a bargraph of LED's, or interface to SNES controllers.
This bus flexibility is achieved through switching the inputs of the MCP23016's to outputs. The 4 MCP23016's outputs control the array of 4066 IC's that serve as the I/O swithces. Each 4066 is arranged so that two gates form a SPDT electronic switch for each available I/O pin on each propeller. It takes 4 16 bit I/O expanders and (23) 74HC4066's bilateral switches to make this all possible. Accessing the user pins on the main or aux busses is fairly straight foward, assuming some knowledge of serial and I2C data transmission, the user only need to write to the corresponding I2C device and set the direction registers bits·to output·and output registers bits to either high or low (0 or 1). This is similar to the propellers opperation of registers, it just requires I2C formatted device address (4 or 5) followed by the register you want to modify. A spin or assembly object could be made fairly easy to make selecting an I/O on a main, aux, or MatriX bus almost built-in.
MatriX'ed-
Then there is the MatriX bus. This bus allows inter-bus access, giving the user even more flexibility of the system. The MatriX bus operates like it's counter part buses with one exeption, it can connect one prop with certain devices that·are exlusive to the other. For example, the Mouse and Keyboard are exclusive to the secondary, but by accessing device 5 on the primary's I2C bus, and setting outputs GPB1, GPB0, GPA7, and GPA6 to high(1) and now the primary prop has access to keyboard and mouse. But the coresponding pins going to the secondary should be disconnected via the secondary's I2C bus controller. This is done anually and it could also be achieved using the 4 bit exclusive data bus by setting a flag or changing a variable that some code checks periodically or monitors that can write the Secondary's I2C bus with the correct device address and corresponding pins to disconnect.
WHERE YOU COME IN-
I'm posting the schematics for your scrutany, constructive critisism, and otherwise suggestions as i begin the PCB layout proccess. You'll need the Adobe Acrobat reader to view these schematics.
If you would like to see a feature incorporated into this design, a successful submition meets the following criteria:
- Any additions have to be "working" schematics. ie - They should be schematics of known properly functioning devices that can interface with the propeller
- periphial devices that require constant attention from a host (Prop) shouldn't consume more than 8 I/O
- Is a device or interface that can be used by the majority of users, ie- an ethernet port interface or MP3 chip interface
- if you have sample code/documentation on how to use the device, this should be included, but isn't manditory.
·Updated 7/12/2007 - This board will have integrated S-video out along with some documentation on how to implement it using the TV driver ver 1.1, the current schematics will not show this change yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! My team stats.
Post Edited (RinksCustoms) : 7/30/2007 6:04:45 AM GMT
pdf
85K
Comments
Just a note: I am pretty sure you are only supposed to have one pullup per i2c line. Having more than one will be like paralleling a bunch of resistors, which means the pullup current will increase enough to render the i2c buss unusable. Your setup would yield about 1.2k on each line, which is a bit high for a pullup (thats 2.75ma@3.3v when the Prop/eeprom pulls the line low, which doesn't sound safe).
EDIT: Updated pullup equivalent resistance since I miscounted the number of i2c devices/pullups.
Harrison
Post Edited (Harrison.) : 7/12/2007 2:49:47 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! The average PC while browsing the internet typically uses less than 30% of it's potential, why not donate a portion of the rest for cancer resaerch?
Post Edited (RinksCustoms) : 7/12/2007 3:13:16 AM GMT
I can't see the ethernet port... is there any place on the board ?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Regards.
Alberto.
The etherent port seems to be a popular subject in the forums lately..
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! The average PC while browsing the internet typically uses less than 30% of it's potential, why not donate a portion of the rest for cancer resaerch?
Post Edited (RinksCustoms) : 7/12/2007 4:04:08 AM GMT
http://en.wikipedia.org/wiki/P-61_Black_Widow
en.wikipedia.org/wiki/P-38
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! The average PC while browsing the internet typically uses less than 30% of it's potential, why not donate a portion of the rest for cancer resaerch?
http://www.richard-seaman.com/Aircraft/AirShows/YankeeAirMuseum2003/Sampler/index.html
I can tell you from experience that they don't have inverted flight tanks, though...
Woo Hoo!· My 500th post...
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Truly Understand the Fundamentals and the Path will be so much easier...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
E3 = Thought
http://folding.stanford.edu/·- Donating some CPU/GPU downtime just might lead to a cure for cancer! My team stats.
Of course, so was the Cessna 337! - a great idea that didn't catch on until well after Cessna quit producing
such a great aircraft! - let's hope your idea catches on sooner!
337's were called 'polish p-38's' - the 'mix-master' - Bird-dogs (O-2's) and push me pull me's....
John