This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCAN4550-Q1: Transmits empty frames?

Part Number: TCAN4550-Q1
Other Parts Discussed in Thread: TCAN4550

So, I'm in the progress of writing a custom TCAN4550 driver, and have run into a bit of an issue.

So-far, only regular CAN, no CAN-FD or extended identifiers.

Receiving data seems to work fine. ID, DLC and payload are all what I expect.

However, when transmitting, the frames that are received on the other end seems to be all zeroes?
ID, DLC and payload is all 0.

I can see that the packets go out (since the other end is actually receiving something), as well as seeing the bits getting set in the TXBTO (0x10D8) register.

I have a suspicion that something is wrong with how the MRAM is organized and I'm asking empty buffers to be transmitted, perhaps?

Relevant registers during setup:
MRAM 0x8000..0x8800 cleared to 0
TXBC = 0x20000000
TXESC = 0x0
TXEFC =  0x600 + (0 << 16) + (0 << 24)

Device is in "normal" mode, and rx works.

Sequence I use to transmit a message:
uint32_t buffer[4];
canID = 0x200;
rtr = 0;
dlc = 4;
buffer[0] = (canID << 18) + (rtr << 29);
buffer[1] = dlc << 16;
buffer[2] = 0xAA55BB66;
buffer[3] = 0xF00DCAFE; // Filler, as indicated in user-guide, section 4.2
uint32_t requestMask |= (1<<0); // Hardcoded to buffer #0 for now

I then write all 16 bytes to MRAM location 0x8000.
After that, I write "requestMask" to TXBAR.

Once done, the message goes out, but contains all zeroes.