David Given
3c17e74f6d
Bump the protocol version to ensure people upgrade.
2022-03-26 21:54:29 +00:00
David Given
c9d1d72ba3
Merge in the libusbp changes.
2021-12-12 19:50:33 +00:00
David Given
d157b7b05d
Make libusbp work on Windows; rework the Microsoft-specific bits of the
...
firmware to match. This does at least allow us to get rid of the patcher.
2021-12-12 17:25:24 +00:00
David Given
8d04931f9f
Turns out the high density pin is asserted when _double_ density. Set it
...
correctly.
2021-12-10 20:07:02 +00:00
Howard M. Harte
42f858267c
Hard Sectors: Fix index_irq assertion.
...
The index_irq could trigger one sector too late, in the case where
index_irq was reset just before the sector pulse was received.
Check the duration of the time between pulses before propagating the
hardsec_index_irq_primed to index_irq.
While this change is required for reading and writing North Star
floppies (due to lack of positioning information in the sector header)
it is also helpful for reading Micropolis disks, as currently,
occasionally the first sector will be missed, and will be found on the
next rotation of the disk. This change is required for reliably writing
Micropolis disks though, when that functionality becomes available.
2021-05-16 15:41:55 -07:00
David Given
a11d0e75c8
Merge pull request #200 from ejona86/hard-sectors
...
Add firmware support for hard sectors
2021-01-08 23:20:40 +01:00
Eric Anderson
f1506d0dbd
Add firmware support for hard sectors
2020-12-24 17:39:52 -08:00
David Given
b374340303
Try multiplexing SIDE1 onto DIR.
2020-09-10 22:07:47 +02:00
David Given
c78ed2c6ad
Add the TK43 pin, which goes low when seeking to track 43 or above.
2020-09-10 21:48:30 +02:00
David Given
2b53ac057c
Fix some bugs which allow erasing tracks with F_FRAME_WRITE_CMD to work again.
...
(F_FRAME_ERASE_CMD always worked.)
2020-05-13 23:45:58 +02:00
David Given
0644d6d965
Remove some stray tracing (which was causing problems). Fix a potential problem
...
where sampleclock posedges could be lost in the sequencer.
2020-03-29 23:11:53 +02:00
David Given
a075694d8e
Rewrite the sequencer to work with the new six bit bytecode. Fiddle with the
...
USB stuff a lot in an attempt to resolve the weird packet loss issue.
2020-03-29 15:10:35 +02:00
David Given
00087cbb6b
Fix a catastrophic DMA setup bug which was causing (probably) every other byte
...
of data to be mixed up with every other byte... but as every other byte was a
0x80 we never noticed up until now.
2020-03-20 00:06:58 +01:00
David Given
1b48ea20c4
Remove the cruncher.
2020-03-20 00:06:07 +01:00
David Given
1025bd857b
Don't crashloop if the USB's not connected, as it causes the drives to be
...
constantly reprobed (which runs the motor).
2020-02-27 22:32:27 +01:00
David Given
c47a563790
Don't seek to track -1 on homing (it appears to upset 8" drives). Detect which
...
drives are present, so that if only a single drive is attached then it's always
track 0, regardless of which connector it's on.
2020-02-24 21:47:40 +01:00
David Given
2df9920209
Rename test bulktransport to test bandwidth; avoid watchdog failures while the
...
bandwidth test is running.
2020-02-18 19:12:52 +01:00
David Given
1a6c6b5420
The bandwidth tester now tests bandwidth in both directions. It looks like my
...
default USB port only gets about 500kB/s write bandwidth. However, when plugged
into a port with 850kB/s, I still get underrun errors...
2020-02-17 23:58:40 +01:00
David Given
edc56d44d6
Non-functioning archive checkin: You can only have 120-odd DMA buffers, so my
...
last 'fix' was in fact non-functional.
2020-02-17 23:28:40 +01:00
David Given
ef4eff0195
So writing now works, but only if USB DMA is enabled. But that breaks reading.
...
I've worked round this in a simple but brute force manner and it now looks as
if reading *and* writing work, more or less. There does still seem to be the
odd bad sector when writing 1440kB disks.
2020-02-17 21:41:01 +01:00
David Given
df8d45bf66
Rework the output fifo to be a bit more correct about the sync signals, which
...
in turn allows the sequencer to lose less time --- this gets the effective
clock rate down to about 1.01us. However we still seem to lose the last sector
on 18-sector disks and there are some disk reads so something is still wrong.
2020-02-17 00:13:13 +01:00
David Given
29bdfc043a
Allow fractional revolutions and non-synced reading. Find more things which
...
need fixing in the firmware sampler.
2020-01-27 22:52:25 +01:00
David Given
933ffe7ab4
Find and attempt to fix a memory corruption error when sampling --- if the next
...
fragment arrives from the sampler before usbbuffer has finished being
transmitted via USB, it'll get overwritten. I've disabled DMA USB to make the
code easier to understand and made sure that we flush things more rigorously.
This may help the weird pipe errors, too.
2020-01-27 21:40:27 +01:00
David Given
b0c675c589
Improved error messages when using fe-rpm and it doesn't work.
2020-01-12 01:34:12 +01:00
David Given
d77841c3b7
Add the ability to fake the index pulse source, allowing old drives to be used
...
with FluxEngine.
2020-01-12 01:23:47 +01:00
David Given
edbe624c5a
Hopefully, finally, fix the hang-on-read issue.
2019-12-12 20:09:49 +01:00
David Given
44e2334815
Typo fix. Make sure that both drives get deselected when the motor stops (to
...
make the LEDs go out).
2019-12-12 00:17:59 +01:00
David Given
072a097003
Archival (non-functioning) checkin of Verilog-based sampler code. Sadly, we've
...
run into size limits for the device, and I need to slim down.
2019-12-11 22:51:27 +01:00
David Given
a66e704bab
Start ripping out the awful UDB-based sampler code, replacing it with a Verilog
...
one and a standalone FIFO. This gets the FIFO working.
2019-12-11 21:13:57 +01:00
David Given
32bb956710
Detect voltage levels *correctly*.
2019-12-11 00:05:34 +01:00
David Given
f436d6b582
Add a feature where we can measure the FDD bus signal voltages using the PSoC's
...
ADCs. Increase the track step pulse width to 6us, because.
2019-12-10 22:36:18 +01:00
David Given
91d6e9aeb9
Rewrite the sequencer engine with a separate fifo component and a pure verilog
...
sequencer --- much easier to understand. We can write disks again!
2019-11-25 20:52:13 +01:00
David Given
a40b26ff46
Archival checkin for trying to figure out why writes no longer work.
2019-11-24 15:14:32 +01:00
David Given
56a36072f7
Sampler state machine cleanup; more debugging tools for the logic analyser.
2019-07-12 21:09:53 +02:00
David Given
d1c2e2b611
Better handling of seeks (plus tracing).
2019-05-01 13:06:56 +02:00
David Given
46b48f4638
Ignore the /DSKCHG line --- it doesn't add a lot of value (it allows us to
...
rehome if people change disks while the motor is running) and it means that
people need to worry about whether their drive produces /DSKCHG or /READY.
2019-04-21 01:15:30 +02:00
David Given
da8cae61b7
Add a debug UART back on pin 2.0 to get some semblance of debug information off
...
the board. Discover a fun edge case where output transfers that were an exact
number of frames weren't being terminated correctly.
2019-04-06 17:59:23 +02:00
David Given
707563bec6
Hopefully fix the underrun issue when reading from HD disks.
2019-03-27 22:10:58 +01:00
David Given
098b2371a4
Crunched datastreams are now used when writing.
2019-03-27 21:58:41 +01:00
David Given
bcc5a5f2cd
Interim but working support for crunched data streams when reading from the
...
device; writes haven't been converted yet. Reduces the bandiwidth from about
800kB/s to about 500kB/s, which is about what I thought.
2019-03-26 23:03:19 +01:00
David Given
0453837c03
The high-density flag now actually changes the high-density line to the drive.
2019-03-26 20:05:16 +01:00
David Given
45eaf14133
Add a flag for setting the drive to high density mode.
2019-03-23 11:32:55 +01:00
David Given
4fe27afe9f
Backed out changeset cd5bed99b0b4 --- erroneously pushed to master.
2019-03-24 17:59:17 +01:00
David Given
7f9a85ff77
Add a flag for setting the drive to high density mode.
2019-03-23 11:32:55 +01:00
David Given
f20ad8368a
Non-working basis of a UDB datapath based sequencer. No more clock errors.
2019-02-28 01:03:58 +01:00
David Given
864a3c0e4b
Use 16-bit DMA transfers now we have a FIFO. Better CPU efficiency!
2019-02-27 23:56:17 +01:00
David Given
4b0c7b095b
FINALLY make the UDB-based sampler work... although without rollover, yet.
...
Sadly I seem to also have broken the sequencer.
2019-02-27 23:00:47 +01:00
David Given
039d6b5fdd
More fiddling with the UDB sampler. Still doesn't work.
2019-02-26 22:37:45 +01:00
David Given
d3df012468
Initialise the FIFOs. Doesn't do any good.
2019-02-25 23:52:44 +01:00
David Given
74c6c6db56
Non-working attempt at replacing the sampler with a UDB datapath (so I can use
...
the FIFO).
2019-02-24 14:50:33 +01:00