Card Adapter: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 316: Line 316:
{| class="wikitable" style="text-align: center;border:3px solid #123AAA;"
{| class="wikitable" style="text-align: center;border:3px solid #123AAA;"
|-
|-
! colspan="4"|  
! colspan="4"| MemoryCard
|-
|-
! Pin № !! Name !! I/O !! Description
! Pin № !! Name !! I/O !! Description

Revision as of 06:36, 7 June 2015

PlayStation Card Adapter

PlayStation Card Adapter without a PSOne/PS2 card

PlayStation Card Adapter - CECHZM1/SCPH-98042 - maincomponentside

PlayStation Card Adapter - CECHZM1/SCPH-98042 - back
Memory Card Adaptor box design

The PlayStation 3 Memory Card Adaptor is a peripheral device that allows data to be transferred from a PlayStation or PlayStation 2 memory card to the PlayStation 3's hard disk.

Technical Specifications

Overview of Technical Specifications
Product Code CECHZM1 (SCPH-98042)
External Dimension approximately 58mm x 50mm x 20mm (height x width x depth)
Weight approximately 50g
Cable Length USB Cord length / USB hub
Connection Type USB
Program Memory 64KB (64K x 8) - Flash (2211UFP24V H8S/2211 seen on CECHZM1 j)
PS3 FW related 1.80
Mountpoint dev_MCA ( from Memory card utility PS/PS2).

Functions

  • On lower FW, You could not copy saves back to a physical Memory Card. You can copy them between PS3 internal virtual memory cards, but not back to a physical PSone or PS2 card (but possible on 3.55).
  • On lower FW, You could not explore your PSone or PS2 card and copy over specific game saves, but you can delete saves, once the card has been copied over to the hard drive (but possible on 3.55).
  • The adaptor will not work with cards that have more than 8MB of storage space.
  • PocketStation can be use (and recognized as) with the PS3 card adapter.
  • USB hub works.

Analysis

USB

Device Descriptor

Device Descriptor
Offset Field Size Value Description
0 bLength 1 0x12 Size of this descriptor in bytes (18)
1 bDescriptorType 1 0x01 DEVICE descriptor type (Constant = 1)
2 bcdUSB 2 0x0110 USB Spec release number (1.10):

with which the device and is descriptors are compliant (e.g.: 0x0200 (USB2.0), 0x0300, (USB_3.0|USB3.0))

4 bDeviceClass 1 0xFF Class code assigned by USB-IF:

(used by the operating system to find a class driver for your device)

  • 00h means each interface defines its own class (identify itself at the interface level: bInterfaceClass)
  • FFh means vendor-defined class
  • Any other value must be a class code

5 bDeviceSubClass 1 0x00 SubClass Code assigned by USB-IF

(used by the operating system to find a class driver for your device)

6 bDeviceProtocol 1 0xFF Protocol Code assigned by USB-IF

(used by the operating system to find a class driver for your device)

7 bMaxPacketSize0 1 0x40 Max packet size for endpoint 0. (64)

8 idVendor 2 0x054C Vendor ID (VID) (Sony Corp.)

must be obtained from USB-IF

(used by the operating system to find a driver for your device)

10 idProduct 2 0x02ea Product ID (PID) - (PlayStation 3 Memory Card Adaptor)

assigned by the manufacturer

(used by the operating system to find a driver for your device)

12 bcdDevice 2 0x0100 Device release number (Version: 1.00)

in binary coded decimal

14 iManufacturer 1 0x00 Index of string descriptor describing manufacturer

set to 0 if no string

15 iProduct 1 0x00 Index of string descriptor describing product

set to 0 if no string

16 iSerialNumber 1 0x00 Index of string descriptor describing device serial number
set to 0 if no string
17 bNumConfigurations 1 0x01 Number of possible configurations

Configuration Descriptor

Configuration Descriptor
Offset Field Size Value Description
0 bLength 1 0x09 Size
1 bDescriptorType 1 0x02 (= 2)
2 wTotalLength 2 0x0027 Total number of bytes (39) in this descriptor and all the following descriptors (9+9+7+7+7)
4 bNumInterfaces 1 0x01 Number of interfaces supported by this configuration
5 bConfigurationValue 1 0x01 Value used by Set Configuration to select this configuration
6 iConfiguration 1 0x00 Index of string descriptor describing configuration - set to 0 if no string
7 bmAttributes 1 0x80 Powered by the bus (10000000)

specify power parameters for the configuration :

msb8-Digit bit binarylsb
7|6|5|4|3|2|1|0

  • D0 - D4: Reserved.
  • D5: The configuration supports remote wakeup.
  • D6: The configuration is self-powered and does not use power from the bus.
  • D7: The configuration is powered by the bus.

8 bMaxPower 1 0x64 Maximum current: 200mA drawn by device in this configuration.
In units of 2mA. So 0x32 (50) means 100 mA

Interface Descriptor

Interface Descriptor
0 bLength 1 0x09 Size
1 bDescriptorType 1 0x04 (= 4)
2 bInterfaceNumber 1 0x00 Number identifying this interface.

Zero-based value

3 bAlternateSetting 1 0x00 The first (and default) value used to select alternative setting is always 0

(An interface can have more than one variant, and these variants can be switched between, while other interfaces are still in operation)

4 bNumEndpoints 1 0x03 Number of Endpoints used for this interface
5 bInterfaceClass 1 0xFF Class code assigned by USB-IF]

  • 00h is a reserved value
  • FFh means vendor-defined class
  • Any other value must be a class code

6 bInterfaceSubClass 1 0x00 SubClass Code assigned by USB-IF
7 bInterfaceProtocol 1 0xFF Protocol Code assigned by USB-IF
8 iInterface 1 0x00 Index of string descriptor describing interface - set to 0 if no string

Endpoint Descriptor

Endpoint (IN) Descriptor
0 bLength 1 0x07 Size
1 bDescriptorType 1 0x05 (= 5)
2 bEndpointAddress 1 0x81 IN <--(10 00 0001)--> 1

The address of this endpoint within the device:

  • D3-D0: Endpoint number
  • D6-D4: Reserved. set to Zero
  • D7: Direction: 0 = OUT, 1 = IN (Ignored for Control Endpoints)

3 bmAttributes 1 0x02 Interrupt (00000010)

(D1:0) Transfer Type:

  • 00 = Control
  • 01 = Isochronous
  • 10 = Bulk
  • 11 = Interrupt

The following only apply to isochronous endpoints. Else set to 0.

(D3:2) Synchronisation Type (ISO mode):

  • 00 = No Synchronisation
  • 01 = Asynchronous
  • 10 = Adaptive
  • 11 = Synchronous

(D5:4) Usage Type (ISO mode):

  • 00 = Data endpoint
  • 01 = Feedback endpoint
  • 10 = Implicit feedback Data endpoint
  • 11 = Reserved

(D7:6) Reserved Set to 0

4 wMaxPacketSize 2 0x0040 (64)
6 bInterval 1 0x00 (unit depends on device speed)

Interval for polling endpoint for data transfers. Expressed in frames (ms) for low/full speed or microframes (125μs) for high speed
(ignored for Bulk & Control Endpoints. Isochronous must equal 1 and field may range from 1 to 255 for interrupt endpoints)

Endpoint (OUT) Descriptor
0 bLength 1 0x07 Size
1 bDescriptorType 1 0x05 (= 5)
2 bEndpointAddress 1 0x02 OUT<-- (00 00 0010)-->2
3 bmAttributes 1 0x02 Bulk
4 wMaxPacketSize 2 0x0040 (64)
6 bInterval 1 0x00
Endpoint (IN) Descriptor
0 bLength 1 0x07 Size
1 bDescriptorType 1 0x05 (= 5)
2 bEndpointAddress 1 0x83 IN<-- (10 00 0011)-->3
3 bmAttributes 1 0x03 Interrupt
4 wMaxPacketSize 2 0x0001 (1 byte)
6 bInterval 1 0x64 100

Free MC boot install with PS3 Memory Card Adapter (CECHZM1)

http://www.ps3devwiki.com/files/Homebrew/ps3mca/

  • You can now install FMCB from a PC to MC with these MC-Adapters!
  • You can sign MC-KELFs to your MCs directly from PC!
  • You can make multi-region-installs!
  • The FMCB1.8c-Loader finally includes the V0-Kernel-Fix for those old SCPH-1x000-Consoles (this gives users of those old models the ability to run a few homebrew-apps, which were previously incompatible to those versions)!

We recently found a new way to install FMCB with the PlayStation3 Memory Card Adaptor (CECHZM1) connected to your PC. Since this device is somewhat cheap, it could be a good alternate way for those who don't have access to an already hacked PS2. The method consist of a command line software and using set of commands (or scripts) in order to install the FMBC hack properly. It also has the advantage to do a multi region/models installation. One restriction is that the software doesn't work with Datel's MC (mainly related with setting a proper termination code for communications) and maybe with some other brands, however it was tested successfully with official 8MB Memory Cards and with some crappy Chinese clones too. Currently the FMCB loader being installed is v1.8c which contain an important kernel fix for the 10K. The util to allow to communicate and sign the file for the MC was made by me and "someone who wants to stay anonymous". Note that without this anonymous contributor it would have been impossible to achieve it. git repository: https://github.com/jimmikaelkael/ps3mca-tool

Misc

This simple mod (adding Led) also works with PS1 Memory Card plugged into the Memory Card Adaptor or the Memory Card Adaptor itself:

http://www.youtube.com/watch?v=be5rSKFuxJY //video should be removed because it s a mess, but before need more infos/photos/wiki format

Video s comment:

you need 32 guage insulated wire and 3mm LED (does not matter what color...) and you drill the hole 
(without the chip inside to avoid damage) 2 - 3mm  from the left side on the outward edge.

Official PS2 Memory Card pins are numbered (8: negative & 5: positive), official PS1 Memory Card hole for the led can be more centered.

Memory Card

The Playstation Memory Cards have an interface similar to the Controller Port, which is aswell similar to SPI. They normally have 1 Mb or 128 Kilobyte of EEprom memory. Bigger Non-Sony Cards use internal bankswitching (Multiple virtual Cards in one). Serial data transfer is LSB-First format.

Pinout

The controller port is exactly the same electricly as the memory card port.

 1  2   3  4  5   6  7  8 
----------------------------
| o  o | o  o  o | o  o  o |  (at the Card)
\__________________________/
MemoryCard
Pin № Name I/O Description
1 DATA O Data from card (MISO)
2 CMD I Command/Data to card (MOSI)
3 7.6VDC - N.C. on MemoryCard (+7.6V power source for CD-ROM drive)
4 Ground - Ground
5 VCC I Vcc (3,6 VDC)
6 /ATT I Select (SS) pad or memory-card
7 CLK I Clock (SCK)
8 /ACK O Acknowledge
  1. Direction is relative to card. I = Input, O = Output, N.C = Not Connected.
  2. signal SEL in PAD1, PAD2 is separated.

Signals

DATA

Signal from Card to PSX. This signal is an 8 bit serial transmission synchronous to the falling edge of clock (That is both the incoming and outgoing signals change on a high to low transition of clock. All the reading of signals is done on the leading edge to allow settling time.)

COMMAND

Signal from PSX to Card. This signal is the counter part of DATA. It is again an 8 bit serial transmission on the falling edge of clock.

VCC

VCC (heared to be) 3.6V. The main board in the PSX also has a surface mount 750mA fuse that will blow if you try to draw to much current through the plug (750mA is for both left, right and memory cards).

ATT

ATT is used to get the attention of the card. This signal will go low for the duration of a transmission. Time is 16msec between SEL from previous SEL.

CLOCK

Signal from PSX to card. Used to keep units in sync. 250KHz clock for PlayStation

ACK

Acknowledge signal from Card to PSX. This signal should go low for at least one clock period after each 8 bits are sent and ATT is still held low. If the ACK signal does not go low within about 60 us the PSX will then start interogating other devices.

Sources

Sony Documentation

manuals.playstation.net
[1]