Essentially, I'm unable to reliably read from the ECU, ...
- I can reliably connect to the ECU with the ignition powered off (but can't read then due to preconditions not being met)
- I can occasionally connect to the ECU with the ignition powered on; then, only at the slow baud rate, and with slow init (very hit-and-miss as to when it'll connect correctly)
- All VCDS functions work as expected
Wow, I thought that never somebody would show up with similar problem!!
From your desription it sounds to be related to what I am facing. I'm fighting with
KWP2000 communication problems, also in a Passat B5 Euro, already a very long time and
never found out what is causing this. This is driving me really mad :'(.
I see the following:
Ignition off (the ECU keeps running for 10-15 minutes after turning ignition off):
- Slow init and fast init work fine, communication with KWP2000 protocol is perfectly. I can
send and receive small and big messages and also the comm session keeps active if I send
at least each 5 seconds a message.
From this result I think I can exclude any problem with the used PC and the interface cable
or the software.
Ignition On:
1) VCDS functionality is working fine (using KWP1281 protocol).
2) Fast init does NOT work, NEVER got a response to the startCommunication message.
(with a patched image I could show at least that the fast init pulse was recognized, so it's
not the 25ms timing)
3) Slow init works fine, also communication works fine at first.
4) Communication drops "randomly": suddenly for the next request no response is received
(not a single byte), also for further requests no response, until the session is started
again with slow init.
5) I never faced checksum errors or undecodeable responses, only this stop of
communication from ECU's side.
The problem appears with different interface cables and when using different PC's, so I
again exclude an erroneous interface (also, the comm is perfect when ign off!).
6) I found that KWP2000 communication was stable when using response messages of
only <=32 bytes and when keeping the gap between response and next request shorter
that roughly 250ms (using the 5 seconds timeout was definitely not working!).
7) After starting a programming session, I still had at first this unstable communication.
But after letting the session time out and then reconnect to the programming
session/ram system, I have stable KWP2000 communication with 5 second timeout and
no errors (as with ignition off).
When running a simulation, I could not find any hint that the ECU would stop actively
communication in the way it is seen in the car (but simulation is without the incoming CAN
messages from other units).
I can currently think of two things:
a) The ECU receives messages via CAN which cause this problem when ignition is on. This
would mean it is an intentional behaviour of the ECU (no idea what for besides driving
people mad
)??
b) The K-line is disturbed by other units on the line which are powered off when ignition is
turned off. (but why are they not disturbing if the ECU switched to programming
session?)
Is this all a bug or intention???
Anyway, I'll keep on searching to find the root cause of this behaviour and would be glad to
hear also if you have a "break-through" with this strange communication problem.