Problem Details
Symptom: a LIN slave node configured on a PEAK PCAN-USB Pro FD channel never receives a frame. The application reports no RX events, no header, no response — nothing on the wire. The engineer's first assumption is usually a software fault: wrong driver, wrong baud rate, wrong schedule table, or a broken master transmit path.
The reported environment in this case:
| Item | Value |
|---|---|
| Interface | PCAN-USB Pro FD (2 x CAN FD, 2 x LIN) |
| Host OS (native, not a VM) | Linux 4.15.0-106-generic, Ubuntu 16.04, GCC 5.4.0 |
| Cross-check platform | Windows with PLIN-View Pro |
| Observed behavior | Slave node receives nothing; master appears not to transmit |
The decisive diagnostic data point: the same setup also fails under Windows with PLIN-View Pro. PLIN-View Pro is the vendor's own reference tool running on the vendor's own driver stack. When a fault reproduces identically across two independent OS/driver stacks with the same cabling, the defect is below the software layer — it is physical layer or supply.
Root Cause: Unpowered LIN Transceiver
LIN is a single-wire bus referenced to the node supply. The bus recessive level is pulled to VBAT through the master's pull-up; a dominant level is a transistor pulling the line toward ground. The PC interface's LIN transceiver therefore cannot generate a valid recessive level, and cannot bias its receiver comparator thresholds, without an external supply voltage fed into the D-Sub connector. USB bus power runs the interface logic and the USB side — it does not power the LIN transceiver.
Consequence when VBAT is absent:
- The master channel accepts the transmit request from the API and reports success — the frame is queued and clocked out of the protocol controller.
- No usable differential swing appears on the LIN wire, so the slave sees no break/sync/PID sequence.
- Application-level symptoms look exactly like "master never sent anything," which sends engineers down a software rabbit hole.
The PCAN-USB Pro FD user manual documents the LIN power supply requirement in its connector/power section (page 12 in the referenced revision). Read the manual page for your hardware revision and confirm the required voltage range and pin function before applying power.
Solution: D-Sub Pin Assignment and Wiring
Pin functions confirmed for the LIN channel on this interface family:
| Pin | Function | Wiring requirement |
|---|---|---|
| 4 | LIN data line | Connect to the LIN bus wire shared with the real slave/master device |
| 5 | GND | Ground reference — used by the PEAK LIN connection cable for PC LIN interfaces |
| 6 | GND | Electrically equivalent alternative ground pin |
| 9 | External supply voltage (VBAT) for the LIN transceiver | Must be supplied from an external source; not fed by USB |
Ground pin question, answered: pins 5 and 6 are both ground. Connect one of them. There is no functional difference between them, and tying both changes nothing electrically. The vendor's LIN connection cable uses pin 5, so pin 5 is the safe default if you want to match standard accessories.
Commissioning sequence:
- Power down the external supply and unplug the interface from USB.
- Wire pin 4 to the LIN bus wire; wire pin 5 (or pin 6) to the common ground shared by the external supply and the LIN device under test.
- Wire pin 9 to the positive output of the external supply, at the voltage stated in the user manual.
- Verify with a DMM before connecting the D-Sub: measure supply-to-ground polarity and magnitude at the connector shell end of the harness.
- Apply external supply first, then plug in USB, then start the application.
Verification
Verify in this order — each step isolates one layer.
- Static line level. With the supply on and no traffic, measure pin 4 to ground. The line must sit at the recessive level, i.e. close to the applied VBAT. A reading near 0 V means the pull-up path or the supply is missing; a floating/indeterminate reading means the ground is not common.
- Master transmit, scope. Run the master schedule and capture pin 4 with an oscilloscope, ground clip on pin 5/6. You should see the break field (dominant > 13 bit times), the 0x55 sync byte, then the protected identifier. If the scope shows clean framing, the physical layer is proven and any remaining fault is protocol-level.
- Vendor tool, Windows. Repeat with PLIN-View Pro. Confirm the master emits headers and the slave publishes a response. This is the baseline: do not move to the Linux application until this passes.
- Linux application. Only after step 3 passes, re-run on the Linux host. Confirm the interface enumerates, the LIN channel opens at the intended baud rate, and RX events arrive.
- Bit timing sanity. Measure one bit period on the scope and compare against the configured baud rate. A mismatch here points to a configuration error, not a wiring error.
Remaining Checks If Frames Still Do Not Arrive
With supply and grounding proven, work through the protocol layer:
| Check | Failure signature |
|---|---|
| Baud rate mismatch between master and slave node | Scope shows valid break/sync, slave never responds or responds with framing errors |
| Checksum type (classic vs. enhanced) mismatch | Response bytes appear on the wire but are rejected by the receiving node |
| Frame ID not published/subscribed by the slave node configuration | Header appears, response slot stays recessive |
| No schedule table active on the master | Bus completely idle even with supply present |
| Two masters on one segment | Collisions, corrupted sync fields |
Log every change and re-run the scope capture. A LIN segment fault that survives a correct scope capture is almost always a node configuration mismatch, not hardware.
Contrast: "Slave Not Receiving" on Other Fieldbuses
The LIN failure above is a supply fault that masquerades as a transmit fault. Other buses expose the same class of symptom through counters rather than silence, which is worth knowing so you apply the right diagnostic method.
On an EtherCAT slave, for example, TI's PRU-ICSS EtherCAT Slave Troubleshooting Guide (SPRACJ7) documents that register 0x300, the Invalid Frame Counter, increments on preamble, SFD, length, or FCS faults, while the RX Error and CRC error counters on the first open port that sees corruption localize the bad cable segment. If the addressed SyncManager memory is inaccessible, the Working Counter never increments (read-write +2, read or write +1), and the master reports a WKC mismatch rather than a link-down fault.
The transferable principle: on a bus with diagnostic counters, read the counters before touching the cable. On LIN, which gives you no such counters at the interface level, put a scope on the wire and prove the supply first.
Why does my PCAN-USB Pro FD LIN channel show no traffic even though the master reports a successful send?
The LIN transceiver is not powered. USB supplies the interface logic only; the LIN side needs an external supply on D-Sub pin 9 at the voltage stated in the user manual. Without it the frame is clocked out but no valid level appears on the bus.
Do I need to connect both pin 5 and pin 6 to ground on the LIN D-Sub connector?
No. Pins 5 and 6 are both ground and are electrically equivalent — connect one. The PEAK LIN connection cable for PC LIN interfaces uses pin 5, so use pin 5 to match standard accessories.
How do I tell whether a LIN problem is a driver issue or a wiring issue?
Reproduce the test on Windows with PLIN-View Pro. If the same failure occurs there and on Linux, the fault is below the software layer — check external supply on pin 9, the ground connection on pin 5 or 6, and the LIN data connection on pin 4.
What should I see on a scope when the LIN master transmits correctly?
Probe pin 4 with the ground clip on pin 5 or 6: a dominant break field of more than 13 bit times, then the 0x55 sync byte, then the protected identifier. The idle line must sit at the recessive level, near the applied supply voltage.
Does running Linux natively instead of in a VM affect PCAN LIN operation?
It matters for USB pass-through reliability, so confirm it early, but a native Linux host that still sees no frames points elsewhere. If the same setup also fails under Windows with the vendor tool, the OS is not the cause.