Forum Rule: Always post complete source code & details to reproduce any issue!
Tab Content
  • tonton81's Avatar
    02-13-2020, 06:29 PM
    setBaudRate(500000, LISTEN_ONLY); The library doesnt handle the crc frame, the hardware does
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-12-2020, 07:13 AM
    I am not sure the tolerance on T4, T3 ran off a CAN clock of 16MHz and T4 can run up to 60MHz, so the timings might be possible, I don't have the tools to test the theory though.
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-11-2020, 11:55 PM
    No, this is a driver made for the internal controller, which is much faster than the MCP2515 and without the SPI overhead, is there a reason why you want to use a 2515 when you have a much better built in one?
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-07-2020, 12:18 AM
    Clearing the watchdog register also causes a reset, but the clock gate obviously must be enabled for the watchdog, even if your not using the watchdog, just another way to cause a reset.
    52 replies | 1240 view(s)
  • tonton81's Avatar
    02-04-2020, 09:13 PM
    tonton81 replied to a thread BOM Teensy 4.0 in General Discussion
    I can confirm we had -30 temps here in winter recently and teensy 4.0 is running constantly in the car, on remote starts it enables the heated seats via canbus (because its always off on every start) Teensy 3.5 was...
    10 replies | 398 view(s)
  • tonton81's Avatar
    02-04-2020, 12:44 PM
    You can just cast it to an int (int8_t)can_MsgRx.buf
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-03-2020, 07:05 PM
    The ISR's only job is to queue it.into.the.buffer and exit, if enough frames can fill the queue before you finish pulling them the oldest, excess frames in the queue will be discarded. The background callback is if you...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-03-2020, 03:04 PM
    Thank you, after an observation with your code I caught a bug when configuring the TX mailboxes, the imask bit setting crashed the controller because it wasn't handled in ISR, so ISR never exited, works fine now This...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-03-2020, 12:24 PM
    Do you have a sketch i can load to run your example? Or one how i can see is how it is setup?
    160 replies | 9356 view(s)
  • tonton81's Avatar
    02-01-2020, 05:45 AM
    The receive buffer is only used when using interrupts, not when polling. The ISR only drops the frames in the queue, the callback fires when events() in the loop is ran and queues exist. So you process the queues in...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-31-2020, 08:54 PM
    Please make sure you update the repo, it was a month or so ago that was added
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-27-2020, 06:56 PM
    External Watchdog Monitor support has been added, with window mode support. The counters are 8 bits so your timeout can be anywhere between 7ms to 2 seconds. Window support is also supported to fire a callback if you...
    3 replies | 121 view(s)
  • tonton81's Avatar
    01-26-2020, 05:05 PM
    Since Paul found a patch for the reset I started working back on the watchdog interface. The previous version was only for watchdog1 (WDOG1). This redesigned model is templated, and works on ALL 3 watchdogs...
    3 replies | 121 view(s)
  • tonton81's Avatar
    01-25-2020, 10:20 PM
    Alternate pins are possible but not yet implemented in the library, it will be added soon though
    9 replies | 405 view(s)
  • tonton81's Avatar
    01-24-2020, 09:24 PM
    It will read from all mailboxes, but if you dont write fast enough only MB0 will be populated, in terms of efficientcy, unless your blasting frames they wont roll over to the next mailbox unless the first mailbox isnt...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-24-2020, 02:11 AM
    Please use msg.flags.extended = 1; This flag notified the transmit mailbox that it's an extended frame, otherwise it will be truncated as a standard ID by default. I tested just now to confirm extended frame is working...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-24-2020, 01:20 AM
    The RX and TX queue are sized from constructor, as a power of 2. The write is complete (but not yet transmitted) when a TX mailbox is available and your data is written to it. It is non blocking, and relies on the...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-20-2020, 09:11 PM
    Yes i know, the buffer data of RTR requests are unused, even if the buffer is populated (they are filled) the hardware doesnt actually transfer them, the length is to be used when the RTR response is to be given, the...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-20-2020, 08:01 PM
    You should remove this: /Users/sellensr/Documents/Arduino/libraries/SD It shouldnt be in your libraries folder unless you specifically put it there purposely for some testing or usage The library folder takes...
    10 replies | 297 view(s)
  • tonton81's Avatar
    01-20-2020, 07:50 PM
    holynoise, I was just thinking, with enhancements off and in multi ID mode, your original ID may probably work Can.setMBFilter(MB1, 0x14060050, 0x1406FF50); /* 2 ID multi-ID mode, non-range based */...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-20-2020, 07:42 PM
    Did you upload the wrong file? This compiles fine and shows no errors?
    13 replies | 191 view(s)
  • tonton81's Avatar
    01-20-2020, 07:33 PM
    If you provide the hex file on your website, you can make a batch file with the teensy command line uploader, that way a user just has to double click the batch file and it will upload
    2 replies | 70 view(s)
  • tonton81's Avatar
    01-20-2020, 05:59 PM
    Usually start at the top most error to solve problems, the remaining ones usually follow the initial cause. A full report should be posted of compiler as well as a test sketch so people can check it on their own Teensy...
    135 replies | 9899 view(s)
  • tonton81's Avatar
    01-20-2020, 01:54 AM
    DMA support is now added as well as remote frame transmit support. Reception of remote frames works fine as is from what I see, they goto your callback where you handle the data needed to send the frame reply back ...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-19-2020, 10:37 PM
    Ok, ill check that out after the DMA code
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-19-2020, 10:15 PM
    Sending RTR frames is on my todo list. Receptions should be fine though. I am currently working on the legacy DMA FIFO (only available on CAN3) and will circle back to RTR afterwards. Just to confirm, it's transmit only...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    01-19-2020, 09:19 PM
    Yes,ironically the watchdog which is burnt in the headunit which forces a reboot during a warp snapshot due to it not toggling the watchdog, causes the snapshot to.be corrupt, thus only way to recover is to unlock the...
    10 replies | 277 view(s)
  • tonton81's Avatar
    01-19-2020, 05:25 PM
    A little off topic, but the NEX pioneer series uses a similar mcu as teensy 4, when doing a warp snapshot a hardware modification is needed, simply a pullup on the timeout line just to prevent the watchdog from...
    10 replies | 277 view(s)
  • tonton81's Avatar
    01-17-2020, 05:32 AM
    You have "X" amount of mailboxes in TX mode, if you constantly write faster than they deplete they wont be able to output and a return of 0 will occur until at least one is available to write. Next, the sequential...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-14-2020, 05:40 AM
    If you have more than one mailbox accepting the same frames, then they can be in any order. Thats why people have 2 options. Ordered by FIFO, or run single mailbox mode (reject the rest or switch them all to TX). ...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-13-2020, 11:59 PM
    All bits (0x14) must be set to checked so no you cannot omit it, the hardware will simply toss it out as bad match, everything else is ok. Your filters are done in hardware for best performance, so its up to the SMB to...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-13-2020, 05:27 PM
    Are you looking to only save 2 IDs? Mailboxes can be completely custom configured. If you plan to use filtering it is highly recommended to put your priority ID filters in the leading mailboxes and have the catch-all...
    205 replies | 17156 view(s)
  • tonton81's Avatar
    01-08-2020, 09:42 PM
    This may be slightly off topic but i am using skpang's board and able to use both external and usb at same time, i havnt checked the datasheet or if the trace was cut as i ordered them together to be assured i wont have...
    24 replies | 553 view(s)
  • tonton81's Avatar
    01-08-2020, 06:15 PM
    Some features are specific to arrays, some to buffers, most work on both. It wouldn't be ideal to have seaparate names when there are alot of features to be handled would increase the function list, as long as it is,...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-08-2020, 06:02 AM
    Cb.remove is a unique feature implemented specifically for circular arrays, not circular buffers. The function only processes on circular arrays, and exits on buffers. It's used to drop an entire array out of a queue of...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-06-2020, 12:13 PM
    Ok, I corrected the offset needed of memmove on peekBytes, and readded it to readBytes, both function correctly. It's been updated on github, let me know if you still have issues :) My last example posted earlier...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-06-2020, 04:20 AM
    Thank you, I will check into that and fix it when I get back home readBytes is good now?
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-05-2020, 05:23 PM
    Have you tried a different compiler optimization? Smallest is default for LC, what happens when you try Fastest? Compilers sometimes may optimize things out, if there are code issues
    26 replies | 377 view(s)
  • tonton81's Avatar
    01-05-2020, 01:42 AM
    Ok try the patch https://github.com/tonton81/Circular_Buffer Test example: #include "circular_buffer.h"
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-05-2020, 01:22 AM
    can you post a full sketch i can load it to a standalone teensy to test? Last post is a snippet EDIT, nevermind, I see the issue with readBytes. That will need to be fixed.
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-05-2020, 12:43 AM
    Serial.printf("%lu: cb_trans contains = %d elements\n", millis(), cb_trans.back()- frontptr); Have you tried using the now pointed to array as references? &frontptr &xxxx.back() etc ...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-04-2020, 11:15 PM
    Front and back are just a pointer in CBA. Example: cb_trans.front(); This basically gives you the data stored in indice 2 of the front of the queue. Same goes for back(). This is just a pointer, basically, to your...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-04-2020, 08:44 PM
    The type for the buffer, is guarenteed to be the type you used in the template constructor. uint8_t, it is impossible for the compiler to generate a different type than the one you specified to the template parameter....
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-04-2020, 07:02 PM
    Have you checked .size() for number of elements? Perhaps your calculation is wrong, try size() to confirm back() and front(), by the way show the byte in either head or tail of the queue In printf, also, %d is...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-04-2020, 05:13 PM
    Dont worry, theres more features there than you realize, which makes data entry and data lookups one of the excellent features of circular arrays. :)
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-04-2020, 11:39 AM
    Yes when i made the function in previous libraries in past i made them weak, in case some other user code or library implemented their own.
    26 replies | 1125 view(s)
  • tonton81's Avatar
    01-04-2020, 05:40 AM
    1 is correct, but back is a READ pointer as well. Thats how you pull LIFO. size and available are the same, due to common usages between programmers, spme may prefer one over the other. Capacity is the size given in...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-03-2020, 05:31 AM
    That is true, but in the case of a T3.2 there is only one bus instantiated. On a T3.6, you can instantiate 2 CAN controllers, except this time unlike last libraries, choosing one won't duplicate code and enable...
    6 replies | 245 view(s)
  • tonton81's Avatar
    01-03-2020, 05:07 AM
    I could add print(ln) to circular arrays, it just wasnt added because it was just implemented in the buffer instead. If i do add it, though, since text has an arbitrary size, you will need the length() method which...
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-02-2020, 11:51 PM
    Templates are awesome, objects are created during compile time, very different than run time objects. FlexCAN_T4 demonstrates how compile time objects can be linked to run time objects, in order to control the template...
    6 replies | 245 view(s)
  • tonton81's Avatar
    01-02-2020, 03:05 AM
    print_test is a multidinensional array. The print functions are for the circular buffers not circular arrays, it stays at 0 because the function aborts. This is expected
    176 replies | 13651 view(s)
  • tonton81's Avatar
    01-01-2020, 10:29 PM
    When you do a read it pulls the item out of queue, by the time you check the size it'll be empty
    176 replies | 13651 view(s)
  • tonton81's Avatar
    12-30-2019, 12:02 AM
    Mailboxes are there even though you use FIFO or not, depends how advanced the configuration is set by the user. FIFO technically can't tell you how many are in queue (1-6), only yes or no, typically same response from a...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-29-2019, 08:06 PM
    It will return 0 of there are no more messages filling one or more mailboxes. 1 is returned when at least one mailbox was read of an available message. There is no other way of counting especially if the stream is too...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-29-2019, 07:30 PM
    What do you mean? ((Can0.events() & 0xFFF000) >> 3) will show if there are frames in queue (in interrupt mode). Is that what you meant or you mean polling mode? None exists at the moment for poll mode, aside from the...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-28-2019, 06:39 AM
    Don't forget when changing the SPI mode to do a dummy read before asserting the line to communicate, this will put the clock to a known high or low state for next transfer and probably wouldnt have corrupts data between...
    10 replies | 266 view(s)
  • tonton81's Avatar
    12-27-2019, 12:07 AM
    Do you have proper termination on the lines? Verify the transceiver is not crosswired to the CAN network as well, the code looks ok so far, and your printing to serial monitor what your sending as well (which is fine...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-25-2019, 09:11 PM
    Yes, USB3 supports ~1500mA on the port itself while USB2 supports 500mA, thats why USB2 drives require a 2nd USB port for power (1A combined) while USB3 can just use a single port All USB3 drives are compatible with...
    388 replies | 13591 view(s)
  • tonton81's Avatar
    12-25-2019, 08:05 PM
    You can't modify msg in callback because its read only, you can copy it then modify the copy CAN_message_t theCopy = msg; // copy it theCopy.seq = 1; The data 0xFF looks good, just make sure it's the right offset...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-24-2019, 09:11 PM
    You can send both onReceive to same callback if you wish to handle it in one function, each frame has a msg.bus (1,2,3 is returned for CAN1,CAN2, amd CAN3. To send frames ordered sequentially, you can set msg.seq = 1...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-24-2019, 08:08 PM
    Yes printing too fast can actually lag the java window enough that the IDE freezes to a halt Same thing happens with full page refreshing in canbus debugger im working on, 1ms can lock up the IDE but 10ms is ok,...
    15 replies | 324 view(s)
  • tonton81's Avatar
    12-24-2019, 08:04 PM
    Yup that looks good, will add it today or tomorrow as a 2.0 example, the FD beta example needs to be updated as well.
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-24-2019, 07:24 PM
    Try using Can0.setClock(CLK_60MHz) then do setBaudRate after that, check if you have timing issues with that after. I am using skpang's breakout board in my car with a retail Teensy 4, it has triple CAN transceivers,...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-23-2019, 10:51 AM
    Looks good but only put Can0.events() in the loop, onReceive needs only be set once in setup, just move that to setup and remove the while loop The return value is used by TeensyCAN, 12 bits contain Rx buffer queue...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-22-2019, 06:35 PM
    On a side note you can also use Can0.setMBFilterRange(MB0, 0x800, 0x805); since the IDs are within a tight range You may also have a callback per mailbox, like have 0x800 goto one callback, 0x801 goto MB1 callback,...
    160 replies | 9356 view(s)
  • tonton81's Avatar
    12-22-2019, 03:08 PM
    Can0.enableMBInterrupts(); is needed to enable all mailbox interrupt receptions (unless you rather poll as in your example) For the callback, you can call Can0.onReceive(canSniff); and add the function: void...
    160 replies | 9356 view(s)
No More Results
About tonton81

Basic Information

About tonton81
Biography:
Seriously? ;)
Location:
Montreal, Canada
Interests:
computers, micros, telecoms, gate systems, access systems, security systems, cars
Occupation:
sorter/driver/shipping

Statistics


Total Posts
Total Posts
3,204
Posts Per Day
2.76
Last Post
FlexCAN_T4 - FlexCAN for Teensy 4 02-13-2020 06:29 PM
General Information
Last Activity
Today 02:23 PM
Join Date
12-18-2016