tonton81 / FlexCAN_T4

FlexCAN (CAN 2.0 / CANFD) Library for Teensy 3.x and 4.0
https://forum.pjrc.com/threads/56035-FlexCAN_T4-FlexCAN-for-Teensy-4
MIT License
192 stars 63 forks source link

Can.write(msg) repeats sending same frame forever #49

Closed Knio closed 1 year ago

Knio commented 2 years ago

Hi, when writing a CAN message, everything is working, but the message gets re-sent in a loop forever, eventually filling up all the queues and blocking the whole bus. Is there some automatic re-sending code if a message is not ACKed? how can I clear the transmitter?

I'm using 2x Teensy 4.0 with a SN65HVD230 transceiver (one sending and one receiving, no other nodes, on a bench) and have confirmed everything is working with a probe. I modified the example code slightly to send a unique byte counter for every byte and repeat the mailbox status to be able to debug better.

Receiver log: (same code but with the write commented out)

FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_INACTIVE
                MB9 code: TX_INACTIVE
                MB10 code: TX_INACTIVE
                MB11 code: TX_INACTIVE
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5249 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5383 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5517 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5651 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5785 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 5919 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 6053 ID: 76D Buffer: 0 1 2 3 4 5 6 7
MB 99  OVERRUN: 0  LEN: 8 EXT: 0 TS: 6187 ID: 76D Buffer: 0 1 2 3 4 5 6 7
(continues forever)

Sender log:

FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_INACTIVE
                MB9 code: TX_INACTIVE
                MB10 code: TX_INACTIVE
                MB11 code: TX_INACTIVE
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_INACTIVE
                MB10 code: TX_INACTIVE
                MB11 code: TX_INACTIVE
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_INACTIVE
                MB11 code: TX_INACTIVE
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_INACTIVE
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_INACTIVE
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_INACTIVE
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_INACTIVE
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37)
                MB15 code: TX_INACTIVE
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37)
                MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F)
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37)
                MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F)
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37)
                MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F)
FIFO Enabled --> Interrupt Enabled
        FIFO Filters in use: 8
        Remaining Mailboxes: 8
                MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7)
                MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F)
                MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17)
                MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F)
                MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27)
                MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F)
                MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37)
                MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F)

Lightly modified example code:

#include <FlexCAN_T4.h>
FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> Can0;

void setup(void) {
  Serial.begin(115200); delay(400);
  // pinMode(6, OUTPUT); digitalWrite(6, LOW); /* optional tranceiver enable pin */
  Can0.begin();
  Can0.setBaudRate(500'000);
  Can0.setMaxMB(16);
  Can0.enableFIFO();
  Can0.enableFIFOInterrupt();
  Can0.onReceive(canSniff);
  Can0.mailboxStatus();
}

void canSniff(const CAN_message_t &msg) {
  Serial.print("MB "); Serial.print(msg.mb);
  Serial.print("  OVERRUN: "); Serial.print(msg.flags.overrun);
  Serial.print("  LEN: "); Serial.print(msg.len);
  Serial.print(" EXT: "); Serial.print(msg.flags.extended);
  Serial.print(" TS: "); Serial.print(msg.timestamp);
  Serial.print(" ID: "); Serial.print(msg.id, HEX);
  Serial.print(" Buffer: ");
  for ( uint8_t i = 0; i < msg.len; i++ ) {
    Serial.print(msg.buf[i], HEX); Serial.print(" ");
  } Serial.println();
}

void loop() {
  Can0.events();
  static uint32_t byte_count = 0;
  static uint32_t timeout = millis();
  if ( millis() - timeout > 2000 ) {
    CAN_message_t msg;
    msg.id = random(0x1,0x7FE);
    for ( uint8_t i = 0; i < 8; i++ ) msg.buf[i] = byte_count++;
    Can0.write(msg);
    timeout = millis();
    Can0.mailboxStatus();
  }

}
msadie commented 2 years ago

"Is there some automatic re-sending code if a message is not ACKed?" Yes, this is specified by the CAN protocol and is handled in the teensy's hardware CAN module. Every frame should be ACKd by every other node on the bus, so until something starts ACKing, clearing the transmit buffer won't help. This sounds like a problem with your transceivers or bus termination. Do you have 120 ohm termination at each end of the bus? Is the Rs pin of the svn65hvd230 shorted to ground to select high speed mode?

On Mon, Jun 20, 2022, 8:23 PM Tom Flanagan @.***> wrote:

Hi, when writing a CAN message, everything is working, but the message gets re-sent in a loop forever, eventually filling up all the queues and blocking the whole bus. Is there some automatic re-sending code if a message is not ACKed? how can I clear the transmitter?

I'm using 2x Teensy 4.0 with a SN65HVD230 transceiver (one sending and one receiving, no other nodes, on a bench) and have confirmed everything is working with a probe. I modified the example code slightly to send a unique byte counter for every byte and repeat the mailbox status to be able to debug better.

Receiver log: (same code but with the write commented out)

FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_INACTIVE MB9 code: TX_INACTIVE MB10 code: TX_INACTIVE MB11 code: TX_INACTIVE MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5249 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5383 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5517 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5651 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5785 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 5919 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 6053 ID: 76D Buffer: 0 1 2 3 4 5 6 7 MB 99 OVERRUN: 0 LEN: 8 EXT: 0 TS: 6187 ID: 76D Buffer: 0 1 2 3 4 5 6 7 (continues forever)

Sender log:

FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_INACTIVE MB9 code: TX_INACTIVE MB10 code: TX_INACTIVE MB11 code: TX_INACTIVE MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_INACTIVE MB10 code: TX_INACTIVE MB11 code: TX_INACTIVE MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_INACTIVE MB11 code: TX_INACTIVE MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_INACTIVE MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_INACTIVE MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_INACTIVE MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_INACTIVE MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37) MB15 code: TX_INACTIVE FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37) MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F) FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37) MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F) FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37) MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F) FIFO Enabled --> Interrupt Enabled FIFO Filters in use: 8 Remaining Mailboxes: 8 MB8 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x76D)(Payload: 0 1 2 3 4 5 6 7) MB9 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x4BC)(Payload: 8 9 A B C D E F) MB10 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x489)(Payload: 10 11 12 13 14 15 16 17) MB11 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x599)(Payload: 18 19 1A 1B 1C 1D 1E 1F) MB12 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x151)(Payload: 20 21 22 23 24 25 26 27) MB13 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x5F2)(Payload: 28 29 2A 2B 2C 2D 2E 2F) MB14 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0x641)(Payload: 30 31 32 33 34 35 36 37) MB15 code: TX_DATA (Transmitting)(Standard Frame)(ID: 0xC6)(Payload: 38 39 3A 3B 3C 3D 3E 3F)

Lightly modified example code:

include

FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> Can0; void setup(void) { Serial.begin(115200); delay(400); // pinMode(6, OUTPUT); digitalWrite(6, LOW); / optional tranceiver enable pin / Can0.begin(); Can0.setBaudRate(500'000); Can0.setMaxMB(16); Can0.enableFIFO(); Can0.enableFIFOInterrupt(); Can0.onReceive(canSniff); Can0.mailboxStatus(); } void canSniff(const CAN_message_t &msg) { Serial.print("MB "); Serial.print(msg.mb); Serial.print(" OVERRUN: "); Serial.print(msg.flags.overrun); Serial.print(" LEN: "); Serial.print(msg.len); Serial.print(" EXT: "); Serial.print(msg.flags.extended); Serial.print(" TS: "); Serial.print(msg.timestamp); Serial.print(" ID: "); Serial.print(msg.id, HEX); Serial.print(" Buffer: "); for ( uint8_t i = 0; i < msg.len; i++ ) { Serial.print(msg.buf[i], HEX); Serial.print(" "); } Serial.println(); } void loop() { Can0.events(); static uint32_t byte_count = 0; static uint32_t timeout = millis(); if ( millis() - timeout > 2000 ) { CAN_message_t msg; msg.id = random(0x1,0x7FE); for ( uint8_t i = 0; i < 8; i++ ) msg.buf[i] = byte_count++; Can0.write(msg); timeout = millis(); Can0.mailboxStatus(); }

}

— Reply to this email directly, view it on GitHub https://github.com/tonton81/FlexCAN_T4/issues/49, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFRQI7BYBU5Q43YCI424U6DVQEDRRANCNFSM5ZKOSBMQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

msadie commented 2 years ago

Maybe double check the connection from the receiving Teensy's Tx pin to the transceivers D pin.

Knio commented 2 years ago

Thanks! after testing again, it seems my transceiver is defective and can read, but not generate a voltage. I suspect there might be a lot of counterfeit VP230s around...

I would still like to know if there's a way to disable the auto-retransmission, or clear all the queues?

tonton81 commented 1 year ago

no, auto retransmission is done by hardware not software. if you send one frame it will try forever until someone gets it. clearing the queues won't help if your code still submits a single transfer