Arduino(2)
    Arduino Uno でSDカードの読み出しを調べる


 Arduino Uno でマイクロSDをアクセスしいると、読み込みが「ヤケに遅いな!」データ読み出し速度はどのくらいかな思い、調べました。
 いろいろ測定方法やプログラム的不手際がありますが、実力は、50uS/バイト以上だと思へます。

●Arduino Uno でマイクロSDからの読出し

 次に、プログラムと、読み出すマイクロSD内のデータを示します。
 プログラムで、読み出し部分は赤カッコで示す4行です。データは、4種類です。
 4行のプログラムの内、2行は波形観測用のLED点灯と消灯用、残りはファイルバイト数取得とデータ転送です。

 データは、ファイル名「SdTest01.txt」〜「SdTest04.txt」で示す、4ファイルです。










●ファイル「SdTest01.txt」の読み出し動作の波形

 プログラム動作させると、次の様なシリアル通信と動作波形を得ました。

 これを見ると、2バイトの読み出しでは、2.5mS程のSDカードアクセスが1回、50uS程度のデータ転送が1回です。
 1回のSDカードアクセスで、データの塊をバッファして、小分けにして取り出すロジックの様です。

 












●ファイル「SdTest04.txt」の読み出し動作の波形

 プログラム動作させると、次の様なシリアル通信と動作波形を得ました。

 これを見ると、1040バイトの読み出しでは、SDカードアクセスが3回、データ転送が多数回です。時間は、1.02秒です。
 これから、1回のSDカードアクセスで1セクタ分の512バイトと判りました。
 1040バイト転送時で1.02秒は、約1mS/バイトになります。これは、9600bpsでシリアル転送しているのでバッパが一杯になったからだとと思へます。実力は、50uS/バイト以上だと思へます。













ホームへ戻る