Go Down

Topic: Do I need to hook any PlayStation 2 Controller pins to PWM pins? (Read 1 time) previous topic - next topic


I'm planning on buying this adapter for a PS2 controller so I can hook it up to my Arduino: http://www.lynxmotion.com/p-73-ps2-controller-cable.aspx. I will then use this library to interface with it: http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/

In the example code that came with the library, some of the pins are hooked up to digital IO pins that support PWM. Here is the line:

Code: [Select]
ps2x.config_gamepad(13,11,10,12, true, true);   //setup pins and settings:  GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error

On the Uno, pins 10 and 11 support PWM.

Upon doing a little more research, I found this other guide: http://www.wegmuller.org/arduino/Arduino-Playstation_gameport.html. The author hooks up 'command' to a PWM pin, but 'attention' to a non-PWM pin.

Is it just a coincidence that 'command' and 'attention' are plugged into PWM pins in the first example? My best guess is 'yes', since I doubt that the PS2 controller communicates with an analog signal. I ask this question because I'm creating my own Arduino shield for a special project, and I want to get it right the first time.

Thank you in advance,


It appears to me that the PS2 controller uses SPI.  The hardware SPI pins are:

10 SS (Slave Select) -> ATT (Chip select)
11 MOSI (Master Out Slave In) -> Command
12 MISO (Master In / Slave Out) <- Data
13 SCK (Serial Clock) -> Clock

Hooking things up this way will allow you to use the SPI library and get very fast speeds.  Even if you use the other hardware SPI pins you can use any digital output pin for the Slave Select / ATT signal.  The only requirement is that Pin 10 be set as an output.   

If you don't need high speeds it is possible to do "Software SPI" using any four digital pins.  You'd have to look around for example code.  It's not much more complex than using a shift register.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


Ah, how could I have missed that!

I'm going to assume that the PS2X library uses software SPI. Reading through the source code (way over my head), it doesn't import the SPI library but it does a lot of operations with registers.

Thanks for your help!


I just looked at the library code and it appears that it does do software SPI so any four I/O pins should work.  Shouldn't need to use the PWM pins if you want to save those for something else.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp

Go Up