LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

WCH CH382L PCI-E Single Parallel Port Card Adapter


WCH CH382L Chipset

IEEE 1284-1994 Compliant

Single-Lane (x1) PCI-Express specification revision 1.0a Compliant

Supports 2.5Gbps PCI-E bus with full duplex channel

Recently (11/16) sells for ~$10ea

Clarification (April 20,2017)

PCI ID is 1c00:3050. 1c00 is not a listed PCI vendor ID. 1C00 is the Vendor ID used by WCH (not assigned by pcisig). 3050 is the device ID when the chip is configured as a parallel port only. The other configurations are parallel port + 2 serial ports when the Dev. ID is 3250 or 2 serial ports (without a parallel port) when the Dev. ID 3253.

Where to find PCI vendor and device ID's: https://pcisig.com/


wch.cn Vendor Id: 0x4348 Short Name: Nanjing Qin Heng Electronics Co., Ltd http://pcidatabase.com/vendor_details.php?id=1726

CAUTION (Feb 1, 2017)

A version of this card with the CH382L chipset exists, which does not function as a PARALLEL PORT. It is sold as one, looks like one. However, does not show up in Linux as a parallel device. The card functions as a serial translated parallel output.

Clarification (April 20, 2017)

The problem here is that, AFAIK, only Dev. IDs 3250 and 3253 are present in the Linux kernel serial/parallel drivers and therefore Dev. ID 3050 which is for the parallel port only configuration, isn't recognised and no driver is started. The manufacturer, WCH, provides Windows drivers and a DOS configuration application even allowing it to be used in the DOS 0x3BC/378/278 io port address ranges and selection of SPP or ECP/EPP modes. Device ID is set by zero-ohm links connected to pins 62 and 63 of the WCH382 chip - It may be possible to remove the link connected to pin 63 of the chip causing the card to identify as a serial/parallel combo card with Dev. ID 3250.

WCH382 Datasheet (Chinese): http://www.wch.cn/downfile/140

Output of dmesg

 [ 0.183504] pci 0000:07:00.0: [1c00:3050] type 00 class 0x070005
 [ 0.183526] pci 0000:07:00.0: reg 0x10: [io 0xcc00-0xccff]
 [ 0.183542] pci 0000:07:00.0: reg 0x14: [mem 0xfbef8000-0xfbefffff pref]
 [ 0.183559] pci 0000:07:00.0: reg 0x18: [io 0xcf00-0xcf03]
 [ 0.183620] pci 0000:07:00.0: reg 0x30: [mem 0x00000000-0x00007fff pref]
 [ 0.183702] pci 0000:07:00.0: PME# supported from D0 D3hot D3cold

As you can see from LSPCI output, the card is a SERIAL CONTROLLER and will not work as a parallel card.

Output of lspci

 07:00.0 Serial controller: Device 1c00:3050 (rev 10) (prog-if 05 [16850])
 Subsystem: Device 1c00:3050
 Control: I/O+ Mem+ BusMaster?- SpecCycle?- MemWINV?- VGASnoop- ParErr?- Stepping- SERR- FastB2B?- DisINTx?-
 Status: Cap+ 66MHz- UDF- FastB2B?- ParErr?- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Interrupt: pin A routed to IRQ 19
 Region 0: I/O ports at cc00 [size=256]
 Region 1: Memory at fbef8000 (32-bit, prefetchable) [size=32K]
 Region 2: I/O ports at cf00 [size=4]
 [virtual] Expansion ROM at fbe00000 [disabled] [size=32K]
 Capabilities: [60] Power Management version 3
 Flags: PMEClk- DSI- D1- D2- AuxCurrent?=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
 Status: D0 NoSoftRst?- PME-Enable- DSel=0 DScale=0 PME-
 Capabilities: [68] MSI: Enable- Count=1/32 Maskable+ 64bit+
 Address: 0000000000000000 Data: 0000
 Masking: 00000000 Pending: 00000000
 Capabilities: [80] Express (v2) Legacy Endpoint, MSI 00
 DevCap?: MaxPayload? 256 bytes, PhantFunc? 0, Latency L0s <2us, L1 <32us
 ExtTag?- AttnBtn?- AttnInd?- PwrInd?- RBE+ FLReset-
 DevCtl?: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
 RlxdOrd?+ ExtTag?- PhantFunc?- AuxPwr?- NoSnoop?+
 MaxPayload? 128 bytes, MaxReadReq? 512 bytes
 DevSta?: CorrErr?- UncorrErr?- FatalErr?- UnsuppReq?- AuxPwr?+ TransPend?-
 LnkCap?: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
 ClockPM?+ Surprise- LLActRep?- BwNot?-
 LnkCtl?: ASPM Disabled; RCB 64 bytes Disabled- CommClk?+
 ExtSynch?- ClockPM?- AutWidDis?- BWInt- AutBWInt?-
 LnkSta?: Speed 2.5GT/s, Width x1, TrErr?- Train- SlotClk?+ DLActive- BWMgmt- ABWMgmt-
 DevCap2?: Completion Timeout: Not Supported, TimeoutDis?+, LTR-, OBFF Not Supported
 DevCtl2?: Completion Timeout: 50us to 50ms, TimeoutDis?-, LTR-, OBFF Disabled
 LnkCtl2?: Target Link Speed: 2.5GT/s, EnterCompliance?- SpeedDis?-
 Transmit Margin: Normal Operating Range, EnterModifiedCompliance?- ComplianceSOS?-
 Compliance De-emphasis: -6dB
 LnkSta2?: Current De-emphasis Level: -6dB, EqualizationComplete?-, EqualizationPhase1?-
 EqualizationPhase2?-, EqualizationPhase3?-, LinkEqualizationRequest?-
 Capabilities: [100 v1] Advanced Error Reporting
 UESta: DLP- SDES- TLP- FCP- CmpltTO?- CmpltAbrt?- UnxCmplt?- RxOF?- MalfTLP?- ECRC- UnsupReq?- ACSViol-
 UEMsk: DLP- SDES- TLP- FCP- CmpltTO?- CmpltAbrt?- UnxCmplt?- RxOF?- MalfTLP?- ECRC- UnsupReq?- ACSViol-
 UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO?- CmpltAbrt?- UnxCmplt?- RxOF?+ MalfTLP?+ ECRC- UnsupReq?- ACSViol-
 CESta: RxErr?- BadTLP?- BadDLLP?- Rollover- Timeout- NonFatalErr?-
 CEMsk: RxErr?- BadTLP?- BadDLLP?- Rollover- Timeout- NonFatalErr?+
 AERCap: First Error Pointer: 00, GenCap?+ CGenEn?- ChkCap?+ ChkEn?-
 00: 00 1c 50 30 03 00 10 00 10 05 00 07 01 00 00 00
 10: 01 cc 00 00 08 80 ef fb 01 cf 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 50 30
 30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 01 00 00

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited April 20, 2017 6:32 pm by Bari (diff)
Published under a Creative Commons License