Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Wio Terminalのなんやかんや SUGOi 2020/09/22 Kenta IDA (@ciniml)
Slide 2
Slide 2 text
自己紹介 •井田 健太 (@ciniml) •仕事:組み込みソフト開発 •使用言語:C++, SystemVerilog, Go, Python 2020/9/22 Wio Terminalのなんやかんや 2
Slide 3
Slide 3 text
Wio Terminal 2020/9/22 Wio Terminalのなんやかんや •最近流行の筐体入りマイコン・モジュール • Wi-Fi 2.4GHz + 5GHz • Bluetooth5 • 液晶 (320x240) • ボタン • スピーカー • etc… •いろいろ付いてて楽しい 3
Slide 4
Slide 4 text
なんやかんや 2020/9/22 Wio Terminalのなんやかんや •ハードウェア構成 •拡張基板をつくってみた •デバッガのつなぎ方 •QSPIフラッシュの使い方 4
Slide 5
Slide 5 text
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや 5
Slide 6
Slide 6 text
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •MCUが2つある • ATSAMD51P19A • RTL8720DN 6
Slide 7
Slide 7 text
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51P19A • Microchip製 • Cortex-M4F 120[MHz] • 512[kiB] Flash • 192[kiB] RAM 7
Slide 8
Slide 8 text
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •RTL8720DN • Realtek製 • Cortex-M0 20[MHz] • Cortex-M4F 200[MHz] • 64+512[kiB] RAM • Wi-Fi + Bluetooth •ATSAMD51より強い 8
Slide 9
Slide 9 text
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •周辺回路 • ほとんどATSAMD51側 に接続されている • LCD • ボタン • ブザー, マイク, LED • 加速度センサー 9
Slide 10
Slide 10 text
メインMCU 2020/9/22 Wio Terminalのなんやかんや •開発者が使うのは (主に)ATSAMD51 • Arduinoで触れるのはこっち • RTL8720DNも 触れなくはない • SDKは公開されている • UART経由で書き込みも可 10
Slide 11
Slide 11 text
無線通信 2020/9/22 Wio Terminalのなんやかんや •Wi-FiとBluetoothはRTL8720DN側 •ATSAMD51とはSPI+GPIOで接続 • ATSAMD51がSPIマスター • RTL8720DNのリセット(CHIP_EN) • RTL8720DNからの割り込み(IRQ0) 11
Slide 12
Slide 12 text
無線通信 2020/9/22 Wio Terminalのなんやかんや •RTL8720DN側に ネットワーク・スタック • TCP/IP, TLS • Bluetooth Stack 12
Slide 13
Slide 13 text
無線通信 2020/9/22 Wio Terminalのなんやかんや •ATSAMD側はRTL8720DNに ATコマンドを送って制御 •制御用にESP32用のライブラリを いろいろ魔改造してぶち込んである • 結構カオス 13
Slide 14
Slide 14 text
拡張基板をつくってみた 2020/9/22 Wio Terminalのなんやかんや 14
Slide 15
Slide 15 text
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •本体裏に40pinコネクタがある • 配列はRaspberry Pi 互換 • ただしRPiに直結は不可 • 筐体が干渉する • 3.3Vがデフォルトで出力方向 15
Slide 16
Slide 16 text
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •拡張基板のサイズ • Wio Terminalの基板外形から作成 • 外形 • 穴位置 • ピンヘッダ位置 16
Slide 17
Slide 17 text
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •単3・4電池拡張基板 • つくってみた。 • Fusion PCBで5枚 17
Slide 18
Slide 18 text
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •単3・4電池拡張基板 • つないでみた。 • けっこうでかい… •測定アプリ(無線なし)で7時間くらい • 単3(eneloop)x2 18
Slide 19
Slide 19 text
感想 2020/9/22 Wio Terminalのなんやかんや •ピン数が多いので柔軟な設計が可能 • RPi互換ヘッダ • (M5Stackはピンが少なくて難しい) •高いピンヘッダが欲しい • 日本では入手性に難あり • Battery Chassisの部品ほしい… 19
Slide 20
Slide 20 text
デバッガのつなぎ方 2020/9/22 Wio Terminalのなんやかんや 20
Slide 21
Slide 21 text
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51のSWDが接続可能 • 出荷時書き込み用パッド • デバッグ用コネクタ (v1.2以降) •RTL8720DNのSWDは未接続 • 頑張って引き出せなくもないが 結構難しい 21
Slide 22
Slide 22 text
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •デバッグ用コネクタ • 7月頃入荷分くらいから • 0.5[mm]x10ピン FFCコネクタ • FFC+FFC変換基板でデバッガに接続 • どちらもAmazonやaitendoで買える 22
Slide 23
Slide 23 text
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •SWDを使用可能なデバッガで接続 • OpenOCD • J-Link •普通に デバッグ可能 • 便利! 23
Slide 24
Slide 24 text
QSPIフラッシュの使い方 2020/9/22 Wio Terminalのなんやかんや 24
Slide 25
Slide 25 text
QSPIフラッシュ 2020/9/22 Wio Terminalのなんやかんや •4[MiB]のフラッシュ •ATSAMD51に接続 25
Slide 26
Slide 26 text
アクセス方法 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51のブートローダー • QSPIフラッシュの読み書き機能無し •Arduino内蔵ライブラリ • QSPIフラッシュの読み書き機能なし →実装するしかない 26
Slide 27
Slide 27 text
QSPIフラッシュに置けるもの 2020/9/22 Wio Terminalのなんやかんや •データ •プログラム • ATSAMD51は QSPIフラッシュ上のプログラムを直接実行できる 27
Slide 28
Slide 28 text
ExtFlashLoader 2020/9/22 Wio Terminalのなんやかんや •つくってみた •Wio Terminal用のQSPIフラッシュ・ドライバ • ArduinoのプログラムからQSPIの読み書き •https://github.com/ciniml/ExtFlashLoader 28
Slide 29
Slide 29 text
ExtFlashLoader 2020/9/22 Wio Terminalのなんやかんや •サンプル • DownloadFromSerial • USBシリアル経由でPCからQSPIフラッシュにデータを書き込む • LaunchExtFlash • QSPIフラッシュ上のプログラムを実行する • WriteSampleMenu • サンプルのメニューアプリをQSPIフラッシュに書き込む 29
Slide 30
Slide 30 text
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや •QSPIフラッシュ上で動作 •TFカード上のバイナリを ATSAMD51内蔵フラッシュに書き込み • メニューアプリはQSPI上なので 内蔵フラッシュを書き換えられる 30 内蔵フラッシュ QSPIフラッシュ アプリA メニュー アプリ TFカード アプリB アプリC アプリD
Slide 31
Slide 31 text
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや 31 •メニューから アプリを選択 • アプリ書き込み • アプリ起動 •メニューを起動 • ボタンを押しながら リセット
Slide 32
Slide 32 text
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや 32 •M5Stackにもこういうのありますね •とりあえずWio Terminalでも 技術的に可能ということは示せた
Slide 33
Slide 33 text
その他 2020/9/22 Wio Terminalのなんやかんや 33
Slide 34
Slide 34 text
他作ったもの 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
Slide 35
Slide 35 text
宣伝 2020/9/22 Wio Terminalのなんやかんや •技術書典9でWioTerminal本出してます • 今回唯一のWioTerminal本らしい • BOOTHでも頒布中 •内容は今日話したことの詳細 35
Slide 36
Slide 36 text
おしまい 2020/9/22 Wio Terminalのなんやかんや 36