Prop-to-Prop Intercommunication: Best Practices?
Oldbitcollector (Jeff)
Posts: 8,091
So I'm working on a little Prop/2/Prop stuff, and being a guy who likes elegant solutions, I added some male/female pin headers to a couple Quickstarts, plugged them together and jumped in.
The first things I start to notice.. Seems that a lot of noise occurs on the connection, handled with pull down. Second, it appears that my current top reliable speed (fullduplexserial) is around 19200.
Has someone established a "best practices" to Propeller intercommunication and interconnection somewhere? I'm getting the feeling that this path has probably been blasted down and I'm nooddling my way to it.
Jeff
The first things I start to notice.. Seems that a lot of noise occurs on the connection, handled with pull down. Second, it appears that my current top reliable speed (fullduplexserial) is around 19200.
Has someone established a "best practices" to Propeller intercommunication and interconnection somewhere? I'm getting the feeling that this path has probably been blasted down and I'm nooddling my way to it.
Jeff
Comments
I use a 10K pullup on each line myself.
Can you try running this on one prop and having it communicate with itself so you eliminate the interconnect. Just in case it's something else.
I don't understand how weak pullups or pulldowns would help at all. The lines are always driven correct?
Did you look at Beau's posts (from similar threads box) in http://forums.parallax.com/showthread.php/99222-Propeller-DEMO-(14.5-Meg-Baud)-High-Speed-Prop-to-Prop-Serial-Communication
I don't know if a pullup helps with Tracy's version or not. I know with an earlier serial driver I'd get a bunch of zeros as input if I didn't use a pull up. I think the problem was the serial object didn't detect framing errors. Here's a link to Tracy's comments about it.
-Phil
What a huge improvement! Switched out FullDuplexSerial for the suggested object. Pushing 57600 with only an occasional glitch. (I'm not even implementing the proper pull down resistors yet.)
Here's a link to the project I'm working on for this.. I'm attempting to expand my PMC project to two Quickstarts. (It looks completely doable now.)
http://propellerpowered.com/forum/index.php?topic=491.0
Still doesn't sound quite right. Shouldn't be any glitches with a short link, even up to 4x this speed.
? post a picture. I'm wondering about strange things like earth hum loops.
If you can get the speed up to 115k then it opens up the possibilities with propellers programming other propellers. I have played around with this and it is great fun - store programs on an SD card on the main propeller, and then use that to program other propellers. The slave propellers don't need eeproms.
Just my 2 cents worth, alays like some isolation....
Sending a program from one Propeller to another could get interesting. @DrA, didn't you do something like this recently?
Jeff
re
What I did was search the obex and found a program from years ago which allowed a second prop to be programmed. I think it was from parallax and goes right back to when the propeller first came out. The problem back then is the prop had no mass storage, so if you wrote a 32k program and decided to program another propeller with say, half that, then you only had 16k. Less if you tried to store multiple different programs as data files in a main spin program.
So what I wanted to test was whether there would be any glitches if you read a file off an SD card in pieces (512 bytes) and send those pieces out via the protocol above. And the good news was that it worked fine.
The code is thus simply any SD card object, and 'programming another propeller' object and you just open the SD card .bin file and send it out.
What would be really handy would be an IDE that would make programming multiple propeller chips easier. eg you could have tabs open for all the propellers in the group, and you could direct a compiled program to either go to a master propeller, or via a master propeller to a nominated slave propeller, or to an SD card on the master propeller. So an F10 and F11 but for all propeller chips in a group.
One can think of all sorts of clever things. A group of propeller chips but you save money by only needing one SD card and one eeprom. One could even think of software than could handle the abstract idea of 16 cogs running in parallel with seamless intercog comms.
Now I've got a create a second GRAPHICS mode which can be switched on from the second Propeller.
Jeff
One ground line, 30 signal lines.