$30 off During Our Annual Pro Sale. View Details »

Wio Terminalのなんやかんや

Kenta IDA
September 22, 2020

Wio Terminalのなんやかんや

SeeedJP UG Online のLTで発表したWio Terminalの資料です。

Kenta IDA

September 22, 2020
Tweet

More Decks by Kenta IDA

Other Decks in Technology

Transcript

  1. Wio Terminalのなんやかんや
    SUGOi 2020/09/22
    Kenta IDA (@ciniml)

    View Slide

  2. 自己紹介
    •井田 健太 (@ciniml)
    •仕事:組み込みソフト開発
    •使用言語:C++, SystemVerilog, Go, Python
    2020/9/22
    Wio Terminalのなんやかんや 2

    View Slide

  3. Wio Terminal
    2020/9/22
    Wio Terminalのなんやかんや
    •最近流行の筐体入りマイコン・モジュール
    • Wi-Fi 2.4GHz + 5GHz
    • Bluetooth5
    • 液晶 (320x240)
    • ボタン
    • スピーカー
    • etc…
    •いろいろ付いてて楽しい
    3

    View Slide

  4. なんやかんや
    2020/9/22
    Wio Terminalのなんやかんや
    •ハードウェア構成
    •拡張基板をつくってみた
    •デバッガのつなぎ方
    •QSPIフラッシュの使い方
    4

    View Slide

  5. ハードウェア構成
    2020/9/22
    Wio Terminalのなんやかんや 5

    View Slide

  6. ハードウェア構成
    2020/9/22
    Wio Terminalのなんやかんや
    •MCUが2つある
    • ATSAMD51P19A
    • RTL8720DN
    6

    View Slide

  7. ハードウェア構成
    2020/9/22
    Wio Terminalのなんやかんや
    •ATSAMD51P19A
    • Microchip製
    • Cortex-M4F 120[MHz]
    • 512[kiB] Flash
    • 192[kiB] RAM
    7

    View Slide

  8. ハードウェア構成
    2020/9/22
    Wio Terminalのなんやかんや
    •RTL8720DN
    • Realtek製
    • Cortex-M0 20[MHz]
    • Cortex-M4F 200[MHz]
    • 64+512[kiB] RAM
    • Wi-Fi + Bluetooth
    •ATSAMD51より強い
    8

    View Slide

  9. ハードウェア構成
    2020/9/22
    Wio Terminalのなんやかんや
    •周辺回路
    • ほとんどATSAMD51側
    に接続されている
    • LCD
    • ボタン
    • ブザー, マイク, LED
    • 加速度センサー
    9

    View Slide

  10. メインMCU
    2020/9/22
    Wio Terminalのなんやかんや
    •開発者が使うのは
    (主に)ATSAMD51
    • Arduinoで触れるのはこっち
    • RTL8720DNも
    触れなくはない
    • SDKは公開されている
    • UART経由で書き込みも可
    10

    View Slide

  11. 無線通信
    2020/9/22
    Wio Terminalのなんやかんや
    •Wi-FiとBluetoothはRTL8720DN側
    •ATSAMD51とはSPI+GPIOで接続
    • ATSAMD51がSPIマスター
    • RTL8720DNのリセット(CHIP_EN)
    • RTL8720DNからの割り込み(IRQ0)
    11

    View Slide

  12. 無線通信
    2020/9/22
    Wio Terminalのなんやかんや
    •RTL8720DN側に
    ネットワーク・スタック
    • TCP/IP, TLS
    • Bluetooth Stack
    12

    View Slide

  13. 無線通信
    2020/9/22
    Wio Terminalのなんやかんや
    •ATSAMD側はRTL8720DNに
    ATコマンドを送って制御
    •制御用にESP32用のライブラリを
    いろいろ魔改造してぶち込んである
    • 結構カオス
    13

    View Slide

  14. 拡張基板をつくってみた
    2020/9/22
    Wio Terminalのなんやかんや 14

    View Slide

  15. Wio Terminalの拡張コネクタ
    2020/9/22
    Wio Terminalのなんやかんや
    •本体裏に40pinコネクタがある
    • 配列はRaspberry Pi 互換
    • ただしRPiに直結は不可
    • 筐体が干渉する
    • 3.3Vがデフォルトで出力方向
    15

    View Slide

  16. Wio Terminalの拡張コネクタ
    2020/9/22
    Wio Terminalのなんやかんや
    •拡張基板のサイズ
    • Wio Terminalの基板外形から作成
    • 外形
    • 穴位置
    • ピンヘッダ位置
    16

    View Slide

  17. Wio Terminalの拡張コネクタ
    2020/9/22
    Wio Terminalのなんやかんや
    •単3・4電池拡張基板
    • つくってみた。
    • Fusion PCBで5枚
    17

    View Slide

  18. Wio Terminalの拡張コネクタ
    2020/9/22
    Wio Terminalのなんやかんや
    •単3・4電池拡張基板
    • つないでみた。
    • けっこうでかい…
    •測定アプリ(無線なし)で7時間くらい
    • 単3(eneloop)x2
    18

    View Slide

  19. 感想
    2020/9/22
    Wio Terminalのなんやかんや
    •ピン数が多いので柔軟な設計が可能
    • RPi互換ヘッダ
    • (M5Stackはピンが少なくて難しい)
    •高いピンヘッダが欲しい
    • 日本では入手性に難あり
    • Battery Chassisの部品ほしい…
    19

    View Slide

  20. デバッガのつなぎ方
    2020/9/22
    Wio Terminalのなんやかんや 20

    View Slide

  21. Wio Terminalのデバッグ事情
    2020/9/22
    Wio Terminalのなんやかんや
    •ATSAMD51のSWDが接続可能
    • 出荷時書き込み用パッド
    • デバッグ用コネクタ (v1.2以降)
    •RTL8720DNのSWDは未接続
    • 頑張って引き出せなくもないが
    結構難しい
    21

    View Slide

  22. Wio Terminalのデバッグ事情
    2020/9/22
    Wio Terminalのなんやかんや
    •デバッグ用コネクタ
    • 7月頃入荷分くらいから
    • 0.5[mm]x10ピン FFCコネクタ
    • FFC+FFC変換基板でデバッガに接続
    • どちらもAmazonやaitendoで買える
    22

    View Slide

  23. Wio Terminalのデバッグ事情
    2020/9/22
    Wio Terminalのなんやかんや
    •SWDを使用可能なデバッガで接続
    • OpenOCD
    • J-Link
    •普通に
    デバッグ可能
    • 便利!
    23

    View Slide

  24. QSPIフラッシュの使い方
    2020/9/22
    Wio Terminalのなんやかんや 24

    View Slide

  25. QSPIフラッシュ
    2020/9/22
    Wio Terminalのなんやかんや
    •4[MiB]のフラッシュ
    •ATSAMD51に接続
    25

    View Slide

  26. アクセス方法
    2020/9/22
    Wio Terminalのなんやかんや
    •ATSAMD51のブートローダー
    • QSPIフラッシュの読み書き機能無し
    •Arduino内蔵ライブラリ
    • QSPIフラッシュの読み書き機能なし
    →実装するしかない
    26

    View Slide

  27. QSPIフラッシュに置けるもの
    2020/9/22
    Wio Terminalのなんやかんや
    •データ
    •プログラム
    • ATSAMD51は
    QSPIフラッシュ上のプログラムを直接実行できる
    27

    View Slide

  28. ExtFlashLoader
    2020/9/22
    Wio Terminalのなんやかんや
    •つくってみた
    •Wio Terminal用のQSPIフラッシュ・ドライバ
    • ArduinoのプログラムからQSPIの読み書き
    •https://github.com/ciniml/ExtFlashLoader
    28

    View Slide

  29. ExtFlashLoader
    2020/9/22
    Wio Terminalのなんやかんや
    •サンプル
    • DownloadFromSerial
    • USBシリアル経由でPCからQSPIフラッシュにデータを書き込む
    • LaunchExtFlash
    • QSPIフラッシュ上のプログラムを実行する
    • WriteSampleMenu
    • サンプルのメニューアプリをQSPIフラッシュに書き込む
    29

    View Slide

  30. メニューアプリ
    2020/9/22
    Wio Terminalのなんやかんや
    •QSPIフラッシュ上で動作
    •TFカード上のバイナリを
    ATSAMD51内蔵フラッシュに書き込み
    • メニューアプリはQSPI上なので
    内蔵フラッシュを書き換えられる
    30
    内蔵フラッシュ QSPIフラッシュ
    アプリA
    メニュー
    アプリ
    TFカード
    アプリB
    アプリC
    アプリD

    View Slide

  31. メニューアプリ
    2020/9/22
    Wio Terminalのなんやかんや 31
    •メニューから
    アプリを選択
    • アプリ書き込み
    • アプリ起動
    •メニューを起動
    • ボタンを押しながら
    リセット

    View Slide

  32. メニューアプリ
    2020/9/22
    Wio Terminalのなんやかんや 32
    •M5Stackにもこういうのありますね
    •とりあえずWio Terminalでも
    技術的に可能ということは示せた

    View Slide

  33. その他
    2020/9/22
    Wio Terminalのなんやかんや 33

    View Slide

  34. 他作ったもの
    2020/9/22
    Wio Terminalのなんやかんや 34
    •タイマー割り込みライブラリ
    • https://github.com/ciniml/SAMD51_Timer
    •バックライト制御ライブラリ
    • https://github.com/ciniml/WioTerminal_BackLight
    •GROVEポートからUART出すコードサンプル
    • https://gist.github.com/ciniml/bd2bb4dea22a55c067ca6790ad0c
    3eae

    View Slide

  35. 宣伝
    2020/9/22
    Wio Terminalのなんやかんや
    •技術書典9でWioTerminal本出してます
    • 今回唯一のWioTerminal本らしい
    • BOOTHでも頒布中
    •内容は今日話したことの詳細
    35

    View Slide

  36. おしまい
    2020/9/22
    Wio Terminalのなんやかんや 36

    View Slide