@2N3055,
Could you please elaborate more on this?
Firstly, several scope makers (R&S, Picoscope, haven’t checked others) offer a polarity setting for LIN serial decoders. So they think this makes sense, that there are uses case in which this is useful.
LIN signal is active LOW. That is standard. It means it sits at positive voltage on idle and gets pulled down to ground when active (logical 1).
Yes, that is also my understanding. Unfortunately, since the LIN standard is maintained by ISO you need to pay to get access to that documentation. In the
ST LIN chip documentation I read:
“Two logical levels are defined on the LIN bus physical line – the recessive level and the dominant level. The recessive logical level corresponds to a high voltage level on the LIN bus line (measured against the ground potential, nominal value = 12 V). The dominant logical level corresponds to a low voltage level on the LIN bus line (nominal value = 0 V). The dominant logical level has higher priority. This means that when at least one node in the LIN cluster sends the dominant level, the resulting level on the LIN bus line is the dominant level.” In short, we seem to be in agreement.
I do reckon that the terminology used on devices, in manuals and in discussions regarding LIN polarity is somewhat confusing. Some talk of ‘Idle High” or “Idle Low”, some talk of high or low “signals”, some talk of ‘negative going LIN’. I also read somewhere “The idle state is the recessive state and corresponds to a logic 1.” (so this source uses another definition of what
logic 1 is). Also the fact that a packet starts with a relatively long break period that is opposite to the idle signal may confuse people. Sometimes I started to feel confused too. Hope I made no mistakes but will get to that.
How on earth did you achieve polarity on SDS2000X+ to be wrong in a first place? All these scopes have common ground, how did you connect it the wrong way?
Two answers.
First, how did I make the signal? As I described in the previous mail, I took a Keysight DSOX1204G, powered it up, and activated the LIN training signal ;-)
Second, you seem to assume that the signal I sent into the SDS was wrong. But if you look at the screenprints in my original mail, you see that all the scope signals, including that on the SDS, are exactly like the correct LIN bus you describe above. Still, the SDS decoded bus was wrong.
I want to dig a bit deeper into what the different scopes expect as ‘default’, and, relatedly, when polarity may need to be changed. Perhaps in the testing and confusion, I made an error there. If I find some time this weekend, I will test with a much easier LIN signal (one that simply sends the same packets every time, so see always the same message on every device).
I did check now and Siglent does seem to get confused (same as I am by negative going LIN signal, I guess :-). But that is a fringe case.
Seems that we then agree on my main conclusion: if the signal polarity is wrong (for whatever reason that might be), the SDS can show LIN messages as if they were correctly decoded, even if they are actually incorrect.