stm32h5 fat12 implemented, using eeprm as msc, issue is i2c is blocking superloop.
Hi ,
Subject: i need to reduce the log write time what to do
I have an STM32H503 logging ~20 bytes per line (HH:MM:SS , X.X) to a 24Cxx EEPROM over I2C @ 400 kHz, with FAT12 + USB MSC.
Blocking time = the main loop stalls ~100–200 ms on each append while EEPROM writes finish.
Each line only adds ~20 B of text, but my FAT code does full 512 B sector read-modify-write on the data sector, again on the root directory (file size), plus metadata read/write.
That’s ~1 KB+ programmed per line (many 64 B page programs), so EEPROM ACK/program time dominates — not the 20 B payload or I2C speed alone.
Basic issue: small appends through sector-based FAT on page EEPROM → huge writes per line.
I’m thinking: defer root/meta to session end (back button), RAM cache, write only dirty 64 B pages.
Is that the right fix? Can others get ~20–50 ms/line on 24Cxx without dropping FAT?
