CAN Bus Passive Errors

I’m seeing a lot of CAN Bus Passive (Enum 3) errors on the network. Am I missing something on my configuration?

This is one of our custom boards. The CAN 1 is going to a SN65HVD230 chip. A 120 ohm termination resistor.

Components in the CAN network do talk and I’m able to communicate to the board via Microchip’s CanAnalyzer (no errors logged here).

Configuration:

canController = GHIElectronics.TinyCLR.Devices.Can.CanController.FromName(canPort);

            var propagationPhase1 = 13;
            var phase2 = 2;
            var baudratePrescaler = baudRate; //3 for 1M, 6 for 500k, 12 for 250k
            var synchronizationJumpWidth = 1;
            var useMultiBitSampling = false;


            canController.SetNominalBitTiming(new CanBitTiming(propagationPhase1, phase2, baudratePrescaler,
                synchronizationJumpWidth, useMultiBitSampling));

            //Subscribe to the messages received
            canController.MessageReceived += Can_MessageReceived;

            //Subscribe to the message error
            canController.ErrorReceived += Can_ErrorReceived;

            canController.Enable();

This is usually due to bit timing and your setup/wiring. Try to move the sampling point in your current bitrate and try different bitrate.

make sure it is 3 if you want 1Mb, not 1000000.

Thanks for the replies guys. I track down the issue. Our custom board is using both CAN1 and CAN 2. I had both going to the same error handling function. So I was actually seeing issues on the CAN 2 device and not CAN1 as I first thought. Looks like I have a blown component because the CAN2_RX line is permanently high.

That is what is causing the errors.

2 Likes