From: Marc Kleine-Budde <mkl@pengutronix.de>
To: "Yegor Yefremov" <yegorslists@googlemail.com>,
"François Beaulier" <fbeaulier@orange.fr>
Cc: "linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Subject: Re: Linux board with 10 CANs
Date: Fri, 15 May 2015 11:11:07 +0200 [thread overview]
Message-ID: <5555B82B.2010204@pengutronix.de> (raw)
In-Reply-To: <CAGm1_ktyE_CjFwEfi1M48hDxM58HMJNAhQgYC3-8ivJ6AgE1WQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3345 bytes --]
On 05/15/2015 10:20 AM, Yegor Yefremov wrote:
> On Fri, May 15, 2015 at 9:56 AM, François Beaulier <fbeaulier@orange.fr> wrote:
>> 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.
>
> Is it possible to attach 8 SJA1000s over local bus? The driver is
> already in mainline kernel.
Don't use the mcp251x.
If you have PCIe, there are some dual CAN modules (available in miniPIC,
too). But PCIe ist probably quite cost intensive. USB would be an
option, but I'm not sure if there are modules that can be
connected/soldered to a PCB. As Yegor said, SJA1000s + a CPLD are an
option, too, but IIRC the SJA1000 has a 5V IO interface.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
next prev parent reply other threads:[~2015-05-15 9:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5555B82B.2010204@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=fbeaulier@orange.fr \
--cc=linux-can@vger.kernel.org \
--cc=yegorslists@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).