problems with microSD and communication between two teensy 3.6

Status
Not open for further replies.

isaacge

New member
Hello.

I am having a problema with trying to communicate two teensy 3.6 between them, while one of them is logging data to a microSD. The micro loggiong data is using the Sdfat.h library and I used the LowLatebncyLogging example from greiman. I have used i2c, with the i2c_t3.h library, and Serial1 to create the communication, but in both cases, when the micro that is logging reach the sample number 3069, this micro stops working (the another micro, which is sending a pair of PWM signals keeps working). The sampling period in the logging micro is 1 millisecond and each data block is filled with 1023 samples.

I have tried some debugging, and I found that the micro that is logging never finish writting the first block of data, and if I comment the code lines related to the communication with the other micro, the logging works fine.
 
I have found the solution. There seems to be a conflic between the sdfat library and the Serial1 to 6. To solve this problems, I had to add a file.sync after the file.open() and after file.write() (inmediatly after).
 
Interesting - Serial1-6 shouldn't be a factor conflicting with any other - if i2c is on pins 18&19? - though the Serial buffers may overflow during long SD writes?

Using the T_3.6 native SD card socket?
 
Interesting - Serial1-6 shouldn't be a factor conflicting with any other - if i2c is on pins 18&19? - though the Serial buffers may overflow during long SD writes?

Using the T_3.6 native SD card socket?

IIRC, the first 2 serial ports on the Teensy 3.6 (Serial1 on 0/1, Serial2 on 9/10) have 8 byte hardware FIFO (first-in, first-out) hardware queues, so they are less likely to lose data if interrupts are turned off for a bit.

In addition, Serial1/2/3 all support hardware flow control (CTS on a dedicated pin, RTS on any pin) on the Teensy 3.6. So you may want to activate this as well:
 
Status
Not open for further replies.
Back
Top