Help with wired PS/2 Controller, open collector levels?

Hi everybody…I am still just getting the wired PS/2 controller to work here, and I could use your help… I’ve hooked up a PS/2 controller to a PIC via the Lynxmotion adaptor cable (and, as you’ll see below, I’ve also tried it without the cable).

I’ve checked +5V and GND, and they seem to be right, plus, the PS/2 controller turns the Analog LED on/off when I press the Analog button, which I figure is good. All the signals generated by the PIC look OK to me: ATT, CLK, CMD.

On the other hand, the open collector signal DAT doesn’t look right at all (and of course, there’s no data returned by the PS/2 controller). The DAT line is currently pulled up with a 20K resistor (I’ve tried several values from 2K to 470K), and it always hovers at about +2.5V.

I’ve even tried going direct to the PS/2 controller wires, without the Lynxmotion adaptor cable. Even when just hooked up to a single pullup resistor to +5V (and nothing else), the DAT line (brown) is at +2.5V .

My question: is this normal? I expected an open collector signal with a pullup to +5V to always be either at +5V or 0V, not +2.5V .

Any ideas as to what I am doing wrong?

Thanks,
Mike

Hi Mike,

Are you using the PICs hardware for your SPI interface?

If you’re bit-banging, I’d suspect you’ve got a conflict on the DAT pin.

Your assumptions sound right.

Here’s a few URLs.

sophiateam.undrgnd.free.fr/psx/index.html
webx.dk/robot-crawler/ps-joy.htm

I’d go over the timing. I had a hard time getting it to work (bit-bang) as well. I’d rather use the hardware, but it was already tied up.

What PIC are you using? ASM or C? Lynxmotion PS2 as well?

Verify the lines again? I don’t always believe the colors!

DO let us know how you make out! I’ll try to answer questions.

Alan KM6VV