[Muscle] Lead Tide SIM card reader 882a (aka USB SIM card reader
direct)
Domen Puncer
domen at coderock.org
Fri Dec 21 22:25:37 PST 2007
Hello!
I have this cheap SIM card reader that I'd like to make work.
lsusb (-v version below):
Bus 001 Device 002: ID 058f:9720 Alcor Micro Corp.
Quick inspection reveals it's quite simple:
usb->serial chip (au9720) and what looks like a hex inverter.
In Linux it binds itself to pl2303 driver (ttyUSB0), and sometimes
to cdc_acm (ttyACM0). First one seems the right choice.
I sniffed Windows software, SIMEditor, and it looks like it sets
baudrate to 19200, then to 9600, and resets the card with DTS and RTS lines.
Afterwards card sends ATR, and looks like it can be interfaced with SIM
commands. Transfers are always byte by byte.
Some relevant data I captured:
http://www.coderock.org/tmp/sim-card-reader-atr.log
But here's the funny part: I can't get it to send me ATR, or anything.
Is there something obvious I'm missing?
Is there a similar (same even, since it's very simple hardware?) driver
already written?
Domen
----------
lsusb -v:
Bus 001 Device 002: ID 058f:9720 Alcor Micro Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x058f Alcor Micro Corp.
idProduct 0x9720
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 67
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x01
call management
bDataInterface 1
CDC ACM:
bmCapabilities 0x06
sends break
line coding and serial state
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
----------
More information about the Muscle
mailing list