Multi-processor Stamp Configuration
Bill Chennault
Posts: 1,198
All--
A few--a VERY few--of you have asked me to keep you updated on my "bit-signaling, multi-processor Stamp" configuration that will drive my skid steer. In the initial version, a single BS2p40 will act as a master, sending instructions to at least four BS2 slaves. Two of the slaves will watch the 128 CPR encoders in the gear motors and send feedback to the master for decision-making and instructions to the two Stamps that control HB-25s, which in turn control the gear motors.
To achieve my original thinking, I have dedicated five pins of each slave to five pins of the master. This means that if I use five pins on each slave (I won't . . . the encoder BS2's don't need that many) then I will have used 20 pins on the master. Obviously, I tossed in a little extra circuitry.
Here is the breadboard pretty much bare except for the BS2p40, some resistors (1k between master/slave pins), and jumper wire. By the way, I will run the BS2p40 off one of the VDD outputs of a BS2 OEM.
And here is the (mostly) populated breadboard . . .
As always, your criticism helps me A LOT!
--Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.
A few--a VERY few--of you have asked me to keep you updated on my "bit-signaling, multi-processor Stamp" configuration that will drive my skid steer. In the initial version, a single BS2p40 will act as a master, sending instructions to at least four BS2 slaves. Two of the slaves will watch the 128 CPR encoders in the gear motors and send feedback to the master for decision-making and instructions to the two Stamps that control HB-25s, which in turn control the gear motors.
To achieve my original thinking, I have dedicated five pins of each slave to five pins of the master. This means that if I use five pins on each slave (I won't . . . the encoder BS2's don't need that many) then I will have used 20 pins on the master. Obviously, I tossed in a little extra circuitry.
Here is the breadboard pretty much bare except for the BS2p40, some resistors (1k between master/slave pins), and jumper wire. By the way, I will run the BS2p40 off one of the VDD outputs of a BS2 OEM.
And here is the (mostly) populated breadboard . . .
As always, your criticism helps me A LOT!
--Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.
Comments
If you use the same kind of signal that DMX uses. Use the Shiftin and shiftout commands on a buss line with redundant signals. Hold the clock line low for a fixed time in milliseconds. The slaves all set up to shift in 4 bytes. The master sends 4 bytes using shift out. So all the controllers have all of the data for each controller. Byte 1 is for controller 1 ... byte 4 is for controller 4. The master keeps sending the same 4 bytes over and over. You could also add a parity byte to test for errors or valid data.
You may want to dedicate one pin on each processor slave to a emergency stop pin where the controller makes the pin high for normal operation and low to signal a fatal error condition.
If you are using this in a real skid steer you may want to check out http://www.polyzen.info for circuit protection. Digikey sent me two proto boards last week for free evaluation, if I can hand solder these little buggers I may use them in my digital tachometer gauge board.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Think Inside the box first and if that doesn't work..
Re-arrange what's inside the box then...
Think outside the BOX!
My little bot is a skid steer. (When I build a house, I will be looking for a real one!)
It is apparent you grasp what I am trying to do . . . a hardware intensive approach that will "guarantee" performance. I like your idea and will do some research to see if I can determine the instruction cycles necessary to implement an approach like yours versus mine. (I have not figured mine out either. Is there a an online Parallax-supplied instruction cycle datasheet?)
Your idea about "emergency stop" is great. I thought about it and then decided that I would dedicate a Stamp to just handling sensors. Still, your idea would be simple to implement and probably should be used, as well.
Thanks for the help.
--Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.
May I·suggest more space between them?··Or maybe some insulation (electric tape) on the solder-side of the BS2-OEMs, so that the regulator heat-sinks won't·constitute this·short-circuit hazard.
this is fantastic to see that you are working on a master slave project
i too have been working on just this sort of thing over the last 6 months or so
the reason i went this direction was two fold,
one, i didn't want to learn a ton of code to try and get done on a single chip, and
two, i wan't a hardware heavy approach that is very redundant and reliable
so far i have stepped a bit different in direction, but integrating the bs2 into an automation direct dl305
platform, to make smart controllers out of the oem control modules,
i want my master to do all the thinking, and the slaves to take control of separate functions
this allows the slaves to be very good at what they do, without having to stop and process information
and the master is left without having to do routine functions and be able to spend all its time making decisions
anyway it is really interesting to see someone working with a master/slave arrangement
which processor are you using for the master, i need 20 pins of I/O on my master
and am looking at all options
anyway i like it!
bob g
Regarding the heat sinks touching the solder-side of the next BS2-OEM: I had exactly the same thought and will either put piece of electrical tape on the backs of he OEM's or simply space them out a bit more since it appears that I will have more than enough room on the breadboard.
--Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.
Ha! Great minds think alike! (However, in my case you might not want that to get out!)
I am currently using a BS2p40 for a master. I imagine I will stay with that device since I need AT LEAST 24 pins. Currently, to program it I simply pop it out and stick it in a PDB. Soon, I will have a DB9 built for it that I can R&R as necessary.
Since I am newbie, I do not know what dl305 is!
--Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.