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 件のコメント:

コメントを投稿

LEDマトリックス表示装置の設計・製作 9(画像表示)

  LEDマトリックスに画像を表示させるには、いろいろな画像形式を知る必要があります。現在、よく使われるJPG形式やPNG形式は圧縮処理されて保存されています。これに対して、BMP形式やTIFF形式は非圧縮形式で、画像データがそのまま保存されています。このため、ファイルは大きくな...