linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Linux board with 10 CANs
@ 2015-05-15  7:56 François Beaulier
  2015-05-15  8:20 ` Yegor Yefremov
                   ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: François Beaulier @ 2015-05-15  7:56 UTC (permalink / raw)
  To: linux-can

Hi,

I'm starting the design of a CPU board, based on a computer on module 
with a very common SOC like i.mx6 or am335x.
I need to fit my board with at least 10 CAN ports, may be more. (The SOC 
have 2 CANs so i need 8 more)
The board will run with Linux and of course i want a socketcan interface 
for each bus !
CAN bitrate needed is quite low (50kbps) and latency is not critical but 
bus load may reach 100% sometimes.
As far as possible i want to avoid driver development, or just doing 
slight modifications on an existing driver.
I don't want to use MCP2515, i had trouble with it on a previous design 
because of the lack of buffer in the chip.
I can't imagine putting 8 MCP2515 and not missing any frame, but may be 
i'm wrong ?

Here are the options i have considered, they involve using external MCUs 
to provide enough CAN interfaces :

- MCUs with SLCAN : SLCAN have the advantage of simplicity and it should 
offer enough performance at low data rate. Problem is that it would 
require 8 UARTS. I could modify SLCAN driver to allow multiple CAN 
channels on the same UART, and so use MCUs with multiple CANs, does it 
sounds reasonable ?

- MCUs with SPI 1 : adapt MCP2515 driver in a way to make the SPI 
protocol manageable on the MCU side (SPI slave). The MCU will be able to 
provide the buffer for CAN frames that the MCP does not have. This 
option is just a way of trying to go fast, it is not very elegant, and 
have the limitation of one CAN channel per SPI connection / driver instance.

- MCUs with SPI 2 : use the Stefano Babic SPI driver posted on this 
list. This is probably the best choice for a long term and more generic 
solution. But i'm afraid it may require too much work to complete. What 
is the status of this driver right now ? Does anyone have an idea of the 
remaining work to do to make it ready for mainline ? Stefano are you 
available to spend more time on it ? I'm also wondering whether multiple 
instances of the driver can run concurently if i put more than one MCU ?

Concerning the MCU software i could release it as an open-source 
project, anyone interested in participating ?
I'm very familiar with STM32 MCUs so i will probably use an STM32F072 
(low cost cortex M0 with one CAN).

Any idea or advice is welcome, thank you for reading this much too long 
post.

Regards

Francois Beaulier
www.ingelibre.fr

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2015-05-21  3:20 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-15  7:56 Linux board with 10 CANs François Beaulier
2015-05-15  8:20 ` Yegor Yefremov
2015-05-15  8:50   ` François Beaulier
2015-05-15  9:11   ` Marc Kleine-Budde
2015-05-15  9:33     ` François Beaulier
2015-05-15 10:24       ` Andri Yngvason
2015-05-15 12:40         ` François Beaulier
2015-05-15 12:47           ` Marc Kleine-Budde
2015-05-15 13:04             ` AW: [BULK]Re: " Uwe Wilhelm (PEAK-System)
2015-05-15 13:17               ` Marc Kleine-Budde
2015-05-15 13:20                 ` AW: " Uwe Wilhelm (PEAK-System)
2015-05-15 14:18               ` François Beaulier
2015-05-15 12:38       ` Gerhard Uttenthaler
2015-05-15 12:48         ` Marc Kleine-Budde
2015-05-15 13:54 ` Bernd Krumboeck
2015-05-18  9:07   ` François Beaulier
2015-05-18 13:31     ` Bernd Krumboeck
2015-05-20 11:35       ` Gediminas Simanskis
2015-05-21  3:19         ` Bernd Krumboeck
2015-05-15 15:24 ` Tom Evans
2015-05-18  9:25   ` François Beaulier
2015-05-18  9:40     ` Gerhard Bertelsmann
2015-05-18 11:13       ` François Beaulier
2015-05-18 12:56       ` Tom Evans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).