Can the Propeller cogs simultaneously control two sources of RAM?
DavidSmith
Posts: 36
Couldn't find anything w forum search, sooooooo,
I want to record a continuous stream of data (approx 400,000 bytes/sec) - without interruption and AT THE SAME TIME (to retain an approximation of real time) read that data and process it.
Mechanically, it would work like a tape recorder set up for echo effect. As the tape moves, the first head writes and a short distance later (short time delay) the second head reads it and sends it on to processing (speaker for tape, in this case cpu).
I cannot simply process the input stream in real time as the processing will not be time linear (there's going to be jumping around in the data stream).
I could simply record and then process later, but I want fairly reasonable real time.
I think this could be done fairly easily w two Propellers, one writes then switches to read and the other reads and switches to write. However, can it be done w one Propeller? I think there's no problem w the cogs, they won't be asked to do much but record/read and the Parallax Product Catalog (nice catalog, by the way) is pretty clear the cogs must access on board RAM in rotation. But, would it be possible to have one cog accessing on board RAM and a second using USB mass storage or even a even a flash memory? How about TWO external USB or TWO external flash? to avoid high level conflicts w the onboard.
I want this to be a standalone oneoff and not connect to a laptop.
I want to record a continuous stream of data (approx 400,000 bytes/sec) - without interruption and AT THE SAME TIME (to retain an approximation of real time) read that data and process it.
Mechanically, it would work like a tape recorder set up for echo effect. As the tape moves, the first head writes and a short distance later (short time delay) the second head reads it and sends it on to processing (speaker for tape, in this case cpu).
I cannot simply process the input stream in real time as the processing will not be time linear (there's going to be jumping around in the data stream).
I could simply record and then process later, but I want fairly reasonable real time.
I think this could be done fairly easily w two Propellers, one writes then switches to read and the other reads and switches to write. However, can it be done w one Propeller? I think there's no problem w the cogs, they won't be asked to do much but record/read and the Parallax Product Catalog (nice catalog, by the way) is pretty clear the cogs must access on board RAM in rotation. But, would it be possible to have one cog accessing on board RAM and a second using USB mass storage or even a even a flash memory? How about TWO external USB or TWO external flash? to avoid high level conflicts w the onboard.
I want this to be a standalone oneoff and not connect to a laptop.
Comments
@David,
After hearing about using SRAM chips in parallel here on the forum, I decided to try it myself.
Here's my version. I know others have done it better and faster. If you use the first eight pins of the Prop for the data lines, the transfer rates can be higher than using other pins.
By sharing clock and chip select pins, the eight chips only use 10 Propeller pins.
I also tried stacking the modules to give 32 SRAM chips using 13 Propeller pins. The chip select line would select which stack of chips to read to or write from.
The boards underneath the memory modules are a couple of Jazzed's TetraProp boards.