Propeller hooked up to a hard drive
Would hooking a hard drive to a bunch of propellers be a possibility. I read chip's on another topic the idea to hoop up a couple hundred of propellers to make a super computer. Wouldn't you need a hard drive for data storage? I have no idea what pins to use or how fun (not really) the connections would be. I bet though, that if you constructed a super computer out of inexpensive processors, i bet you could hook up a hard drive just for fun.
Comments
Regards,
Craig
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -
"If Python is executable pseudocode, then perl is executable line noise."
"The best accelerator available for a Mac is one that causes it to go at 9.81 m/s2."
"My software never has bugs. It just develops random features."
"Windows isn't a virus, viruses do something."
"Programmers are tools for converting caffeine into code."
"Enter any 11-digit prime number to continue."
But, you are correct that you'd need mass storage if you did have one... Right now, I'm thinking that Rokicki's SD card interface is the best way to go for the Prop.
If someone is looking for a more potent chip I think the Tile64 from TILERA will be the best choice.
www.pjrc.com/tech/8051/ide/wesley.html
You can connect any of several USB host subsystems to a Propeller. The FTDI Vinculum VDrive2 is one such. GHI Electronics has its USBwiz and uALFAT devices. Any of these will work with a USB hard drive plugged into them and you can read directories and read and write files.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I hear and I forget. I see and I remember. I do and I understand
-Confucius
Don't let all of this talk confuse you.
What you could end up with is a SuperController... not a supercomputer. There are no benchmarks that allow a fair comparison of supercomputers to supercontrollers... they are different animals. There are good reasons to build a supercontroller. AND there will always be alternatives to building one with a Propeller. BUT if you start now, learn everything you need to know ... which takes a while, you won't have wasted one moment of your time. Your study will return dividends beyond your wildest imagination, and you will have been studying the right controller, at the right time, with the right focus[noparse]:)[/noparse]
Hooking up a USB thumbdrive seems like a good way to go. I don't know what the throughput would be, but it is do-able. And if you do it now, rather than later, you will be well ahead for having done it.
Rich
I guess a lot depends upon what one's idea of fun is. I'd say it would be a lot of fun, but probably some hard work as well.
A lot of the code I expect would be common for IDE/MicroDrive/CF Card so I can see a use for that even though SD and VDrive would be the easiest to interface to. I see a lot of benefit in re-using older technology than landfilling it and the more examples of how to connect anything to the Propeller the better. An IDE interface opens the door to CD-Rom and DVD control, and that could take the Propeller in quite unexpected directions.
I see all potential projects as beneficial, even if it does just prove it's neither sensible nor the best way forward.
just my $0.02,
Craig
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -
"If Python is executable pseudocode, then perl is executable line noise."
"The best accelerator available for a Mac is one that causes it to go at 9.81 m/s2."
"My software never has bugs. It just develops random features."
"Windows isn't a virus, viruses do something."
"Programmers are tools for converting caffeine into code."
"Enter any 11-digit prime number to continue."
datatransfer was VERY slow, but it worked.
I attached the java files that hold·the required routines to read and write sectors.
I am sure the Propellor can do much better if the interface is done directly from
Propellor pins. You need 16 pins, but CD1 and BUSY can be left out, to make it 14.
Be sure to install 1k series resistors because CF cards output 5V signals.
(See attached schematic).
regards peter
I did it for hobby reasons - to have fun, and to learn how to do it, rather than for business reasons, for some specific project or purpose.
It was a lot of fun, especially when I got that first text file to scroll down the LCD.
It was much easier to interface than an SD card. The main difficulty was the number of wires to connect. Connecting directly from the propeller to the hard drive connector took just about every IO pin other than those used for programming and an LCD display.
I'm still hacking around with hard drives, but not directly from the propeller. I made an SX52 interface board that the HD plugs into and that presents a bidirectional byte-wide IO bus, like the PC enhanced parallel port, and I'm just now building the companion 5 volt bidirectional byte-wide parallel port onto my homemade propeller protoboard to communicate with it.
There's no need to stick with FAT filesystems. It might be easier (or more fun) to make a propeller file system instead, depending on what the purpose of the HD is; whether you plan to share the HD between the propeller and a PC, or not.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio
PropNIC - Add ethernet ability to your Propeller!
SD card Adapter
Should do, transfer doesn't have to be done via DMA and can be done by polling, as slow as you want it. You'd need a shift-register to return the data being read so you've added quite an overhead with a significant reduction in transfer speeds.
You'll still have to wire-up those lines somewhere.
Added : Take a look at the I2C link in Peter Verkaik's post - that's what he's done for CF.
It might seem a shame to 'waste a Propeller' because so many IO lines are tied up but it has some advantages if you can dedicate a Propeller to the task; that can give an SPI or I2C Slave interface to the main controller, and you can do some degree of caching to help speed up transfer rates. If it can be gotten down to just 14 pins that's not so bad anyway.
I'll agree that I cannot see many applications which would need a hard disk and SD would likely suffice. "Cool" would be a good enough reason to do it, and that satisfaction like David B got for achieving a result. Another project to add to the list
Post Edited (hippy) : 11/1/2007 6:25:58 PM GMT
As I hack around with MMC/SD cards and DRAM and hard disks, it seems like I'm continually struggling with what's the best trade-off between speed and interface hardware complexity and the number of wires in the interface. It's like that old joke about software design - "you can have it good, fast, or cheap: pick any two".
I'm hoping that the byte-wide interface I'm working on now will work out for most devices.
in total, because it is not possible to skip part of a sector. Besides the I2c interface I also made
an interface using a SX28. Problem there was not enough ram to hold a complete sector
so I ended up accesing a sector in 16 byte chunks. The propeller can hold an entire sector,
so you can have a very cheap interface: just a male header and some resistors.
regards peter
Sure you can ease 5v levels down to the prop using a resister, but can the prop exceed the Vh threshold going back through the resistor to the hard drive?
This was discussed a little over a year ago and I am glad to see it resurface. No, efficently there is no reason for it, but for some like me, most of my "of the top of my head" ideas are not in the budget. They get built from canabolized computers, monitors, microwaves etc.
With the amount of hard drives stacking up around here I would love to see more done with them than target practice.
"Although the disc's inside do look really cool when you hang them from your rear view mirror!"
PS. Thank you deSilva for the link. I have this already from this same guy, but it was in a white page. This is much easier reading!
Post Edited (bambino) : 11/1/2007 11:55:23 PM GMT
In detail, I used a couple of 3-state TTL drivers with schmidt inputs to convert the propeller 3.3V to 5V for driving the HD data bus. For the reverse direction, I had jumpered each of the 16 TTL buffers with a 3.3K resistor, so when the chip was tri-stated, and the propeller ports set to input, the HD could drive the propeller through the resistors. That was for the 16 bit data bus. Probably an equally good alternative might have been to have the propeller drive a couple of bidirectional 5V buffers, like the 74HCT245, through 1K resistors, but I didn't try that.
There are also a bunch of address and control lines on the hard drive. I had the propeller operate a shift register to drive the 5 address lines (just to reduce the pin count a little, from 5 to 2), and connected a few more propeller lines through another schmidt-triggered TTL buffer (74HCT14) to drive a few other lines directly, like the 3-state enable, and the HD READ, WRITE and address latch pins. I think I ignored some of the hard drive status pins.
I've since taken that interface apart, so I'm working from memory and could be wrong in some of those details, but that's the general idea of my "direct" connection.
I really meant "direct" in that there was no major remapping of the 16-bit data bus and control lines; they were controlled by the propeller. In contrast, the SX52 interface I've been making receives requests to read a sector by address, then it performs all of the HD control, returning 512 bytes over its 8-bit bus. I think of that as more of an indirect control of the HD.
I can still remember when a good friend of mine (and an IBM salesman) said to me... that's a 10 MEGABYTE HARD DRIVE!!! Who would ever need more than that?
We have some really talented gamers here. 3D photo-realistic backgrounds can be pre-computed and stored on a hard drive... and right now there is nobody doing it.
Rich
I should have said "Pre-render" 3D spaces in full stereoscopic glory[noparse]:)[/noparse] stored as mixed maps and video data and re-rendered with minimal fuss[noparse]:)[/noparse] For backgrounds purposes ... of course. Full interaction would require a couple of Props, but isn't really required to do something new.
Rich