On 07/29/2014 09:29 AM, Stefan Agner wrote: > Am 2014-07-28 18:28, schrieb Marc Kleine-Budde: >> On 07/28/2014 06:20 PM, Stefan Agner wrote: >>> I'm not sure whether you really want to keep the FLEXCAN_CTRL_ERR_STATE >>> commented out... >> >> No, please remove this change and redo the test. >> > > Ok, removed that change and did the tests again: > > == Wrong Bitrate test > > [ 146.485022] flexcan 40020000.flexcan can0: bitrate error 0.7% > [ 148.401793] flexcan 40020000.flexcan can0: writing ctrl=0x17092001 > [ 148.408263] flexcan 40020000.flexcan can0: flexcan_set_bittiming: > mcr=0x5980000f ctrl=0x17092001 > [ 148.408298] flexcan 40020000.flexcan can0: flexcan_chip_start: > writing mcr=0x79a20208 > [ 148.408328] flexcan 40020000.flexcan can0: flexcan_chip_start: > writing ctrl=0x1709ac51 > [ 148.414373] flexcan 40020000.flexcan can0: flexcan_chip_start: > reading mcr=0x60a20208 ctrl=0x1709ac51 > ^---- Initialization > [ 152.968685] flexcan_irq, esr=00040080 > [ 152.972386] flexcan_irq, ctrl=1709ac51 > [ 155.488623] flexcan_irq, esr=00040080 > [ 155.492326] flexcan_irq, ctrl=1709ac51 > ^---- Two messages with right bitrate > [ 171.014124] flexcan_irq, esr=00058d0a > [ 171.017823] flexcan_irq, ctrl=1709ac51 > ^---- One message with wrong bitrate > [ 171.021631] flexcan 40020000.flexcan can0: Error Warning IRQ > [ 171.021660] flexcan 40020000.flexcan can0: Error Passive IRQ
Thanks for the test, so far looks promising :) With this setup the other CAN node repeats the CAN frame until it's ACKed. Because there is no node with a compatible bitrate, there is no ACking CAN node. Can you add a third CAN node to the network. The second and third node should use the same bitrate, while your vf610 uses a different one. With the new setup it should take more than one frame until the vf610 goes into error warning and even more frames to error passive. This way we can see it the error warning interrupt is connected or not. The error counters should increase with each "wrong" bitrate frame it sees, you can check with: ip -details link show can0 The output looks like this: > 4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode > DEFAULT qlen 10 > link/can > can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0 ^^^^^^^^^^^^^^^^^^^^^^ > bitrate 1000000 sample-point 0.750 > tq 125 prop-seg 2 phase-seg1 3 phase-seg2 2 sjw 1 > sja1000: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1 > clock 8000000 When one of the berr-counter crosses 96 (and stays below 128) a warning interrupt should be generated. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
signature.asc
Description: OpenPGP digital signature