From: Jim Brain (brain_at_jbrain.com)
Date: 2004-11-01 05:04:24
Hársfalvi Levente wrote:
> A pretty late reply...
No worries.
>> I noticed that you can adjust the reading by either the timing OR the
>> resistance, so they probably set the 256+X*2 in the ASIC, and then
>> fiddled
>> with the resistor to get the start and end they wanted. The resistance
>> changes would cancel out the accumulating effect of the mismatch, by
>> sliding the effective numbers up or down accordingly.
>
>
> Hmmm... I've played with this one, and in fact, they did not. The asic
> waits 384 + x*2 ( 0 <= x <= 63) cycles. Although I had (and I have) no
> 1351, Frank Kontros was kind to make measurements on a partially
> working 1351 he owned. The values that you can read from the POT
> registers are between ~64 and ~192 (approximately) on a PAL machine.
> You're right, the delay caused by the series resistor, and the gain
> caused by the clock difference approximately cancel each other. ...On
> the other hand, this isn't true for NTSC machines. These machines
> count faster than the 1351, thus the errors will be of the same sign,
> thus they add together.
What I meant is that If I keep the timing constant and adjust the
resistor, I can move the reading up or down as I see fit. FOr instance,
in one of my tests, I hardcoded the MCU to generate a 127 reading (256
cycles low, 127 low, 128 high, repeat). I then start adjusting the
resistors while watching the POT readings on the 64. I could swing the
reading on the 64 from 112 to 137, and I could have moved more, but that
was not the focus of this test. So, it shows me that I can setup the
timing, then adjust the resistance if the error margin is too much.
> How could the 1351 still work as intended?... Well, if you drop the
> read value's MSB, the values between 64 and 192 (or whatever they are
> around 64 and 192) will map to somewhere between 64...127 and 0...63
> respectively, with a "wrap-around" at the middle. The trick is: the
> values transmitted by the 1351 are "cyclic". It's kind of irrelevant
> if the internal counter of the 1351 start from 0 and count up to 64,
> then wrap around, whilst the values in the POT registers count from 64
> to 127, wrap around, and continue counting from 0 to 63.
True, but I'm not trying to emulate the mouse, but a real paddle, so I
need my 0-255, and I need it to be reasonable stable over the entire range.
> An AVR clocked at 8Mhz should be suitable for jitterless operation if
> I'm right...
It is, if that is ALL you are doing, or if you can accomplish what you
need in the 256 "wait" cycles, but that's not always possible.
> What's this equipment anyway, and what interface is this?
It's just some ideas I'm working on here. The idea is to create a chunk
of HW with a MCU that can plug into the joyport, and have lots of IO
options. Then, folks can program the HW "dongle" with different
programs to be different interfaces:
Emulating 1351 using:
PS/2 mouse
Serial mouse
touchpad
Emulating 64 joystick/paddles using:
PC gamepad
console gamepad
RS232 from another computer
who knows.
The idea would be to layout the PCB and put a suitable MCU on it and
make it small enough to fit in a DB9 shell. Then, people only have to
learn to program the MCU, the bulk of the HW work is done.
Jim
--
Jim Brain, Brain Innovations
brain@jbrain.com http://www.jbrain.com
Dabbling in WWW, Embedded Systems, Old CBM computers, and Good Times!
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.