2025年9月23日火曜日

ESP32S3-DevKitCマイコンでUSBメモリにアクセス

 今までSDカードにはアクセスできましたが、USBメモリには対応できていません。
SDカードの方がSPI接続で手軽なのでしょう。SDカードは、アダプタが必要などUSBメモリほど手軽ではありません。

 ESP32S3-DevKitCマイコンが登場し、今までのESP32マイコンにはなかったUSBデバイスへのアクセスする端子が追加されました。

 確かに、 Espressif Systems社のサイトのブロック図を見ると、ESP32S3に「USB Port」が接続できるようになりました。

 今まで、USBメモリを制御用マイコンに接続して利用できるものはほどんどありません。
 そこで、USB端子を利用するもので調べると、HIDとして、キーボード、マウスにするなどはあるのですが、USB MSC(USB Mass Storage Class)として利用できるものは見当たりません。

ESP32S3 USB Driveがヒットした


 ある時、「esp32s3_USB_Drive-main.zip」がヒットしました。

動作環境はArduinoIDE1.8.19で動作させています。

 USB32S3マイコンにUSBコネクタ(Aタイプメス)を回路図のように接続して、サンプルプログラムを書き込みました。(電源+5Vは外部より供給しています)


実行すると動いた

 
 実行して、USBメモリを挿入すると、シリアルモニタに、右のようなメッセージが表示されました。
 メーカ:SanDisk
 容量:256MB

 認識されていることが確認できました。

ソースコードを見ると、
static void file_operations(void)
{
    const char *directory = "/usb/esp";
    const char *file_path = "/usb/esp/test.txt";
    struct stat s = {0};
    bool directory_exists = stat(directory, &s) == 0;

また「ESP_LOGI」関数を使用して、ログ出力をしているので、
ESP_LOGI(TAG, "Read from file: '%s'", line);

ArduinoIDEの設定を次のように

 「Core Debug level:」を「info」にします。
 
変更して書き込み直します。

 

 早速、実行させシリアルモニタを確認すると、


 USBを挿入するとデバイスが認識され、書き込んだデータ「Hello World!」と表示されることが分かります。



 USBメモリを外し、パソコンで確認すると、

 フォルダ「esp」が作成され、そのフォルダ内に「test.txt」が出来上がっています。






 これを使うと、データのやり取りが簡単にできるようになりそうです。



0 件のコメント:

コメントを投稿

回転軸をスムーズに動かす工夫

回転軸をスムーズに動かしたいことがあります。右の図は把手です。つまみを持って回転させる機構です。  この時に必要なのは つまみがスムーズに動く ことです。 3D設計  この機構を次のように設計しました。  左図のように、ハンドルにはφ6.0mmの穴が空いています。押さえの差し込ま...