Welcome, Guest. Please login or register.

Author Topic: Floppy emulator  (Read 60988 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #164 from previous page: February 02, 2008, 12:33:41 PM »
Quote

arnljot wrote:
@tnt23

Have you considered supporting the IPF format of www.softpres.org?

That would make it a "complete" floppy emulator for the amiga :)


IPF is not an open format. (Or rather, has not been one when I checked their site lately.) Certainly they provide compiled libraries, but not for the AVR.
 

Offline whiteb

  • Hero Member
  • *****
  • Join Date: Feb 2006
  • Posts: 739
    • Show only replies by whiteb
Re: Update
« Reply #165 on: February 02, 2008, 12:42:32 PM »
Quote

tnt23 wrote:
Quote

arnljot wrote:
@tnt23

Have you considered supporting the IPF format of www.softpres.org?

That would make it a "complete" floppy emulator for the amiga :)


IPF is not an open format. (Or rather, has not been one when I checked their site lately.) Certainly they provide compiled libraries, but not for the AVR.


That is why there is no IPF support for Minimig, Only Softpres release the binary libraries.
A4000D - CSMKII//128MB/IDE CF/Indivision Scandoubler
A1200
A1000

(And now a Minimig) :>)
 

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #166 on: February 02, 2008, 12:57:47 PM »
Quote

Darrin wrote:
This is the first I've heard about this project (I must have had my head burried in the sand) and it sounds great.  You can mark me down as a potential customer.  I certainly wouldn't mind 2 units for my A2000, 2 for my A3000 (which has some really iffy drives that keep "forgetting" they have floppies inserted) and one in a formfactor that allows it to fit into a 5.25" drive bay for use as DF1 with an A1200 tower.

Great work.   :-)


The PCB is more or less exactly the size of a real FDD. The mounting holes, unfortunately, do not match. The whole thing will fit into 5.25" bay, only the LCD and the buttons will be hard to use :) The LCD is 48mm tall, probably it can be desoldered from the PCB and hacked into 5.25" bay plastic panel along with buttons. (if that plastic panel is wide enough)
 

Offline arnljot

Re: Update
« Reply #167 on: February 02, 2008, 01:14:39 PM »
Quote

tnt23 wrote:
IPF is not an open format. (Or rather, has not been one when I checked their site lately.) Certainly they provide compiled libraries, but not for the AVR.


Argh, I'm not so keen on softpress. But I am keen on IPF.

Can we ask them nicely? Ask them to start behaving more like good internet amigians, and less like... I'll be carefull so that I don't get smacked over the head with the posting guidelines.

But I would like to see the floppy emulator in a 3.5" form factor, and with ADF and IPF read and write capabilities.

What are the buttons and LCD screen used for?

