Yi.Junbo

STM32F091 CAN Bus received without triggering interruption at random

Discussion created by Yi.Junbo on May 18, 2017
Latest reply on May 25, 2017 by Clive One

/**** Observation and Issues – package received, but interruption doesn’t triggered until next package received ****/

CAN Bus Network at 1M Bit Rate:

 

25-Node total.

  1. 24-Node STM32F091CC (named Node B1 to B24)
  2. 1-Node ARM in Xilinx V7 FPGA (named Node A)

 

Communication:

  1. Two Nodes at a time, one node is always Node A, and the other is any of Node B
  2. Request and Response basis. Node A sends Request and Node B sends back Response.

New request will be sent out only the last response is received, otherwise Node A application will be time out

  1. Node B(STM32F091) receiving is interruption driven

 

Scenario (Referencing to below Records from CAN Bus Monitor):

  1. At random, package(msg-2) received by Node B didn’t trigger the interruption to notice application to get package(msg-2) until another package(msg-3) received
  2. Since package(msg-2) is not lost, it seems the package(msg-2) is received and stays in FIFO without generates receiving completed interruption.

 

STM32 Application Software embedded STM32 HAL Firmware STM32Cube_FW_F0_V1.2.0.zip

 

CAN Bus Monitor Records:

 

Chn    Identifier       Flg   DLC      D0...1...2...3...4...5...6..D7       Time             Dir

0         02DD00A8       X       0                                                           74200.109430   R   - Node A sends Request                                                                                                                                                    msg-1 to Node B

0         12D500A8       X       8          08  01  00  00  3B  00  00  00   74200.137340   R    - Node B sends Response to                                                                                                                                              Node A for msg-1

0         02DD0027       X       0                                                            74200.150500   R  - Node A sends Request msg-2 to                                                                                                                                              Node B, But Node B                                                                                                                                              application didn’t receive the                                                                                                                                               msg-2, No Response from                                                                                                                                               Node B to Node A for msg-2,

then Node A Application    time out

0        02DE03C7       X       0                                                               74240.300380   R    -  Node A sends Request

                                                                                                                                                  msg-3 to Node B. Node B

                                                                                                                                                 Application receives msg-2

                                                                                                                                                 and msg-3

0       12D50027        X       8           08  01  00  00  E0  00  00  00        74240.346330   R   -  Node B sends Response to

                                                                                                                                                 Node A for msg-2   

0      12D603C7        X       8           08  02  00  00  1E  14  00  00        74240.377720   R    - Node B sends Response to

                                                                                                                                                 Node A for msg-3

0      02DE01E8       X       4            44  00  00  00                                 74281.548580   R     - Node A sends Request

                                                                                                                                                   msg-4 to Node B

0     12D601E8        X       4            04  02  00  00                                  74281.949800   R   - Node B sends Response to

                                                                                                                                                  Node A for msg-4

 

Continue communication ….

Outcomes