Resetting CAN connection produces CAN errors

Windows® Compatible Software for Displaying CAN Messages
Post Reply
Jens Haustedt
Posts: 1
Joined: Thu 21. Jan 2021, 12:33

Resetting CAN connection produces CAN errors

Post by Jens Haustedt » Thu 21. Jan 2021, 12:45

A PCAN USB dongle is connected to a 500kbit/s CAN bus. PCAN-View is running, connected to the PCAN in regular (not listening) mode. Hitting 'escape' on the keyboard executes some kind of "reset". When I keep the 'escape' key pressed (i.e. it is hit in fast repetitive mode), the other communicating CAN nodes see error frames. Keeping it pressed for a couple of seconds, the other communicating CAN nodes go to BUSOFF mode because of too many errors.
This is not really disturbing, as a matter of fact, what crazy mind would do so?
But I am interested for other reasons to replay that very behaviour. I would like to know, which PCAN dll API functions are called ih what order from PCAN-View when "Zurücksetzen" is selected.

Sales & Support
Sales & Support
Posts: 486
Joined: Fri 20. Sep 2019, 13:31

Re: Resetting CAN connection produces CAN errors

Post by M.Heidemann » Thu 21. Jan 2021, 16:34


Well, doing this will spam resets, which do reset the CAN-Controller, empties the reception list and sets the transmission counter to 0.

And this is exactly the cause for this, you will actively detroy frames this way, as the reset is intant and will not safely finish messages being transmit or received, invalid messages will be on the bus, therefore error will be recognized. Additionally the other node will have none of the Frames acknowledged, as this is disturbed by this action as well.

You can tinker a bit more with this, without running into a bus off, when an additional node is on the bus, which is able to acknowledge the frames.

PCAN-View uses the PCAN-Developer 4 API, the corresponding function for the "Reset" in this case would be "CAN_ResetHardware".

In PCANBasic the same effect could be achieved with "Uninitialize", "Initialize" and "Reset".

However, the reset is intended to reset hardware/software in case the was an error on the bus, not to provoke errors on the bus.

Best Regards


Post Reply