For an amiga user I think there should be the following funtionality:
Button 1: Instert empty disk on card (Empty non formated disk is sensed by the amiga
Button 2: Switch between *.adf or *.ipf
Button 3: Cycle between images (, *1.adf|ipf, *2.adf|ipf, etc etc)

I see that button 2 can cycle between more formats for other platforms, and that more buttons can be made to make use of the lcd and add a simple gui. But I think that for day to day usage it should adhere to KISS as much as possible?
A posting a day keeps the sanity away...
http://www.arnljot.com
 

Offline Darrin

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: May 2002
  • Posts: 4430
    • Show only replies by Darrin
Re: Update
« Reply #168 on: February 02, 2008, 01:26:35 PM »
Quote

tnt23 wrote:
The PCB is more or less exactly the size of a real FDD. The mounting holes, unfortunately, do not match. The whole thing will fit into 5.25" bay, only the LCD and the buttons will be hard to use :) The LCD is 48mm tall, probably it can be desoldered from the PCB and hacked into 5.25" bay plastic panel along with buttons. (if that plastic panel is wide enough)


Thanks for that info.  We're all used to having "ugly hacks" hanging out of our Amigas.  A few tie-wraps, some duct tape and a little extra wiring and it will look perfect.   :-D
A2000, A3000, 2 x A1200T, A1200, A4000Tower & Mediator, CD32, VIC-20, C64, C128, C128D, PET 8032, Minimig & ARM, C-One, FPGA Arcade... and AmigaOne X1000.
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show only replies by freqmax
Re: Update
« Reply #169 on: February 02, 2008, 02:13:15 PM »
Regarding IPF, why bother?, must be simpler to create our own free bitexact format?
It's not exactly rocketscience.
 

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #170 on: February 02, 2008, 02:34:11 PM »
Quote
arnljot wrote:
Quote
tnt23 wrote:
IPF is not an open format. (Or rather, has not been one when I checked their site lately.) Certainly they provide compiled libraries, but not for the AVR.

Argh, I'm not so keen on softpress. But I am keen on IPF.
Can we ask them nicely? Ask them to start behaving more like good internet amigians, and less like... I'll be carefull so that I don't get smacked over the head with the posting guidelines.


I think I've tried to ask for the IPF internals. Anyway, let's ask them again, no big deal.

Quote
But I would like to see the floppy emulator in a 3.5" form factor, and with ADF and IPF read and write capabilities.


In fact, it is alreay size of a 3.5", except for the mounting holes :)

Quote
What are the buttons and LCD screen used for?
For an amiga user I think there should be the following funtionality:
Button 1: Instert empty disk on card (Empty non formated disk is sensed by the amiga
Button 2: Switch between *.adf or *.ipf
Button 3: Cycle between images (, *1.adf|ipf, *2.adf|ipf, etc etc)
I see that button 2 can cycle between more formats for other platforms, and that more buttons can be made to make use of the lcd and add a simple gui. But I think that for day to day usage it should adhere to KISS as much as possible?


The LCD and buttons are mostly for convenient browsing through flash card contents, like this:
http://milliways.chance.ru/~tnt23/pics/misc/IMG_0246.JPG

Different buttons mapping and alternative GUI is possible, although somewhat time consuming to build.
 

Offline Darrin

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: May 2002
  • Posts: 4430
    • Show only replies by Darrin
Re: Update
« Reply #171 on: February 02, 2008, 03:23:30 PM »
Quote

tnt23 wrote:The LCD and buttons are mostly for convenient browsing through flash card contents, like this:
http://milliways.chance.ru/~tnt23/pics/misc/IMG_0246.JPG

Different buttons mapping and alternative GUI is possible, although somewhat time consuming to build.


That picture looks great.  How is the LCD attached to the card?  I'm wondering if the screen itself can be mounted in various places while the drive itself is stashed inside the Amiga's casing and then linked via a long cable.

For an A1200, a small hole could be drilled up from the underside and the screen mounted either directly above the power/drive lights or on the "grill" behind the lights.  On big box amigas, in could be mounted onto a flat plastic cover over the drive bay (and similar for towered Amigas).

Attaching the buttons via wire to connectors on the mobo would help too, or at least having additional headers by the buttons to run optional extended buttons would help.  
A2000, A3000, 2 x A1200T, A1200, A4000Tower & Mediator, CD32, VIC-20, C64, C128, C128D, PET 8032, Minimig & ARM, C-One, FPGA Arcade... and AmigaOne X1000.
 

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #172 on: February 02, 2008, 03:42:21 PM »
Quote

Darrin wrote:
Quote
tnt23 wrote:The LCD and buttons are mostly for convenient browsing through flash card contents, like this:
http://milliways.chance.ru/~tnt23/pics/misc/IMG_0246.JPG

Different buttons mapping and alternative GUI is possible, although somewhat time consuming to build.


That picture looks great.  How is the LCD attached to the card?  I'm wondering if the screen itself can be mounted in various places while the drive itself is stashed inside the Amiga's casing and then linked via a long cable.


LCD is soldered to the board. It also has a backlight module,  both form a fragile sandwich not quite suitable for detached usage. Maybe a separate daughterboard for them, and for buttons and card(s) could be an option.

Quote
For an A1200, a small hole could be drilled up from the underside and the screen mounted either directly above the power/drive lights or on the "grill" behind the lights.  On big box amigas, in could be mounted onto a flat plastic cover over the drive bay (and similar for towered Amigas).


I myself feel very sorry for drilling and cutting my Amigas cases :)
As for the drive bay, seems like it is a bit narrower than the LCD itself (42mm against 48mm).

Quote
Attaching the buttons via wire to connectors on the mobo would help too, or at least having additional headers by the buttons to run optional extended buttons would help.  


It is possible to not solder buttons on the PCB, using their  pin holes to solder remote buttons wires. Or even leave soldered buttons in place and solder wires to them from the bottom side of the board. Connectors could be more convenient.
 

Offline arnljot

Re: Update
« Reply #173 on: February 02, 2008, 10:34:35 PM »
Quote

tnt23 wrote:
LCD is soldered to the board. It also has a backlight module,  both form a fragile sandwich not quite suitable for detached usage. Maybe a separate daughterboard for them, and for buttons and card(s) could be an option.


I think I'd prefere the buttons on individual wires (like a4k leds and key) and the LCD sandwich on a separate board connected with a ribbon cable.

This way it's most flexible for users to choose how to mount and use the emulator.

What about the mounting holes, is it possible to change that to fit most amiga chinon drives?

Also, have you been contacted by, or considered to coperate with Vesalia, AmiKit or ACube to manufacture and distribute this puppy?
A posting a day keeps the sanity away...
http://www.arnljot.com
 

Offline FrenchShark

  • Full Member
  • ***
  • Join Date: Jan 2004
  • Posts: 181
    • Show only replies by FrenchShark
    • http://www.arcaderetrogaming.com
Re: Update
« Reply #174 on: February 03, 2008, 12:51:40 AM »
Quote

tnt23 wrote:
@FrenchShark

- No, I let output signals float. There is a 3-state buffer between my MCU and the bus, and when the emulator is not accessed, it switches its outputs to Z. I simply didn't care much as it worked for Amiga and PC. I guess both have own pull-ups to accomodate any floppy (with or without line termination).
On the Atari ST, however, the emulator failed as there seemed to be no internal pull-ups. I have added a few in a new revision of PCB because of that ST case.

The rule on the computer side is to have a 1K pullup resistor for the inputs. I guess that on the drive side the inputs must have a 4.7K pullup resistor. With your microcontroller, you must drive your signal low or hi-Z, never high. This is for the case you share the bus with another drive.

Quote

- My ATmega256 runs at 16MHz. For DD MFM flow, every bit takes 2us, or 32 one-clock 62.5ns instructions. Here is how the output looked in early designs: http://milliways.chance.ru/~tnt23/amiga/mfm.jpg
Now it is much the same, only the "1" are wider.

I have seen that scope trace already. I was surprised by the duty cycle. Was it an issue in your design ?

Quote

- I don't do write precomp, mainly for the fact I am not aware of it :) Can you tell a few words on it?
There is an IDE/Compact flash port in the emulator, which is completely software driven. If I ever manage to use it to attach an external FDD for 'ADF Bakery', I will probably have to deal with write precompensation.

Apparently, write precomp is used for the innermost cyclinders because of the higher bit density. I still need to document myself on the subject. :-P. The best sources seems to be the patents websites and the floppy drive datasheets.

Quote

BTW, Amiga Floppy Project (http://www.techtravels.org/amiga/amigablog/) also is based on Parallax chip.


This a SX-48 (a super PIC) not a Propeller.
The Propeller is eight 32-bit RISC CPUs in a chip with 32KB of RAM and 32 I/Os. It is a perfect fit for this kind of application.

Regards,

Frederic
 

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #175 on: February 03, 2008, 08:51:03 AM »
Quote
FrenchShark wrote:
The rule on the computer side is to have a 1K pullup resistor for the inputs. I guess that on the drive side the inputs must have a 4.7K pullup resistor. With your microcontroller, you must drive your signal low or hi-Z, never high. This is for the case you share the bus with another drive.


Probably a buffer with open drain outputs should be used. In my A1200 setup, the emulator and internal DF0: drive seemed to work flawlessly. As far as I understand, only the drive whose SELECT line is active has the right to pull shared bus lines low.

Quote
I have seen that scope trace already. I was surprised by the duty cycle. Was it an issue in your design ?


Since it is a high to low transition that counts, it worked even with these timings. Now the duty cycle is strictly 50%.

Quote
Apparently, write precomp is used for the innermost cyclinders because of the higher bit density. I still need to document myself on the subject. :-P. The best sources seems to be the patents websites and the floppy drive datasheets.


I will dig the topic. If the precompensation effectively stretches or squeezes timings, it could be handled by just relaxing these when generating/reading bit cell flow.

Quote
This a SX-48 (a super PIC) not a Propeller.
The Propeller is eight 32-bit RISC CPUs in a chip with 32KB of RAM and 32 I/Os. It is a perfect fit for this kind of application.


How fast it can be clocked? I was thinking of switching to some low budget ARM chip from Atmel, with at least 50MHz clock rate.
 

Offline tnt23Topic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 195
    • Show only replies by tnt23
Re: Update
« Reply #176 on: February 03, 2008, 09:05:24 AM »
@arnljot

A separate board for LCD and buttons certainly can be designed. Mounting holes will definitely be moved to right places in the future, this will require components and routing rearrangements to be made.

I don't think AmiKit or Vesalia will be interested in manufacturing the emulator, at least not in small quantities.
 

Offline Darrin

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: May 2002
  • Posts: 4430
    • Show only replies by Darrin
Re: Update
« Reply #177 on: February 03, 2008, 02:04:05 PM »
Quote

tnt23 wrote:
@arnljot

A separate board for LCD and buttons certainly can be designed. Mounting holes will definitely be moved to right places in the future, this will require components and routing rearrangements to be made.


I think that if you build it that way then it will help to keep the costs down as one design will fit all needs.  The same boards can be subsituted into all model Amigas with either a custom faceplate or holes added as required (or a simple box and PSU for an external drive).

If you do any sort of production run then please let me know.   :-)
A2000, A3000, 2 x A1200T, A1200, A4000Tower & Mediator, CD32, VIC-20, C64, C128, C128D, PET 8032, Minimig & ARM, C-One, FPGA Arcade... and AmigaOne X1000.
 

Offline FrenchShark

  • Full Member
  • ***
  • Join Date: Jan 2004
  • Posts: 181
    • Show only replies by FrenchShark
    • http://www.arcaderetrogaming.com
Re: Update
« Reply #178 on: February 03, 2008, 03:54:27 PM »
Quote

tnt23 wrote:

I will dig the topic. If the precompensation effectively stretches or squeezes timings, it could be handled by just relaxing these when generating/reading bit cell flow.


Yesterday night, I have found more information in the patents : during write, a delay is introduced in the data part of the MFM bit cell. The clock part is not delayed (if you delay both, there is no delay anymore.:lol:). This is done by the floppy drive controller not by the drive itself so, it should not impact your design (maybe some delays would be slightly off during write :-?). Usually, for 2DD floppies, there is no precomp. It is important for 2HD ones.

Quote

Quote
This a SX-48 (a super PIC) not a Propeller.
The Propeller is eight 32-bit RISC CPUs in a chip with 32KB of RAM and 32 I/Os. It is a perfect fit for this kind of application.


How fast it can be clocked? I was thinking of switching to some low budget ARM chip from Atmel, with at least 50MHz clock rate.


It can run up to 100 MHz. Each instruction takes 4 cycles.
But with 8 cores, you have 200 MIPS of CPU power. You can assign the I/Os to any core. Each core has 2 KB of RAM (512 instructions). There is 32KB of shared RAM to do data exchange between the cores (perfect for buffering a whole track).
You can get the CPU as a DIL40, QFP44 or QFN44. The unitary price is $13.

Regards,

Frederic
 

Offline SKAN

  • Full Member
  • ***
  • Join Date: Jun 2002
  • Posts: 123
    • Show only replies by SKAN
Re: Update
« Reply #179 on: February 04, 2008, 02:25:32 PM »
@ tnt23

Quote


I don't think AmiKit or Vesalia will be interested in manufacturing the emulator, at least not in small quantities.


Go ask ACube Systems then!  :-D
[...emulation is for sissies...]