Skip to content

Commit 1557e6b

Browse files
committed
Sleep optimization, LowSlope: release _tx_pin
1 parent 9b51827 commit 1557e6b

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/TJA1020.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ void Lin_TJA1020::setMode(TJA1020_Mode mode)
139139
digitalWrite(_nslp_pin, HIGH);
140140
delayMicroseconds(15); // ensure t_gotonorm (min. 10us)
141141

142+
// release tx pin, to avoid occupation of Lin Bus
143+
digitalWrite(_tx_pin, HIGH);
144+
142145
// [Low Slope Mode] reached
143146
_currentMode = LowSlope;
144147
break;
@@ -157,10 +160,15 @@ void Lin_TJA1020::setMode(TJA1020_Mode mode)
157160
delayMicroseconds(15); // ensure t_gotosleep (min. 10us)
158161
digitalWrite(_nslp_pin, LOW);
159162
delayMicroseconds(15); // ensure t_gotonorm (min. 10us)
160-
break;
163+
// INH will be shut down by constant low, chip will go into sleep mode
164+
165+
// ensure pin level while sleeping
166+
pinMode(_tx_pin, INPUT_PULLDOWN); // ensure Low level while in sleep mode (since TJA1020 has internally a fixed pulldown)
167+
pinMode(_nslp_pin, INPUT_PULLDOWN); // ensure Low level while in sleep mode
161168

162169
// [Sleep] reached
163170
_currentMode = Sleep;
171+
break;
164172
}
165173
} // void Lin_TJA1020::setMode(TJA1020_Mode newMode)
166174

0 commit comments

Comments
 (0)