cancel
Showing results for 
Search instead for 
Did you mean: 

Is there any way to expand the CAN filters on STM32 MCUs using external Hardware?

Abhishek Deouskar
Associate III

Hello,

I have been looking to read almost 200 different Extended CAN Ids on any of the CAN equipped STM32 MCUs. Speed in 1Mbps on CAN.

Currently, I am working with ID list mode using all 28 filters and switching between CAN Ids as required. But I am facing slight data loss which I am trying to avoid. Is there any method to expand the 28 filters to 200 by using some external filtering ICs? To pump up speeds, I am already using PLL on the MCU and a decent CAN Transceiver. I also wrote code using STD Periph libraries to optimize as much as I could. I cannot simply turn off all filtering as those 200 IDs are not the only IDs I am receiving on the CAN port.

2 REPLIES 2

No, what you likely need to do is have the filters cover a range, and have your code prioritize the pulling of data into internal buffers and leave the IRQ handler immediately after emptying all FIFO slots. Process, decode and respond in a separate worker thread/task.​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
turboscrew
Senior III

If handling the ranges is too heavy, you probably have to use some other MCU with a built-in CAN processor. There are external CAN controllers, but they tend to be quite low-capacity - at least those that I found with a brief googling. There's also - of course - the possibility to use two STM chips such that the other MCU only works as a CAN front end.