no, it's pulled in manually by paul, i think its because i dont have a library config file or have it on Library manager
Type: Posts; User: tonton81
no, it's pulled in manually by paul, i think its because i dont have a library config file or have it on Library manager
thats cool, but thats 24 TX mailboxes when seq is only using 1 in FIFO mode, I think the higher queues and interrupt helped with ordered transfers
sounds like a timing issue, try adding a delay in setup somewhere before begin() is called
try to use a different pin, like the original SPI bus pin 10, you shouldn't need to change pins for it to work
why adc? are you sharing the bus? is it releasing the MISO line? I don't know your connections, everything you attached, or code, just bits of pieces and alot of guesswork...
sounds like you have...
if you have a problem at reading then yeah, that won't make my library work as it needs to read the registers. make sure your SPI MISO and MOSI lines are correct, theres an SPI connection issue...
well it should work with demo above, i have 8 chips running on a T4.0 on SPI with pin 10 as CS
if it's wired and configured properly, mcp.info() will detect it
what SPI pins you using?
example in first post, constructor is using 10 for CS, you would use 37
1 2 3 4 5 6 7 8
push front 9 will become:
9 1 2 3 4 5 6 7 8
push back 6 will become:
9 1 2 3 4 5 6 7 8 6
pop front returns 9, your data becomes:
1 2 3 4 5 6 7 8 6
pop back returns 6, your...
I needed BLE support for my Teensy 4.0 project, rather than deal with 2 mcus i added CANbus support TO ESP32 and have teensy use CAN to control the BLE devices programmed on the ESP32
pushing back puts your data at the end. popping front pulls data from the front (oldest)
this is why you can do FIFO/LIFO
odd.... it is the identical chip in both
are you sure theres no extra code blocking thats making the time expire sooner before feeding? (maybe something is taking a long time to initialize?)
if the callback doesnt fire without events(), you are not using the latest github copy. Please update.
Also increase your TX_SIZE in the constructor, the queue may be overflowing while waiting...
you can either use the .seq flag to enable sequential on absolute first TX mailbox, or just setup only 1 TX mailbox. you can have up to 64 on T4, 16 on T3, and if you really wanted you can setup 1TX...
Note alot of google results show issue with your transceiver. I am using all 3 CAN busses in my project. One of the issues explained in that post is that transceiver being able to receive but not...
Also you may wanna look at the first post here:
https://forum.pjrc.com/threads/51870-Help-getting-Canbus-data-from-teensy-3-2-and-SN65HVD230-transciever!
i agree, reception of fifo is ordered 6 deep, however on transmit, any of the 8 remaining TX mailboxes can send in any order. Sequential will use only the absolute first TX mailbox when sending...
toggle a led in your loop() to make sure the loop() is still running, also check your CAN lines are terminated
can you try a different tranceiver? I've blasted 1Kbyte arrays with TeensyCAN with CRC validation, if frames were missing it,ll never reconstruct the array at other node, pass the CRC, and fire a...
did you try changing the clock? all teensy flexcan libraries (can2.0) use the same calculation script, try it with different clocks (setClock()) and try your baudrates with the new clock.
teensy...
you mean like 33,333 and 10? it works but all nodes must match
the background handler runs in parallel with the interrupt callback (with or without events(events is for sketch callback which uses queues))
so just removing events() will make your own callback...
are you having issues transmitting or receiving the lost frames? you can play with the queues in constructor to find out?
Try using setClock() to configure the controller to use 60MHz peripheral...
you can try setClock() method, older teensies ran at 16mhz osc clock i believe, t4 runs at 24mhz osc by default, you can go up to 60MHz peripheral clock if needed. I am using 60MHz accross 3 busses,...
could it be possible the dynamic memory allocation "new" being called in the loop in multiple functions (also within a for loop) may be eating up the ram? have you checked if the heap is decreasing?
maybe the lcd code is slowing things down?, also if can.events() is in the loop(), remove it. The callback will fire directly rather than use the queues.
i guess there is 3 modes to flexcan_t4,...
On Teensy 3.2/3.5, you have CAN0
On Teensy 3.6, you have CAN0 and CAN1
on Teensy 4.0/4.1, you have CAN1,CAN2, and CAN3.
It's based on the hardware layout names on the controller as per the RM....
try using the FlexCAN_T4 example, and put in the constructor CAN0 since you are using teensy 3.5. See if anything changes, it is more recent than IFCT
Also you will miss frames if your loop is...
Tim, don't forget to check your Junk mail (spam pun intended) :P
the amount of mailboxes you have doesn't have anything to do with long messages, you would have to write a protocol that would take the received frames and reassemble them as theyre streaming, and...
MB is mailbox. That is a user modified demo that was contributed but setMBFilterProcessing is an internal function to the library and not meant for user sketch. Anyways, you shouldn't start off with...
a mailbox is like a hardware queue slot. each slot (mailbox) holds a CAN frame, so the MCU can read the frames from them
i've ran it for several years in automotive field. thermal runaway is not the issue of stability, bad programming is. also don't try sourcing power from gpios, and running an inline resistor to...
https://forum.pjrc.com/threads/56035-FlexCAN_T4-FlexCAN-for-Teensy-4?p=237283&viewfull=1#post237283
it sounds like the UNO is ACKing because teensy can't, which could be a transceiver compatibility issue. Some transceivers were posted not working properly. If teensy seems to be getting values...
in your loop your constantly calling read() but not using it's return (1). you really should use
if ( Can0.read(msg) ) {
// do whatever with a read message
}
check your CAN termination, if you got 1 frame and it stopped it may not be ACKing the megasquirt
Sorry i am at work. periodically check mailboxStatus() to see if the transmit mailboxes all show full. if that is the case you either have a connection problem with the transceiver or termination not...
pins 3 (TX) and 4 (RX) on Teensy 3.2 card
Busses:
Teensy 3.2: CAN0
Teensy 3.5: CAN0
Teensy 3.6: CAN0, CAN1
Teensy 4.0/4.1: CAN1, CAN2, CAN3
pin13 should definately turn on, but, you did mention you are on Teensy 3.2 :)
change CAN1 in constructor to CAN0
define crashing? do you see CAN traffic? your connections okay? you probably didn't see the startup prints due to no delay in setup(), but if your not connected to CAN properly the rest of the loop...
what does mailboxStatus() show? if it assigned 8 transmit mailboxes that probably explains why. I forgot what the default is (hopefully 16?) where 4 are STD, 4 EXT, and 8 TX. If so you can increase...
I just added transmit callback support. It is same as onReceive, just use onTransmit(MB8, callback) (mailbox specific) or onTransmit(callback) (global). The demo canSniff function can be used as a...
Serial1 is UART, Serial is SerialUSB
Lets rule out the software, put this on both your Teensy 3.6's pins 34 and 35, itll read and write to the bus and both serial monitors will be scrolling data
#include <FlexCAN_T4.h>...
put this at top line of canSniff function:
if ( msg.id != 0x1F5 ) return;
filtering it to view only specific IDs is also possible
#include <FlexCAN_T4.h>
FlexCAN_T4<CAN0, RX_SIZE_256, TX_SIZE_16> Can0;
void setup(void) {
Serial.begin(115200); delay(400);
pinMode(6, OUTPUT); digitalWrite(6, LOW); /* optional tranceiver...
1) set boards manager to 3.2
2) select FlexCAN_T4 example FIFO with interrupt
3) in the example make sure CAN0 is set in the FlexCAN_T4 constructor
should be fine