fluxengine
fluxengine copied to clipboard
Request for more drive select / motor control flexibility
[Updated 8/28/2021 to reflect details on the signal lines.]
I have run into an issue trying to use my Micropolis drives with my new fluxengine. I have seen two symptoms:
- I am more or less able to access one of the drives as 0 (but that might not be drive 1 in micropolis terms)
- I am unable to access the second drive (see below)
- If I try to access the second drive as drive 1, that fails, AND the fluxengine board and/or the drive get confused - I have to shut everything off and turn it all back on to even get to drive 0
The issue is that I don't have enough control of the motor / drive select lines.
The fluxengine expects this for these pins, from what I can see:
10 MOTEA 12 DIRVEB 14 DRIVEA 16 MOTEB
Whereas the Micropolis drives expect
10 DS1 12 DS2 14 DS3 16 MOTOR
When I select drive 0 in the fluxengine config, pins 12 and 16 are driven L (logic 1 - the lines are active low), Pin 10 is driven H (logic 0) by the drive pullup. So that corresponds to DS2 and MOTOR, and so the drive in my chain jumpered as drive 2 responds. (Pin 14 is floating in this case, as I have no drive configured as DS3, so there is no pull-up on it.
When I select drive 1 in the fluxengine config, pin 10 is L, pin 12 is H (DS2 pulled up by the drive) and pin 14 is L. and pin 16 is H (pulled up by the terminator pack in the last drive in the chain). I see a drive select light on the drive jumpered as DS1, as one would expect. But, of course, because pin 16 is H there is no MOTOR signal and the drive doesn't respond.
Oddly once I do that, drive 0 ALSO no longer works until I reset everything. It's drive select light doesn't even come on. It is as though the fluxengine setup can't handle the situation where a drive does not respond well.
I can handle this, for now, via drive jumpers. But it would be nice if the software and firmware supported something as an alternative to "drive" (say, driveLines) where one could provide a hex byte to define how these four lines should be managed. So, for the first micropolis drive it might be 0x9 and for the second drive it would be 0x5 (and then drive pins 10 - 16 with the complement of those numbers, as those lines are active low).
I have seen other issues raised that could maybe be dealt with by this generalization, and it would also help with 8" drives. Also, notably, while my Greaseweazle would not handle the hard sectors, it does not have these particular issues (perhaps it always drives both motor lines L - I haven't checked.)
JRJ
I agree. I have here an Atari ST drive, and they're jumpered as drive 0 rather than drive 1 the way PC drives are, and I can't make it work. This all needs an overhaul so that the state of these pins is controlled by the client and not the firmware, to allow arbitrary settings.