cancel
Showing results for 
Search instead for 
Did you mean: 

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

Nila
Associate II

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'

1 ACCEPTED SOLUTION

Accepted Solutions

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 on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

8 REPLIES 8
SofLit
ST Employee

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 on "Accept as Solution" on the reply which solved your issue or answered your question.

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.

I am using Nucleo-L452RE board.

SofLit
ST Employee

@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 on "Accept as Solution" on the reply which solved your issue or answered your question.

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 on "Accept as Solution" on the reply which solved your issue or answered your question.

@Nila wrote:

I am using Nucleo-L452RE board.


So the chip is STM32L452RE 

The Product Page is: 

https://www.st.com/en/microcontrollers-microprocessors/stm32l452re.html#documentation

The Reference Manual is RM0394

Tables 41 & 42 show you which peripherals have DMA capability:

AndrewNeil_0-1712136739811.png

AndrewNeil_1-1712136765177.png

See also Figures 25 & 26:

AndrewNeil_2-1712136812458.png

AndrewNeil_3-1712136834725.png

 

 

MCU part number is 497-17008-ND

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)