Much of this section is sourced from Dowty’s consolidation and home-brew port sniffer and emulator. ![]() High-level: Packet structure, Command and Data Meanings: Scope shots showing the acknowledge and attention lines. Bytes are transferred LSB (least significant bit) first, so the bits on the left (earlier in time) are less significant. ![]() When the clock goes from low to high, value are actually read. When the clock edge drops low, the values on the line start to change. It then drops low (active low) to start 8 cylces during which data is simultaneously sent and received. The clock is held high until a byte is to be sent. The following pictures show actual signals between a playstation and guitar hero controller configured in analog mode (wammy bar sends back 7-bit value (0x7f – 0x00)). The play station sends a byte at the same time as it receives one (full duplex) via serial communication. Low-Level – How Bytes and Packets are Transferred: playstation.txt says that the playstation will consider the controller missing if the ack signal (> 2us) doesn’t come within 100us. This is a open collector output and requires a pull-up resistor (1 to 10k, maybe more). Green – Acknowledge: This normally high line drops low about 12us after each byte for half a clock cycle, but not after the last bit in a set.When the guitar hero controller is connected, the clock rate is 250kHz, which is also the rate the playstation 1 uses. We’ve gotten it to work from less than 100kHz up through 500kHz (500k bits / second, not counting delays between bytes and packets). Blue – Clock: 500kH/z, normally high on.Digitan considers this a “Chip Select” or “Slave Select” line that is used to address different controllers on the same bus. In our testing, it wasn’t sufficient to tie this permanently low–it had to be driven down and up around each set. Yellow – Attention: This line must be pulled low before each group of bytes is sent / received, and then set high again afterwards.Most sites say there is a 750mA fuse for both controllers and memory cards, although this may only apply to PS1’s since 4 dual shock controllers could exceed that easily. McCubbin says that any official Sony controller should work from 3-5V. Every controller tested worked at 3.3V, and the actual voltage measured on a live Playstation talking to a controller was 3.4V. Red – Power: Many sites label this as 5V, and while this may be true for Play Station 1 controllers, we found several wireless brands that would only work at 3.3V.When the motors are first engaged, almost 500mA is drawn on this line, and at steady state full power, ~300mA is drawn. Grey – Vibration Motors Power: 6-9V? With no controller connected, this meausures about 7.9V, with a controller, 7.6V, most websites say this is 9V (except playstation.txt -> 7.6V), although it will still drive the motors down around 4V, although somewhat slower.Orange – Command: PlayStation -> Controller.(A pull-up resistor is needed because the controller can only connect this line to ground it can’t actually put voltage on the line). This is an open collector output and requires a pull-up resistor (1 to 10k, maybe more). Brown – Data: Controller -> PlayStation.To operate vibration motors, motor_power is also needed. Wire Colors and Functionality: There are 9 wires, 6 wires are needed at a minimum to talk to the controller: (clock, data, command, power & ground, attention). You’ll need a programmer (PICKIT2) and ‘s free IDE, MPLAB. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |