コンテンツにスキップ

Arduino

OpenSiFliには、Zephyrをベースにした、SF32向けのベータ版Arduinoコアがあります: OpenSiFli/ArduinoCore-zephyr。これはsifli:sf32lb52 Arduinoパッケージを公開しており、Boards ManagerにはSiFli Serial Boardsとして表示され、現在はSiFli SF32LB52 DevKit LCDボードを対象としています。

スケッチの試作、周辺機能の簡単な確認、デモ、初期プロトタイプには、このArduinoコアが適しています。本番向けファームウェア、Bluetoothスタックの調整、グラフィックス負荷の高いアプリケーション、低消費電力化、カスタムボードの立ち上げには、SiFli-SDKを使用してください。

ベータ版のコア

OpenSiFliはこのArduinoコアをBETAとし、テスト用途に限って使用するよう案内しています。機能、API、ローダーの動作、パッケージ内容、リリースの仕組みは変更される可能性があります。本番用途向けとして扱わないでください。

必要なもの

ハードウェア

  • SiFli SF32LB52 DevKit LCD。
  • ボードのUSB-to-UARTインターフェースに接続するUSB Type-Cデータケーブル。
  • Windows、macOS、またはLinuxを実行するコンピューター。

ソフトウェア

ボードパッケージのインストール

Arduino IDE > Settingsを開き、次のURLをAdditional Boards Manager URLsに追加します。

https://github.com/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index.json

中国本土のユーザーは、ミラーされたパッケージインデックスを使用してください。

https://downloads.sifli.com/github_assets/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index_cn.json

次にBoards Managerを開き、SiFli Serial Boardsを検索して、sifli:sf32lb52プラットフォームをインストールします。

Arduino CLIからもインストールできます。

arduino-cli core install sifli:sf32lb52 \
  --additional-urls https://github.com/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index.json

中国向けミラーを使う場合:

arduino-cli core install sifli:sf32lb52 \
  --additional-urls https://downloads.sifli.com/github_assets/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index_cn.json

ボードの選択

Arduino IDEで次を選択します。

SiFli SF32LB52 DevKit LCD

ボードのFQBNは次のとおりです。

sifli:sf32lb52:sf32lb52devkitlcd

OpenSiFliのボード定義では、このArduinoボード名をZephyrターゲットsf32lb52_devkit_lcdとバリアントsf32lb52_devkit_lcd_sf32lb525uc6に対応付けています。

ビルドオプションの選択

このコアには2つの重要なメニューがあります。

ビルドオプション
メニュー オプション 意味
Mode Standard ロード後にスケッチが自動的に開始する。
Mode Debug Zephyrシェルがsketchコマンドを待機する。
Link mode Dynamic スケッチがZephyrローダー向けにパッケージ化される。
Link mode Static スケッチが書き込み可能なバイナリにリンクされる。

Zephyrローダーを使う場合はDynamicを選びます。スケッチを書き込み可能なファームウェアイメージにリンクする場合はStaticを選びます。

ボードをシリアルダウンロードモードにする

OpenSiFliのドキュメントによると、初回使用時にはボードをシリアルダウンロードモードにする必要があります。SF32LB52 DevKit LCD用のブート/リセットシーケンスを使用してから、Arduino IDEまたはCLIからアップロードしてください。

アップロードツールはsftoolです。

シリアルスモークテストのアップロード

まずはシリアル出力を確認しましょう。このテストでは、LEDの極性に依存せず、アップロード、リセット、実行環境の起動、コンソール出力の経路を確認できます。

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Hello from SF32 Arduino");
  delay(1000);
}

Arduino IDEからアップロードするか、Arduino CLIを使用します。

arduino-cli compile \
  --fqbn sifli:sf32lb52:sf32lb52devkitlcd:link_mode=dynamic \
  /path/to/YourSketch

arduino-cli upload \
  -p /dev/cu.usbserial-XXXX \
  --fqbn sifli:sf32lb52:sf32lb52devkitlcd:link_mode=dynamic \
  /path/to/YourSketch

/dev/cu.usbserial-XXXXをボードのシリアルポートに置き換えてください。Windowsでは対応するCOMポートを使用します。Linuxでは対応する/dev/ttyUSB*または/dev/ttyACM*ポートを使用します。

Serial Monitorを115200ボーで開いてください。Standardビルドモードでは、スケッチが1秒ごとに1行を出力するはずです。Debugビルドモードでは、Zephyrシェルを開いて次を実行します。

sketch

インストールしたSF32LB52 DevKit LCDのバリアントでLED_BUILTINが定義されているか確認してください。Arduinoのピン番号が共通とは限りません。マクロがあり、ボード上のLEDがそのバリアントに割り当てられている場合は、シリアルスモークテストの成功後にBlinkを試してください。そうでない場合は、GPIOを選ぶ前にボード資料でLEDの接続先と極性を確認してください。

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
}

トラブルシューティング

表: トラブルシューティング
症状 確認事項
パッケージが表示されない パッケージインデックスURLを確認し、Arduino IDE 2.xを使用してください。
アップロードが失敗する ボードをシリアルダウンロードモードにし、シリアルモニターがポートを占有していないことを確認してください。
スケッチが開始しない Modeを確認してください。Debugの場合は、Zephyrシェルからsketchを実行してください。
未定義のZephyrシンボル コアのREADMEによると、不足しているZephyr関数をloader/llext_exports.cでエクスポートし、ローダーを再ビルドする必要がある場合があります。
Zephyrサブシステムが見つからない ボードの.confで必要なCONFIG_オプションを有効にし、ローダーを再ビルドしてアップロードしてください。
メモリー不足 Zephyrシェルと動的なスケッチのロードはRAMを消費します。スタック使用量を減らすか、必要に応じてビルドモードを切り替えてください。

現在の対応範囲

現在公開されているパッケージの対象はSF32LB52 DevKit LCDで、テスト用のベータ版です。別のボードを試す場合やAPIを利用する場合は、使用するパッケージの正確なバージョンについて、upstreamリポジトリーとリリースノートを確認してください。ZephyrまたはSiFli-SDKでのサポートは、このArduinoパッケージでのサポートを意味するものではありません。

最終更新: