diff --git a/src/LinFrameTransfer.cpp b/src/LinFrameTransfer.cpp index 9a73a09..c0a0225 100644 --- a/src/LinFrameTransfer.cpp +++ b/src/LinFrameTransfer.cpp @@ -318,14 +318,16 @@ size_t LinFrameTransfer::writeBreak() driver.flush(); // configure to half baudrate --> a t_bit will be doubled - driver.updateBaudRate(baud >> 1); + driver.end(); + driver.begin(baud >> 1); // write 0x00, including Stop-Bit (=1), // qualifies when writing in slow motion like a Break in normal speed size_t result = driver.write(BREAK_FIELD); // ensure this was send driver.flush(); // restore normal speed - driver.updateBaudRate(baud); + driver.end(); + driver.begin(baud); return result; } diff --git a/src/LinNodeConfig.cpp b/src/LinNodeConfig.cpp index 0f1c8cd..3ed7e59 100644 --- a/src/LinNodeConfig.cpp +++ b/src/LinNodeConfig.cpp @@ -33,14 +33,16 @@ void LinNodeConfig::requestWakeup() // ensure the tx buffer is empty driver.flush(); // configure to half baudrate --> a t_bit will be doubled - driver.updateBaudRate(baud >> 1); + driver.end(); + driver.begin(baud >> 1); // write 0x00, including Stop-Bit (=1) // qualifies when writing in slow motion for a wake-up request driver.write(LinFrameTransfer::BREAK_FIELD); // ensure this is send driver.flush(); // restore normal speed - driver.updateBaudRate(baud); + driver.end(); + driver.begin(baud); // give the bus some time to wake up (100-150ms) constexpr auto delay_after_Wakeup = 100; // 100-150ms, after 250ms slaves may request a second call