I have networks of Prop's connected over RS485 and I am able to use any Prop to talk to and reprogram any other Prop. Here is a demo video of a 12 Prop network where I just access it via a master Prop.
Not exactly, The BSS was the closest thing that I knew of to describe this project. Peter's 12 Prop Ping-Pong RS485 is almost exactly what I was aiming for.
Not exactly, The BSS was the closest thing that I knew of to describe this project. Peter's 12 Prop Ping-Pong RS485 is almost exactly what I was aiming for.
Ah, that makes more sense. Steve Denson (jazzed) once had a product called the TetraProp that had four Propeller chips on a single board with lots of flexibility as to how to connect them. I'm not sure how he handled loading though. I have one of his boards but I must admit I've never fired it up. I'm not sure if he still has any available or not but he sometimes stops by here so maybe he'll post a comment
Looks good. You could look at a HC594 for all those rarely used RESET lines, to save pins, and that has a /RCLR pin, that can hold all the slave props in reset, until the master is ready.
Connect RCLR to a master prop pin, with pulldown. (= low during RST and low until driven high)
That frees some pins, as you might want to add a QuadSPI flash part to the master, and you also have enough pins to connect to each i2c device too.
Here is a photo of a breadboard I assembled some time ago.
One master prop that communicated with the outside world and controlled:
Nine Prop Mini's that used one cog each to talk (listen) to the master and 7 cogs to do integer (triple precision IIRC) arithmetic.
jmg
If I ever expand the number of slave props, I will likely use an HC594 or something. On startup, all of the slave props will wait for a signal from the master prop before doing anything.
tomcrawford
That looks awesome! I really like the way you organized your cog usage.
I have the schematic done. KiCad users can read the schematic itself, I will post a screenshot of it for those who do not have KiCad as soon as I can.
Interesting. I have KiCad, but for some reason your schematic was opened with PropellerIDE, and what I got was a small look at the innards of KiCad. Must check my settings.
Speedbump! My resistor symbols have no footprint. Does anyone out there have a footprint that they use for breadboard-friendly resistors?
Do you mean PCB or SCH side ?
KiCad usually has a mapping step from SCH to PCB to select a physical footprint (eg 0806,1206, 1/8W etc)
The PCB side has some 'resistor-universal' symbols, which have 2 holes plus a trapezoid SMD (any size), which really covers all the bases !
I can't see how 5 Props on a board are really of any use. Having distributed Props that are connected to things they need to be connected to and having them interconnected in such a way as to allow them to be programmed from a central point is a good thing. But 5 Props on one board and not connected to anything? I always wondered why "Tetra Prop" was called that, just because there were 4 separate Prop boards that were made as one, but could be broken off to make four. I think at the time just to illustrate this mentality I then showed my panel array of about 50 P8 modules as "one pcb".
What is this board actually designed for? If I had to put 5 Props on a board I might have depending upon the application one common EEPROM, and one crystal, and then have the master output the crystal frequency clock to all others (each then uses its PLL). Maybe a daisy chain boot process from one EEPROM or more complicated via RX/TX lines. Although I've used a lot of Props in one system, I've never had to put them all together on one board in such a manner but at least my software supports it if I do.
Oh, I know how to view the schematic with KiCad. Just surprised that it was opened with PropellerIDE and the view of the KiCad data it displayed for me. Gave me a bit of insight into how KiCad represents the schematic data. I have changed my settings so it now automatically opens with KiCad rather than Propeller IDE, although I may choose to use PropellerIDE in the future.
David
The master communicates with the slaves over the same lines that it programs them with. If two slaves need to share a piece of info, they send a request to the master, then the data. The master then relays just the data to the other slave. Oh, and massive Parallel-Processing is definitely the goal, along with open use IO.
jmg
When I create a netlist from the sch, I get a warning that my crystals and resistors lack footprints. When I go to assign a footprint to the symbol, with the footprint editor, it makes me draw a footprint. How do I access this "resistor universal" footprint?
David
The master communicates with the slaves over the same lines that it programs them with. If two slaves need to share a piece of info, they send a request to the master, then the data. The master then relays just the data to the other slave. Oh, and massive Parallel-Processing is definitely the goal, along with open use IO.
Sounds good. Let us know how you make out with software that makes use of parallel processing.
Comments
He never proved to us that it worked. Those were Basic Stamps.
I guess the discussion has moved to here: http://humanoidolabs.blogspot.com
I still have no idea what software he runs on this giant collection of Propeller chips.
Thanks,
-Phil
Looks good. You could look at a HC594 for all those rarely used RESET lines, to save pins, and that has a /RCLR pin, that can hold all the slave props in reset, until the master is ready.
Connect RCLR to a master prop pin, with pulldown. (= low during RST and low until driven high)
That frees some pins, as you might want to add a QuadSPI flash part to the master, and you also have enough pins to connect to each i2c device too.
One master prop that communicated with the outside world and controlled:
Nine Prop Mini's that used one cog each to talk (listen) to the master and 7 cogs to do integer (triple precision IIRC) arithmetic.
Thanks! I am glad to hear tat you like it!
jmg
If I ever expand the number of slave props, I will likely use an HC594 or something. On startup, all of the slave props will wait for a signal from the master prop before doing anything.
tomcrawford
That looks awesome! I really like the way you organized your cog usage.
Interesting. I have KiCad, but for some reason your schematic was opened with PropellerIDE, and what I got was a small look at the innards of KiCad. Must check my settings.
Do you mean PCB or SCH side ?
KiCad usually has a mapping step from SCH to PCB to select a physical footprint (eg 0806,1206, 1/8W etc)
The PCB side has some 'resistor-universal' symbols, which have 2 holes plus a trapezoid SMD (any size), which really covers all the bases !
I can't see how 5 Props on a board are really of any use. Having distributed Props that are connected to things they need to be connected to and having them interconnected in such a way as to allow them to be programmed from a central point is a good thing. But 5 Props on one board and not connected to anything? I always wondered why "Tetra Prop" was called that, just because there were 4 separate Prop boards that were made as one, but could be broken off to make four. I think at the time just to illustrate this mentality I then showed my panel array of about 50 P8 modules as "one pcb".
What is this board actually designed for? If I had to put 5 Props on a board I might have depending upon the application one common EEPROM, and one crystal, and then have the master output the crystal frequency clock to all others (each then uses its PLL). Maybe a daisy chain boot process from one EEPROM or more complicated via RX/TX lines. Although I've used a lot of Props in one system, I've never had to put them all together on one board in such a manner but at least my software supports it if I do.
Oh, I know how to view the schematic with KiCad. Just surprised that it was opened with PropellerIDE and the view of the KiCad data it displayed for me. Gave me a bit of insight into how KiCad represents the schematic data. I have changed my settings so it now automatically opens with KiCad rather than Propeller IDE, although I may choose to use PropellerIDE in the future.
The master communicates with the slaves over the same lines that it programs them with. If two slaves need to share a piece of info, they send a request to the master, then the data. The master then relays just the data to the other slave. Oh, and massive Parallel-Processing is definitely the goal, along with open use IO.
jmg
When I create a netlist from the sch, I get a warning that my crystals and resistors lack footprints. When I go to assign a footprint to the symbol, with the footprint editor, it makes me draw a footprint. How do I access this "resistor universal" footprint?
jmg
I found the resistor footprints.