Fast Inter-Propeller Communication Object
Bobb Fwed
Posts: 1,119
I just released a new object on the Obex: "Fast Inter-Propeller Communication". It (as the name very creatively suggests) allows fast communication between two propellers.
I just tested it at 100MHz and got a throughput of 1.37MB/s (including all overhead). Also tested at 80MHz producing 1.10MB/s. It has been tested with over a meter of wiring between two Propellers, but i can't see why it wouldn't work with much longer wires.
Please let me know of any problems you have with the object.
Download here: obex.parallax.com/objects/546/
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!
Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Post Edited (Bobb Fwed) : 11/24/2009 10:36:29 PM GMT
I just tested it at 100MHz and got a throughput of 1.37MB/s (including all overhead). Also tested at 80MHz producing 1.10MB/s. It has been tested with over a meter of wiring between two Propellers, but i can't see why it wouldn't work with much longer wires.
Please let me know of any problems you have with the object.
Download here: obex.parallax.com/objects/546/
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!
Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Post Edited (Bobb Fwed) : 11/24/2009 10:36:29 PM GMT
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
You might catch a little resistance to your object name. I renamed my terminal from Propcomm to Coggyterm because
of someone who has a book in the works which uses the same name. YMMV. [noparse]:)[/noparse]
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
Good stuff - I'll have to have a look at it for use in Catalina. I'm thinking of sending my current serial comms implementation to the ITU - it will be called "V.SLOW"
Ross.
P.S. How 'bout calling yours "Fly By Wire"?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!
Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
May I know if you use the same crystal for both Props? (XO of Prop1 to XI of Prop2)?
The answer to the first is: I don't know, maybe someone else on the forum knows.
The second is: no. I used a few different setups for testing. I used one propeller (cog-to-cog communication -- like what is in the demo file), I also used two props on two different crystals (same frequency), and one prop driving the other prop (IO to XI) at the same frequency.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!
Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
Sorry for my unclear question. Thank you, yes, you've both answered my question in #1 & the question I was planning to ask . I'll be testing it on my 2 ProtoBoards tomorrow.
OK, I must have done something silly (or didn't do something I should have). I have both Prop1 & Prop2 same configuration (Prop1 is a Protoboard & Prop2 is breadboard). However, I have a consistent 512 "Warnings" & 1 "Buffer Good".
Prop1:
TX = 08
Prop2:
RX = 12
I'm using PST on Prop2. Do I need to perform some form of hand-shaking between the 2 Props? Thanks in advance.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!
Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
Post Edited (Bobb Fwed) : 5/18/2010 5:02:45 PM GMT
Prop1 (tx) the transmitter (ignore the receiving for now)
Prop2 (rx) the receiver & monitoring the result from PST.
Instead of ?seed value, I use incremental hex value for transmitting data. The Prop2 hex variable (runningnum) increments smoothly but the hex variable transmitted from Prop1 jumps from incrementing hex to a signed long incrementing hex then jumps back again . I've checked the wiring & I think this time this is not the problem. I then listens to the increments at Prop1 & it increments smoothly. I'm attaching the code which I modified a little & added the starting long of $555_555, which was sent from Prop1 to Prop2 correctly. I'm still analyzing this but if you spot any silly mistake I've made, please let me know. If I should be testing something else, please advice me as well. Thanks a lot!