I can't see all your code but just remove events() from the loop() if you have it so the callback will fire directly rather from the events() queue system, this will disable the RX queue system and fire directly to the...
most libraries depended on the original flexcan.h, however the one you are using is custom and accesses the hardware directly without depending on flexcan.h. Once you remap the addresses and figure out the...
the registers should be fine to port the older library to t4, however if you look at flexcan_t4's begin() you'll see the initialization routines needed, and you'll need to remap the address of can0 and can1 to that of...
both are the same, they call same function, so it's user preference really. You can continue writing to the buffer it will overwrite older values when full, no need to empty it and wait for it to fill up. this way you...
every person has a preference so this is what I mostly use:
static uint32_t t = millis();
if ( millis() - t > 1000 ) {
// DoSomething();
t = millis();
}
Just out of curiosity for SPI0 try to run this after SPI.begin() using default SPI pins on the T4.1 master:
#if defined(__IMXRT1062__)
IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_01 = IOMUXC_PAD_DSE(3) | IOMUXC_PAD_SPEED(3)...
According to the author of the port:
I am wondering if the modified core as well as updated toolchain have a side affect to this...
By the way USBHost.h was not found, which library you using so I can download...
that's an assert error from free-rtos end on the memory map itself, that could be a problem with the freertos port
have you tried fresh rtos with blinking light?
and
have you tried all your code just using the loop...
perhaps a demo example of usbhost on t3.6 with rtos and how it crashes, it could just be a code issue, maybe UB or sepamore issue. RTOS is very finicky sometimes, I have an ESP32 using quad ble connections and CAN and...
there are also multiple timing parameters for FD in the Advanced setbaudrate config menu, it displays all the timings for the same bitrate so you can pick one from the list, by default it uses the first match. The debug...
have you tried other baudrates? tried changing the clock to 60?
collink had same if not similar issue with 500000/2000000 specifically, while 1000000/2000000 was fine
unfortunately you're limited by the bus speed, abort cancels a transmission and may or may not guarentee the frame be sent out or not still, plus that would lead to more latency and missing frame to send. the transmits...
Uploaded patch for return value 0 if queue was full.
Tested it as well:
for ( int i = 0; i < 30; i++) {
CAN_message_t msg;
msg.id = 0x555;
msg.seq = 1;
msg.buf = 8;
msg.buf =...
the sender only has a transmit queue of 16, you'll need to increase that if you plan to burst
i went to check the write function unfortunately it doesn't check for overflows, as they'll return -1 if not successful in...
I made a daisy-chainable SPI slave library, you can use it either separate or same CS, and you can send whatever arrays you want from master to slave or slave to master
you could do it yourself though the slave...
yeah, its just for curiosity, we had an issue with SPI talking to an SPI slave T4 and this ressolved it, if it can fix other stuff since you have a scope it can be a good reference to look back on
out of curiosity, can you try this?
put it AFTER SPI.begin()
#if defined(__IMXRT1062__)
IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_01 = IOMUXC_PAD_DSE(3) | IOMUXC_PAD_SPEED(3) | IOMUXC_PAD_PKE; /* LPSPI4 SDI (MISO) */
...
Use TeensyThreads, even though RTOS on ESP32 uses 2 cores mostly it uses tasks on core 1 for arduino, TeensyThreads is very good at switching tasks(threads), although there are no sepamores you still would deal with...
solder joints look weak, did you adjust your code?
the fifo example with interrupts is a good start as that is guarenteed to work, provided you choose the right bus in the constructor and baudrate in setup, if that...
As paul said you need a proper circuit with logic mosfets and series resistor to protect the pins. You shouldn't be driving loads only applying a signal where the mosfet or relay takes care of the load end. czhlabs has...
i am using an esp32 with mosfets being commanded by teensy over CAN. So teensy can control the 10 gpios currently connected to the esp32. i also posted a sketch for it on github. mosfet boards you can get from tindie...
How can your PC serial monitor see traffic if:
A) you have no callback
B) you're not polling
C) you are not using interrupts.
Sending may be working but you will never receive anything. Take a look at one of the...
it doesn't work that way, it works based on the payload which can come in from anywhere. if you do go that route you'll most likely use filtering, but its a background queue that reassembles the buffers before sending...
currently i am printing debug from an ESP32 to Teensy using the same isotp that comes with flexcan_t4. so much easier snprintf'ing buffers and esp32 sending it to print to a teensy serial monitor :)
yes the ID is in...
This has come up before in the past and many people asked how to do it. I will put it here for reference. This will allow you to pass the template object directly into your own functions.
Now, we can't create and use...
if you cant send or receive at lower CAN speeds than you have set now (provided all nodes use the same speed), there is definately a transceiver/termination issue
No it has no relation to Serial
kneeT.enableMBInterrupts();
This is redundant, by default theres no RX mailboxes when FIFO is enabled unless you specify them to be RX as well.
Should be fine, I'm running the same library here and only sending and...
I usually just comment out stuff until the crash stops, but back when we did MST library we initially started with vectors, and they intermittantly crashed teensy 3.x as well. I see you always pushing into messageData,...