Disc reader project -- quick status update
Chuck Guzis
cclist at sydex.com
Tue Dec 8 17:47:09 CST 2009
On 8 Dec 2009 at 18:12, Keith M wrote:
> My amiga disk reader doesn't sample at all. I look for falling edges
> of the pulses, clear a timer, look for the next edge, and calculate
> the time difference between two pulses. The time between pulses
> define the data, and I write out the associated data pattern to
> memory.
I don't even do that with the AVR-based one. I set one of the
counters to free-run in "capture" mode, where the edge of a pulse
causes the contents of the timer to be latched into a register. I
then store the difference between that count and the previous one,
modulo 256. A very short loop with no program-dependent latencies.
The AVRs also feature a 'noise filter" that drops any pulses less
than 4 clocks wide. I've left the filter enabled, and it seems not
to interfere with normal reading.
Similarly, writing involves operating the timer in PWM mode. As long
as the terminal count register is kept updated, everything works
flawlessly.
Most DSP chips also have timer capture mode, but can run the timers
substantially faster that 16 or 20 MHz.
--Chuck
More information about the cctech
mailing list