Skip to main content
Associate
April 3, 2024
Solved

is it possible to transfer data through CAN using DMA, Does the CAN support DMA?

I want to receive the data from one nucleo board through CAN protocol and it should trigger the DMA and shuffle the received data and transmit back again to another board.
In ioc configuration I am unable to enable the DMA (peripheral to memory and vice versa), it is showing like Memory-to-memory configuration. Manually I added the DMA configuration and trying to link the DMA with CAN peripheral, it is showing error like CAN_HandleTypeDef has no member named 'hdmatx'

This topic has been closed for replies.
mƎALLEm
mƎALLEmBest answer
ST Technical Moderator
April 3, 2024

Ok thanks:

If you look at the reference manual RM0394 tables 41/42, there is no DMA request to the CAN peripheral:

SofLit_0-1712136682002.png

So no CAN transfers with DMA.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.

8 replies

mƎALLEm
ST Technical Moderator
April 3, 2024

Hello,

First answer: not possible to use DMA with CAN.

Which product are you using?

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
NilaAuthor
Associate
April 3, 2024

I am using Nucleo-L452RE board.

mƎALLEm
mƎALLEmBest answer
ST Technical Moderator
April 3, 2024

Ok thanks:

If you look at the reference manual RM0394 tables 41/42, there is no DMA request to the CAN peripheral:

SofLit_0-1712136682002.png

So no CAN transfers with DMA.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
Andrew Neil
Super User
April 3, 2024

The Reference Manual(s) for the chip(s) you are using will tell you what peripherals are capable of DMA.

The Reference Manual will be available on the Product Page for the chip, under 'Documentation'.

You haven't said what chip(s) you are using, so impossible to be more specific.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
mƎALLEm
ST Technical Moderator
April 3, 2024

@Nila ,

Before closing the thread could you please provide the MCU part number or the board you're using?

The answer I provided needs to be more cocurate if you provide this info.

Thanks

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
NilaAuthor
Associate
April 4, 2024

MCU part number is 497-17008-ND

Andrew Neil
Super User
April 4, 2024

That's not an ST Part Number!

As already noted, the ST Part Number for the MCU chip is STM32L452RE 

 

(It looks like a DigiKey stock number - for the board, not the MCU)

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.