Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 6 of 6

Thread: Teensy 3.6 Dual FlexCan Capabilitys

  1. #1

    Teensy 3.6 Dual FlexCan Capabilitys

    I'm looking to use a 3.6 for its dual can capability.

    I'm working on a project that would split a existing can bus and put this teensy in between. Then making the teensy Eco messages from one bus to the other both ways.
    I need something fast enough to Eco the messages back and forth without dropping any messages.
    The end Goal would be to manipulate 1 of the Ids as it passes through.

    Current project is 500bps standard frames.
    Anyone know about how many messages per second it can Eco back and forth?

    I've been able to do this with Arduino nano on lower traffic bus with 2 SPI Can modules but its not fast enough for the current project.
    I also tried a Teensy 3.2 I have and used 1 SPI module and the flexcan this looked a little faster but still not fast enough.

    Thanks

  2. #2
    Senior Member
    Join Date
    Jan 2013
    Posts
    843
    Teensy 3.2 can easily handle shuttling messages (and perform some transformations) between 2 CAN buses running at 1MBit (if the SPI CAN controller can buffer a couple of messages).

    Teensy 3.6 will make it much easier to get things running with sub-optimal code.

    Anyone know about how many messages per second it can Eco back and forth?
    I would expect that Teensy 3.6 could handle 360'000 messages per second. It has 3 DMA-capable SPI interfaces. With 10 CAN controllers on each (e.g. a HI-3110), 12'000 messages per CAN bus per second, you get 360'000 messages. That would be 180'000 messages per second shuttled back and and forth.

    95% of the work could be handled by the DMA controller with no CPU usage at all.

  3. #3
    Junior Member
    Join Date
    May 2016
    Posts
    9
    Quote Originally Posted by bigboosted View Post
    I'm looking to use a 3.6 for its dual can capability.

    I'm working on a project that would split a existing can bus and put this teensy in between. Then making the teensy Eco messages from one bus to the other both ways.
    I need something fast enough to Eco the messages back and forth without dropping any messages.
    The end Goal would be to manipulate 1 of the Ids as it passes through.

    Current project is 500bps standard frames.
    Anyone know about how many messages per second it can Eco back and forth?

    I've been able to do this with Arduino nano on lower traffic bus with 2 SPI Can modules but its not fast enough for the current project.
    I also tried a Teensy 3.2 I have and used 1 SPI module and the flexcan this looked a little faster but still not fast enough.

    Thanks
    I have sucessfully done this on 1000bps fully saturated bus on an teensy 3.6 while at the same time sending everything using serial to the computer for analysis. the CAN Bridge took way under 10% of cpu cycles.

  4. #4
    I just got my teensy 3.6 yesterday and was able to hook it up and test it.

    It works flawless with the example eco code given. Only change I made was bus speed to 500bps

    1250 messages per second going one way with 220 per second going the other way. And just to see what would happen I added another 850 per second going each way one way at a time with not one dropped message. Very impressive!

  5. #5
    Junior Member
    Join Date
    Jul 2017
    Posts
    4
    bogboosted,

    I am having difficulty running FlexCAN CANtest.ino with Arduino IDE 1.82 and Teensyduino,
    using two SN65HVD230D transceiver adapter boards from https://www.tindie.com/products/Fusi...-teensy-35-36/


    The while (Can0.available()) is never satisfied.
    Your reference to example eco code refers to which code in particular; please send URL.

    Thanks,
    Dave K

  6. #6
    Hello, i have a quite similiar question. I have the Teensy 3.6 and the 2 transceiver board from tindie https://www.tindie.com/products/Fusi...r-teensy-35-36

    For the start I just wanted to send via the CANTest Lib Messages from Can0 to Can1 and watch it on the serial monitor. Unfortunately I have the same issue "The while (Can0.available()) is never satisfied.".

    Does anyone have and idea?

    cabling is 3,3v and GND from Teens to tindie board. Connect Can0 H and Can1 H. Connect Can0 L and Can1 L together.
    Connect the Can0RX/TX ports to the teensy 29,30,33,34.
    I tried it with an additional termination resistor of 120 Ohm but I think those are not necessary.


    Thanks

    Christian

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •