Prop Stache
Newzed
Posts: 2,503
PLEASE.........won't someone invent a Stache for the Propeller!!
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Comments
Andre'
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Andre
Brian
"Stache is a full-map invalidation-based cache coherence protocol that caches
remote data into the node’s main memory. To implement caching, Stache allocates memory at page granularity but maintains coherence at a fine-graincache block granularity."
Generally means a cache common to all nodes.
Bill
Sid, this subject has come up before (I seem to remember it is your abiding interest!). It would not be at all difficult to accomplish, and the means, using a propeller at the core, was outlined by Chip in this thread:
http://forums.parallax.com/showthread.php?p=591445
With only a few changes that would hack it for you. However, there would be lots of details to iron out in order to turn it into a product like the Stamp Stache. It would need a consistent interface both to the host PC and to the slave Prop. (USB? Serial? Both?). And it might need a minimal user interface to allow it to select between a set of different programs to deliver to the slave. At this point in time, there is only one flavor of Propeller, but it would be prudent to think about upgrade paths. I am hesitant to get into it, at least until there is a set industrial market. That is where the Stamp Stache is mostly going, for factory floor and field firmware updates, as it allows for one button firmware upgrades in no-frills packaging.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
I looked at Chip's loader program and I really don't understand it.· Firwt, in the instruction:
PUB Connect(PinRESn, PinP31, PinP30, Version, Command, CodePtr) : Error
I don't know what to load into the six variables.· Also, Chip indicates the BOEn line should be pulled HIGH.· This could be done with a new "loader" board.· The Demo board uses a miniB USB female connector· so the loader board would have to have a female USB-A connector so I could use my USB A to miniB cable, of which I have a couple.· I would be happy to pay you if you could come up with a loader board schematic and a program that would load the Demo board with a program previously loaded into the loader board from my PC.· I might be able to make the board myself - if not, I can always go to Expresspcb.· The loader board would use a Prop DIP, and I presume it would have provisions for both wall transformer and 9V battery power.· I don't even know if a loader board would work with the Demo board - the Demo expects USB input - that is the only access to RESn and pins 30-31 that I know of.· Maybe I'm just dreaming.
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
What Parallax really needs is to do is add the ability to output a standalone Propeller Object loader + object program from PropTool - similar to what's available with the Basic Stamp IDE. The Propeller Object Loader needs to run on older version of Windows.
Just use DIP8 version EEPROMs in your equipment, and swap them out when you need to upgrade...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
You've hit the nail on the head with the question of interface for a "pstache". The USB master interface would add a layer of complexity and might have to deal with different flavors of USB slave, not to mention the different possible connectors and cables. The "pstache" USB model would have to act as a USB slave toward the PC and as a USB master toward the target Prop.
The easiest thing to implement would be a simple serial interface, not USB. The program that Chip posted assumes you have direct access to the programming pins, and that would certainly be the easiest thing to implement. Just a four-pin deal that does not even have to do any physical pin swapping to act both as slave to the PC and master toward the target Prop.
For your situation, Sid, do you have two props? No laptop portable computer? I'd agree with others that the swapable eeprom would be a viable hack. Maybe it is not that hard to pull off the SOIC eeprom and hook up the 4 essential pins to a ZIF socket.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Kelvin
Chip's propLoader might well be workable, but I'm not sure I'd want to have to ship upgrades that way to customers...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheers,
Simon
www.norfolkhelicopterclub.co.uk
You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
I have two Props.· One is the Demo board that runs SuperMill, the other is a one I built up from a board I made on Supermill.
The computer in the shop will not handle XP so that is out.· It looks like I have two options - buy a new computer with XP just for the shop, or, hope that you can come up with a viable design.· As for interfacing, the loader would have a female USB-A.· This would allow direct connection to the PC with a double-ended USB-A cable.· From the loader to the target, you would switch to a USB-A/USB-miniB cable.· This would allow direct connection to the Demo board or to a PropPlug, which is what I'm using with my Propeller board.
There is no way I would try to remove the SSOP EEPROM on the Demo board and patch in a DIP.· So what do you think - could you come up with a Prop Stache?· With all the forum members that are using the Prop for robotic and similar applications, I think there would be a good market for it.· There is a good chance I could make a prototype board on SuperMill, if it was for a DIP.
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
A Propeller stache isn't exactly what my demo board is going to be, but I have placed jumpers in it to allow the serial lines to be slaved to another MCU I want mention here. My plan was to attempt to load the Prop from it. But the jumpers are there just in case I can't make it jump through the Prop IDE hoops during start up.
I don't want to put any wind in your sails(it's not built yet),· but if I succeed It would be a good starting point for a stache. And as far as USB goes just leave it serial, It isn't like speed is a priority loading a new program. Oops, Just saw what kind of setup you where using. If I figure it out I'll at least share my code, As far as the USB stuff goes, for now I'll stay Serial.
Post Edited (bambino) : 11/28/2006 6:28:23 PM GMT
A simple loader might be written for your old PC, Sid, that could take the binary or the hex file produced from the buttons on the F8 screen and run those into the shop prop. But that would take some work too, to implement the protocol. Same for a PDA. I'm pretty down on Palm today--They change the serial interface with every release.
You asked above about Chip's propellerLoader.spin program, how to make the call to...
PUB Connect(PinRESn, PinP31, PinP30, Version, Command, CodePtr) : Error
Early in the program listing there is a comment line that tells you how to do that...
loader.Connect(0, 1, 2, 1, loader#LoadRun, @loadme)
The first three parameters are the pins that are used on the master prop to connect to the reset and programming pins on the target stamp. Pins ap0 and ap1 are outputs and ap2 is an input on the master prop, and those go to the reset pin and to pin ap31 and ap30 on the target prop. The fourth parameter, 1, is compared with the version number returned by the target prop, and the program aborts if they do not match. The fifth parameter refers to one of the contants defined in the loader object, which happens to have the value 1. In the programming protocol, it is the command that is sent to the target to initiate the loadRun procedure. Finally, the @loadrun is a pointer to the start of the program image that is going to be loaded into the target. The binary image of the actual program object that you want to end up in your target shop prop is produced by selecting the Save binary option in the IDE after pressing the F8 option. Once you have that image, it gets included in the object file with this syntax...
DAT loadme file "loadme.binary"
Interesting syntax, good to know that you can in fact include an entire file like that.
The program goes on to show the details of how the target propeller is put into its programming mode and how the data is transferred using the ratiometric scheme that is compatible with the 12 mhz RC clock.
A next step toward a "pstache" would be to avoid the step that requires the separate binary image. People have some clever ideas here to do similar things. I'd be inclined to use something with hardware, to accept an image into a large eeprom, and then do tricks with the eeprom address lines to bank the image.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
From reading Chip's loader program, it appears that this program would have to be an object in a top "LoadProp"· file.· Chip's program also says that pins of the loader must be connected to the Resn, 30 and 31 pins.· There is no way I can access thos pins on the Demo board - I wouldn't even want to try.· The only access to those pins is via the miniB receptacle on the Demo board.· If I tried to hack the Demo board and did something wrong, then SuperMill would die.· So...if there is anyway this can be done, it will have to be via the Demo board miniB connector.· Does this make the whole project impossible?
i noticed a button on the F8 screen - Save full EEPROM file.· Is there anyway this could be saved, then sent to the shop PC via my router, then loaded into the Demo board via USB?· The shop PC runs on Windows ME so I really don't know how it could be accomplished.· Maybe I'm grasping at straws.· If you can help, that would be great.· If this thing appears like it is doomed to failure, then I guess my only option is another XP computer in the shop.
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
PUB Connect(0, 1, 2, 1, loadRun, @loadme) : Error
' pa0 on master to resn on target (out from master to reset target)
' pa1 on master to pa31 on target (out from master, in to target)
' pa2 on master to pa30 on target (out from target, in to master)
' targets only version 1 of propeller romware
' sends command 1 for loadrun (1 set in the enumeration constant)
' @loadme is the starting address of the binary image that will be loaded into the target.
But I don't see how to get past the USB situation with your current setup in the shop.
On the other tack, once the binary or hex image of the file is saved and delivered to a PC or PDA, it shoud be possible to run a program that twiddles the bits on an output port in the manner necessary to program a Prop with that image. That would be a relatively simple program and might run on your shop computer, but I don't recall offhand if anyone has reported here on the list about having written or started such a standalone object loader.
The Prop uses a ratiometric scheme to represent the 0s and 1s that are transmitted serially. A "1" is a pulse of duration t, and a "0" is a pulse of duration 2t, where the exact value of t does not matter. The target prop presumably tracks that duration dynamically. For this to be encoded on a standard bytewise serial port, one byte of eeprom data becomes several bytes of transmitted data, but it still doesn't take very long to transmit 32k. The preamble requires that the Prop be reset while the level on pa31 is high (BREAK condition). Then there is an exchange between the master and the target that involves an LFSR (linear feedback shift register) seeded with the letter "P", followed by a check of the target Prop version number, the command for the operation to be performed, the number of bytes to be transmitted (taken from the image file locations 8 and 9), then the actual binary data. It finishes up with a checksum verification (I'm not sure where the checksum is transmitted), then an eeprom burn (if the command>1, with delay for programming and verify). That's it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
· I've done quite a bit if business with TigerDirect.com and they have the best computer prices that I can find... that includes laptops too.· Check with them if you're on a tight budget.· I have an after Thanksgiving e-mail flyer from them with two laptops at $399.
Tim
Sid
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?
Newzed@aol.com
·
Tim
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com