Closed tipo1000 closed 1 year ago
custom hardware is not supported since we don't have your hw to reproduce/test/fix the issue.
PS: next time opening an issue, please attach sketch and log as txt for readibility.
Hi,
What do you mean by this: "attach sketch and log as txt"? I copy-pasted the sketch and then marked it as "code" with "<>"-button.
Thanks, Tipo
I think I figured it out. I opened a new bug report where files are attached as txt. The new bug report (#140) is based on standard Adafruit Itsybitsy M0 express (SAMD21) board.
/tipo
Operating System
Windows 10
IDE version
Arduino 1.8.13
Board
Custom board based on SAMD21 (Adafruit Itsybitsy M0 express)
BSP version
"Adafruit SAMD Boards" by Adafruit version 1.7.10
SPIFlash Library version
3.11.0
Sketch as attached file if not stock example
What happened ?
I have a custom board where accelerometer is connected to ATSAMD21. Acceleration data is written to FLASH-memory (W25Q64JVZPI) connected to ATSAMD21 via SPI. There's a MUX-chip (analog switch) in between SAMD21 and FLASH-chip but it is not switched (toggled) in this test sketch and therefore doesn't contribute the timings.
It works otherwise but for every 100th or so write operation the write time is 80ms compared to "usual" 150us write time. This means that acceleration information is lost (can't be fetched from accelerometer) for 80ms. For example with 500Hz sampling rate 40 samples is lost and it means that post-processing of acceleration data is not useful.
The write time to FLASH should stay constantly under 1000us in order to be able to log acceleration data with targeted 1000Hz sampling rate.
Why does this delay happen? Can I get rid of it or shorten it somehow?
In my mind the FLASH-chip itself shouldn't be the bottle neck. The datasheet (page 65/79) mentions that "Page Program Time" is typically 0.4ms (max 3ms). https://www.mouser.fi/datasheet/2/949/w25q64jv_revj_03272018_plus-1489671.pdf
Attached is a test sketch which is partly based on "Adafruit SPIFlash" -library examples and partly mimics what my accelerometer sketch does.
How to reproduce ?
Run the attached sketch.
Debug Log as attached txt file
Output showing data written to Flash:
Screenshots
No response