Hello,
I bought a qwiic openlog (I2C communication) and I am very fan of the product. I am using a TI launchpad to test it. So I put a micro SD card in th shield and I verified that the config file was created. However, every time I try to send data to the openlog, the communication is successful (I could see the signals with the scope + I cheched the registers), files were being created in the SD card but nothing was recorded: empty files. I tried to check the arduino examples to send the right commands but no improvement.
For my test, I send the initialization command, then the create file command then I send several bytes and I stop the i2c communication, can you help me with this please? thank you in advance
Hi KIRMYONE.
Do you happen to have an Arduino Uno handy to test the Qwiic OpenLog with our example code? Sadly we don’t have any code for the Launchpad and I don’t know if there are errors in your code that are causing the issues you’re seeing.
Give our Arduino code a try and if you’re not able to log data let us know.
Thank you for your suggestion,
I sadly don’t have an arduino board. I just want to know if the order of command sending that I explained in my first soft is correct, is there something important that I should do? Can I send simple bytes instad of characters or strings? thanks in advance
I had a similar problem, check this thread:
viewtopic.php?f=105&t=50227
Here is the code I used, you just send the Write command followed by the bytes you want to write:
void OpenLogWrite(U8 *src, U8 qty)
{
/* locals */
U8 msg[32];
U8 x;
/* append the command to the start of the buffer and get length*/
x=OpenLogCopyName(msg, src);
msg[0]=WRITE_FILE_ADDR;
/* call write the string */
I2CWrite(QOL_DEFAULT_ADDRESS, msg, x);
}
It seems that the Version 2 code can only save as much as two characters and then it truncates the rest. When you complete the I2C write to save the characters there will be a write cycle to the card, which will take around 10ms, even with a fast card. That limits your throughput to less than 1200 BAUD and probably impacts the life of the card as it writes to the card after every character. The good news is that QWIIC properly uses clock stretching, so you will know when the write cycle is complete. The bad news is that you will need to reflash QWIIC with Version 3 code to improve throughput and write entire strings. I opted for a different SD interface.