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...