質問: Arduinoで開発しています。 100Hz(10ms)でセンサデータ取得しRAMにため込み、10秒ごとに100KB程度のデータをmicroSDにwriteしています。 microSDの処理時間がクロック周波数156 MHzの時、20ms~40msでセンサの周期10msより長いため、microSDにwriteすると、センサ取得時間を逃してしまいます。 質問1.microSDへのwriteを高速化する方法はありませんか。 質問2.microSDへのWriteをノンブロッキング処理に変更する方法はありませんか。 質問3.内蔵FLASHの容量は8MBで間違いありませんか。
回答: 直接質問に答えるには情報が不足しているので一般論 1 : microSD 自体の速度は十分か (class いくつ?) 2 : とにかく RAM にため込み、測定の終了段階で microSD に書くのではだめか? 3 : Arduino は確か 5V 電源なので microSD 3.3V に直結はできなかったはず、電圧変換回路は? microSD 側が遅いのであればノンブロッキングにしたところで破綻するのは見えているっス。 電圧変換回路の IC の仕様次第では速度を上げることはハード的に不可能 ってことでオイラなら 2. を採用するっス(測定時間に制限が発生するが制約事項とする)