NobodyIsHere
Veteran Member
- Joined
- Dec 21, 2006
- Messages
- 2,404
Hi! One idea I've been kicking around for a long time is a high speed floppy disk sampler like a Catweasel but cheaper and completely open source. I think this would be doable using a Propeller or other uC, a SRAM, and some interface logic.
Basically the Propeller (or other uC) has 32 IO pins. Set 18 of them to the Shugart interface. You need 18 because although there are 17 pins, pin 34 (DC/RDY) is bi-directional. The 18 pins would need to be buffered through 3 74LS367 chips.
For the 16 remaining Propeller/uC pins, 2 are needed for the serial programming interface to the PC, 2 are needed for the EEPROM, and 2 are needed for the general purpose serial port. That leaves 8 remaining pins.
Use the 8 remaining pins to interface to a 128K SRAM chip. However, the SRAM would be accessed in a bit serial fashion. Use an 8 bit shift register for the data bits, and a 16 bit counter for the address lines A0-A15.
You would need these pins for the interface
RAM_CS
RD
WR
Address_Clear
Address_Increment
Data_Bit
Data_Increment
A16
I think you'd need these chips minimum
1 Propeller/uC
1 128K SRAM
3 74LS367s
1 8 bit shift register
2 8 bit counters with carry
a small group of passive components and transistors for the serial programming interface
1 EEPROM for Propeller/uC
1 MAX3232 plus components for regular serial interface or hardwire Propeller to 16C550 if installed on a PC prototyping board. Would need IO decoding for 16C550.
What would be cool about this design is that the Propeller (or other uC) runs at 80MHz which should be fast enough for sampling the floppy disks RAWREAD data stream at 4 Mbps (or 2 Mbps if you include the index hole). That should be enough to almost fill a 128K SRAM with a single tracks data (assume 1 bit resolution) and give a pretty good idea of the contents of the track for decoding.
The hardware would be pretty straight forward but the software for the Propeller (or other uC) and the PC post processing software would be quite a challenge.
The idea is generic enough that any uC could probably do it if it were fast enough. I am assuming 10-20 uC clock ticks per sample.
The above circuit could be done entirely with standard DIP chips if you use a Propeller. Possible a 68 pin PLCC PIC if you needed more IO pins.
Does that sound like a fun project?
Thanks and have a nice day!
Andrew Lynch
PS, I recall Phil Pemberton (SP?) on CCTALK was working on a similar idea but I don't know what came of it. I don't think it was every released.
Basically the Propeller (or other uC) has 32 IO pins. Set 18 of them to the Shugart interface. You need 18 because although there are 17 pins, pin 34 (DC/RDY) is bi-directional. The 18 pins would need to be buffered through 3 74LS367 chips.
For the 16 remaining Propeller/uC pins, 2 are needed for the serial programming interface to the PC, 2 are needed for the EEPROM, and 2 are needed for the general purpose serial port. That leaves 8 remaining pins.
Use the 8 remaining pins to interface to a 128K SRAM chip. However, the SRAM would be accessed in a bit serial fashion. Use an 8 bit shift register for the data bits, and a 16 bit counter for the address lines A0-A15.
You would need these pins for the interface
RAM_CS
RD
WR
Address_Clear
Address_Increment
Data_Bit
Data_Increment
A16
I think you'd need these chips minimum
1 Propeller/uC
1 128K SRAM
3 74LS367s
1 8 bit shift register
2 8 bit counters with carry
a small group of passive components and transistors for the serial programming interface
1 EEPROM for Propeller/uC
1 MAX3232 plus components for regular serial interface or hardwire Propeller to 16C550 if installed on a PC prototyping board. Would need IO decoding for 16C550.
What would be cool about this design is that the Propeller (or other uC) runs at 80MHz which should be fast enough for sampling the floppy disks RAWREAD data stream at 4 Mbps (or 2 Mbps if you include the index hole). That should be enough to almost fill a 128K SRAM with a single tracks data (assume 1 bit resolution) and give a pretty good idea of the contents of the track for decoding.
The hardware would be pretty straight forward but the software for the Propeller (or other uC) and the PC post processing software would be quite a challenge.
The idea is generic enough that any uC could probably do it if it were fast enough. I am assuming 10-20 uC clock ticks per sample.
The above circuit could be done entirely with standard DIP chips if you use a Propeller. Possible a 68 pin PLCC PIC if you needed more IO pins.
Does that sound like a fun project?
Thanks and have a nice day!
Andrew Lynch
PS, I recall Phil Pemberton (SP?) on CCTALK was working on a similar idea but I don't know what came of it. I don't think it was every released.