【M5】ATOMIC TFカードキットいじってみた<テストプログラム動作OK>

cm級GNSS-RTK-MBログシステム開発中ですが、大量のデータを無線で送信ログすると0.3%程度のエラーがでてデータ欠落してしまう課題が発生しました。貴重なデータなので、1個でも欠落させたくないので、無線ログはやめて、データ作成マイコン自体でSDカードにログする方式を検討してます。筐体からSDカードは取り出さずに、WiFI接続してWEBサーバーにログファイルを送信してWebサーバーに保管するプログラムを作ってみました。
※2022年度のArduinoIDEの環境では、ATOMIC TF動作エラーでます。
対策は、昔のボードライブラリーに戻すことです。詳細は下記記事
【M5】AtomicTFが2022年Arduino環境で動作しなくなった<昔の環境に戻す>

※1年後にAtomicTFカード使わなくなりました。
理由は、M5系のArduinoIDEでのSDライブラリーの書き込み速度が遅すぎるためです。
=>20msec周期の10byteデータを書き込んだ場合でもデータ落ちが発生することが判明いたしました。
=>ArduinoIDEではなく、ESP32の純正IDE ESPIDFを使えば、高速化可能ですが、難しくて私は使えません。
■動きのセンシングは、1~10msec周期の現象が多いので,いろいろなニーズに対応できてないことが分りました。
そこで、2022年からは、Arm CorTex-M7搭載の超高速マイコンTeensy4.1を使うことにしました。
SDカード書き込みは、1KBを200μsec周期で書き込みが可能ですので、応答周波数は、数KHz~数十KHzと
動きのサンプリングをログするのに十分な対応ができます。T
※Teensyは、Arduinoコンパチなので、M5シリーズよりプログラム簡単です。

【RTK22】超高速マイコンCortex-M7搭載Teensy4.1いじる その1<SDcardWrite5MB/sec以上でる>

 

■M5AtomのSDカードキット
●経緯
 今までM5StackでSDカードログしていたのですが、F9PのコンパクトBOX(35x64x100)の筐体内に
収納するために、M5AtomにSDカードを取り付ける検討をしました。SPI接続は、配線の引き回しでノイズを食らってNGになった経験があるので、自分で基板は作らずに、M5社の正規製品を購入することにしました。https://m5stack.com/products/atom-tf-card-kit

SwitchSceienceさんに在庫ありました。(2021年1月24日現在)
https://www.switch-science.com/catalog/6475/

●開梱
下のピンは全部基板側に行ってしまったので、シリアルはGroveコネクタで1個だけ使えます。

16GB以下のTFカード(マイクロSDカードのこと)

取り付けネジがついていて、M5Stackよりシステムに組み込みやすいです。

※2021年6月1日追記
ATOMIC TFキットはSPIで3ピンつかってますが、他のピンでシリアル通信やADCができないか調べてみました。22,26,32が空いてました。詳細はこちらの記事にあります。

【M5】M5Atom liteのUART用ピン探し<21,25は使えない>

■プログラム動作
①SD書き込みのオリジナルは
https://github.com/m5stack/M5-ProductExampleCodes/tree/master/AtomBase/AtomicTF

●テストプログラム機能
TeraTermですべて操作します。ListをとってReadした絵

arduinoのFSシステムを基本として、一部改造してあります
未だ、バグあるので、自分で作成したファイルしかいじらないほうがいいです。

キーイン
大文字です
   機能説明
L List表示します。ファイルNoがついてますのでそれがファイル操作の目印になります
R ファイル番号をすると内容を表示します。
  W ファイル名を作成して、内容をキー入力します。メモ程度の情報をファイルに作成できます。
ファイル名を入れたら ピリオド .をいれると次に入力データを聞いてくるのでキーインして
最後にENTERで入力データ確定してファイルを書き込みます。
ファイルの最初の行には、ファイル名が記録されます。これは事後の整理用です。
       U 設定してあるWebサーバーへ指定したファイルを送信して保管します。
保管したファイルは、サーバーへFTPでアクセスして、照会、ダウンロードできます。
  D ファイル番号を指定してファイルを消去します。(未だバグ気味で消えない場合がある)
A,R Append Rename は未だ非対応です。

※WebアップロードしてFFFTPで確認してOKだった。
短いファイルだと数msecでWEBへ転送できるので頻繁にできます。
Web書き込みを設定したい方はこちらの記事を見てください。

●プログラム
GISTにおいてあります。#include <M5Atom.h>をライブラリーで登録しておいてください、SPIピンがM5StickCと異なるので、M5StickC.hではコンパイルできませんでした。
https://gist.github.com/dj1711572002/f0f02817fb2c1af0e04e624ff0ac35db

※1:コンパイル転送が終わったら、一旦USB電源をきってから立ち上げてTerTermと接続してENTERをいれると
メニューがでてきます。

 

●以後
  基本テスト動作できたので、F9Pのコンパクトシステムへ実装始めます。

※2021年5月19日追記
  TFカード使い始めて4か月間スキー測定で酷使してきましたが、ここ数日、SD書き込み周期が遅くなってプログラムにエラーがでるような現象が発生しだしました。
 基板を疑ってみたのですが、なんと16GBのSDカードの異常でした、フォーマットし直したら正常に戻りました。この原因をさがすのに1日かかってしまいました。
TFカードキットおかしいなと思ったらまずはSDカードを交換してみてカードか本体かを区分けしたほうがいいです。

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です