Help us understand the problem. What is going on with this article?

Kendryte K210搭載ボードの選び方

Kendyte K210は、低価格ながら、RISC-V CPUを搭載していてそこそこRAMもあることと、ニューラルネットワーク演算のできるKPUを搭載していることで、人気のチップになってきています。

Kendyte K210や、それと他チップをまとめたMaix M1を搭載したボードが増えてきたので、自分のやりたいことをやるにはどのボードを選んだらよいか分かるようにボードを比べてみました。

おおまかな分類

Kendryte K210を直接ボードに搭載している……
- Sipeed Maix Bit
- M5StickV

Maix M1をボードに搭載している……
- Sipeed Maix M1 Dock
- Sipeed Maixduino

以下のボードは無線LAN機能を実現しているチップ(ESP8285)に技適マークが見当たらないため、ここでは比較の対象外とします(技適を通っているかといえば006-000737がそれに該当しそうなのですが、少なくともチップにマークが見当たりません)。

  • Sipeed Maix M1W Dock
  • Sipeed Maix Go

これらのボードの基本機能はいずれもKendryte K210の回路を使用しているため、CPUやKPUの性能に違いはありません。

形状の違い

Maix Bitは、外部ピンが2列になっていますので、ブレッドボード上で使用するのに便利です。

Maixduinoは、外部ピンがArduinoシールド向けの形状になっています(使用したいシールドと電圧がマッチしているかは確認してください)。

M5StickVはとても小さく、またバッテリを内蔵しているため電源供給しなくても動作できます。

ピン割り当ては一部が固定になっていますが、FPIOAピンは内部でJTAG/SPI/UART/GPIO/I2S/I2C/CMOS(カメラ出力)などに割り当てられます。LCD出力はSPIを使います。

使用できるI/Oの違い

Maix Bit Maix M1 Dock Maixduino M5StickV
カメラ入力 1 1 1 1
LCD出力 1 1 1 1
マイク入力 新バージョンのみ1 1 1 使用不可
スピーカ出力 なし 2ch 1ch 1ch
加速度センサ入力 なし なし なし 1
LED出力 フルカラー×1 フルカラー×1 なし フルカラー×1
ボタン入力 RST/BOOT RST/BOOT RST/BOOT A/B
TFカード 1 1 1(K210とESP32で共用) 1
無線LAN/Bluetooth なし なし あり(ESP32) なし

ボード上に出ているI/Oピン

購入したボードに何か接続したい、空いているI/Oピンの数が気になります。K210のデータシートの2.2項「Pin Description」から、K210のピンのうちデータ入出力用のピンを抽出し、ボードの回路図などを参照して各ピンがどこにつながっているかをまとめると、下表のようになります。ただしボードによっては回路図の情報が足りないため、一部想像で補っています。

■□はボード外部と接続しやすいピンであることを示し、□はボード内I/Oとの共用ピン、■は共用していないピンであることを示します。

FPIOAは割り当てを変更可能なI/Oピンです、そのうちIO_0~IO_3はリセット直後JTAG、IO_4~IO_5はリセット直後ISPです。IO_16はブートモード選択に使われます。

ピン名 方向 用途 Maix Bit Maix M1 Dock Maixduino M5StickV
DVP_D0 I DVP専用 CSI_24P Y2 □DVP_D0 / CSI_24P Y2 CAMERA_24P D0 OV7740 D0
DVP_D1 I DVP専用 CSI_24P Y3 □DVP_D1 / CSI_24P Y3 CAMERA_24P D1 OV7740 D1
DVP_D2 I DVP専用 CSI_24P Y4 □DVP_D2 / CSI_24P Y4 CAMERA_24P D2 OV7740 D2
DVP_D3 I DVP専用 CSI_24P Y5 □DVP_D3 / CSI_24P Y5 CAMERA_24P D3 OV7740 D3
DVP_D4 I DVP専用 CSI_24P Y6 □DVP_D4 / CSI_24P Y6 CAMERA_24P D4 OV7740 D4
DVP_D5 I DVP専用 CSI_24P Y7 □DVP_D5 / CSI_24P Y7 CAMERA_24P D5 OV7740 D5
DVP_D6 I DVP専用 CSI_24P Y8 □DVP_D6 / CSI_24P Y8 CAMERA_24P D6 OV7740 D6
DVP_D7 I DVP専用 CSI_24P Y9 □DVP_D7 / CSI_24P Y9 CAMERA_24P D7 OV7740 D7
F_CLK O SPI GPIO専用 (Flash) W25N1 CLK W25N1 CLK
F_CS O SPI GPIO専用 (Flash) W25N1 ~CS W25N1 ~CS
F_D0 I/O SPI GPIO専用 (Flash) W25N1 SI/IO0 W25N1 SI/IO0
F_D1 I/O SPI GPIO専用 (Flash) W25N1 SO/IO1 W25N1 SO/IO1
F_D2 I/O SPI GPIO専用 (Flash) W25N1 ~WP/IO2 W25N1 ~WP/IO2
F_D3 I/O SPI GPIO専用 (Flash) W25N1 ~HOLD/IO3 W25N1 ~HOLD/IO3
IO_0 I/O FPIOA ■0 (JTAG_TCK) ■0 (JTAG_TCK) (JTAG_TCK)
IO_1 I/O FPIOA ■1 (JTAG_TDI) ■1 (JTAG_TDI) (JTAG_TDI)
IO_2 I/O FPIOA ■2 (JTAG_TMS) ■2 (JTAG_TMS) □P5-6 / NS4150 CTRL (JTAG_TDO)
IO_3 I/O FPIOA ■3 (JTAG_TDO) ■3 (JTAG_TDO) (JTAG_TDO)
IO_4 I/O FPIOA □4 / CH340C TX (ISP_RX) □4 / CH340C TX (ISP_RX) □P2-1 / CH552 TX0 (ISP_RX) USB RX
IO_5 I/O FPIOA □5 / CH340C RX (ISP_TX) □5 / CH340C RX (ISP_TX) □P2-2 / CH552 RX0 (ISP_TX) USB TX
IO_6 I/O FPIOA ■6 ■6 (WIFI_TX MCU_RX) ESP32 U0TXD (ESP32_TX) LED R
IO_7 I/O FPIOA ■7 ■7 (WIFI_RX MCU_TX) ESP32 U0RXD (ESP32_RX) LED W
IO_8 I/O FPIOA ■8 ■8 (WIFI_EN) ESP32 CHP-PU (ESP32_EN) 3.3Vプルアップ LED B
IO_9 I/O FPIOA ■9 ■9 ESP32 GPIO25 (ESP32_READY) LED G
IO_10 I/O FPIOA ■10 ■10 ■P5-5
IO_11 I/O FPIOA × ■11 ■P5-4
IO_12 I/O FPIOA LED_G □12 / LED_G ■P5-3 / LED_G
IO_13 I/O FPIOA LED_R □13 / LED_R ■P5-2 / LED_R
IO_14 I/O FPIOA LED_B □14 / LED_B ■P5-1 / LED_B MAX98357 LRCLK
IO_15 I/O FPIOA ■15 ■15 ■P2-8 MAX98357 BCLK
IO_16 I/O FPIOA □16 / スイッチBOOT(押すとGNDプルダウン) □16 / スイッチBOOT(押すとGNDプルダウン) スイッチBOOT(押すとGNDプルダウン) BOOT
IO_17 I/O FPIOA ■17 ■17 LCD_BL MAX98357 DIN
IO_18 I/O FPIOA □18 / MSM261S SCK (MIC_BCK) 新バージョンのみ ■18 (MIC_BCK) MSM261S SCK (MIC_BCK) ST7789 SDA
IO_19 I/O FPIOA □19 / MSM261S WS (MIC_WS) 新バージョンのみ ■19 (MIC_WS) MSM261S WS (MIC_WS) ST7789 SCL
IO_20 I/O FPIOA □20 / MSM261S SD (MIC_DAT3) 新バージョンのみ ■20 (MIC_DAT3) MSM261S SD (MIC_DAT3) ST7789 RS
IO_21 I/O FPIOA ■21 ■21 (MIC_DAT2) ■P2-3 ST7789 RST
IO_22 I/O FPIOA ■22 ■22 (MIC_DAT1) ■P2-4 ST7789 CS
IO_23 I/O FPIOA ■23 ■23 (MIC_DAT0) ■P2-5 6軸センサ INT
IO_24 I/O FPIOA ■24 ■24 (MIC_LED_DAT) ■P2-6
IO_25 I/O FPIOA ■25 ■25 (SPI0_CS1) ESP32 GPIO5 (ESP32_CS) MAX98357 SD
IO_26 I/O FPIOA □26 / TF DAT0/MISO (SPI0_MISO) 3.3Vプルアップ □26 / TF DAT0/MISO (SPI0_MISO) 3.3Vプルアップ TF DAT0/MISO / ESP32 GPIO23 (SPI0_MISO) 3.3Vプルアップ
IO_27 I/O FPIOA □27 / TF CLK (SPI0_SCLK) □27 / TF CLK (SPI0_SCLK) TF CLK / ESP32 GPIO18 (SPI0_SCLK)
IO_28 I/O FPIOA □28 / TF CMD/MOSI (SPI0_MOSI) 3.3Vプルアップ □28 / TF CMD/MOSI (SPI0_MOSI) 3.3Vプルアップ TF CMD/MOSI / ESP32 GPIO14 (SPI0_MOSI) 3.3Vプルアップ 6軸センサ SCL
IO_29 I/O FPIOA □29 / TF DAT3/CS (SPI0_CS0) □29 / TF DAT3/CS (SPI0_CS0) TF DAT3/CS (SPI0_CS0) 6軸センサ SDA
IO_30 I/O FPIOA ■30 □30 / MSM261S WS (MIC0_WS) ■P5-10 (I2C1_SCL) 3.3Vプルアップ TF SCK
IO_31 I/O FPIOA ■31 □31 / MSM261S SD (MIC0_DAT3) ■P5-9 (I2C1_SDA) 3.3Vプルアップ TF MI
IO_32 I/O FPIOA ■32 □32 / MSM261S SCK (MIC0_BCK) ■P2-7 TF CS
IO_33 I/O FPIOA ■33 □33 / PT8211 WS (I2S_WS) PT8211 WS (I2S_WS) TF MO
IO_34 I/O FPIOA ■34 □34 / PT8211 DA (I2S_DIN) PT8211 DA (I2S_DIN) ■34
IO_35 I/O FPIOA ■35 □35 / PT8211 BCK (I2S_BCK) PT8211 BCK (I2S_BCK) ■35
IO_36 I/O FPIOA LCD_24pin CS (LCD_CS) □36 / LCD_24pin CS (LCD_CS) LCD_24pin CS (LCD_CS) Button A
IO_37 I/O FPIOA LCD_24pin RST (LCD_RST) □37 / LCD_24pin RST (LCD_RST) LCD_24pin RST (LCD_RST) Button B
IO_38 I/O FPIOA LCD_24pin RS (LCD_DC) □38 / LCD_24pin RS (LCD_DC) LCD_24pin RS (LCD_DC)
IO_39 I/O FPIOA LCD_24pin ~WR (LCD_WR) □39 / LCD_24pin ~WR (LCD_WR) LCD_24pin ~WR (LCD_WR)
IO_40 I/O FPIOA SCI_24P SIO_D (DVP_SDA) 1.8Vプルアップ □40 / SCI_24P SIO_D (DVP_SDA) 1.8Vプルアップ SCI_24P SIO_SDA (DVP_SDA) OV7740 SIOD
IO_41 I/O FPIOA SCI_24P SIO_C (DVP_SCL) 1.8Vプルアップ □41 / SCI_24P SIO_C (DVP_SCL) 1.8Vプルアップ SCI_24P SIO_SCL (DVP_SCL) 1.8Vプルアップ OV7740 SIOC
IO_42 I/O FPIOA SCI_24P RESET (DVP_RST) □42 / SCI_24P RESET (DVP_RST) SCI_24P RESET (DVP_RST) OV7740 RSTn
IO_43 I/O FPIOA SCI_24P VSYNC (DVP_VSYNC) □43 / SCI_24P VSYNC (DVP_VSYNC) SCI_24P VSYNC (DVP_VSYNC) OV7740 VSYN
IO_44 I/O FPIOA SCI_24P PWDN (DVP_PWDN) □44 / SCI_24P PWDN (DVP_PWDN) SCI_24P PWDN (DVP_PWDN) OV7740 PWDN
IO_45 I/O FPIOA SCI_24P HREF (DVP_HSYNC) □45 / SCI_24P HREF (DVP_HSYNC) SCI_24P HSYNC (DVP_HSYNC) OV7740 HREF
IO_46 I/O FPIOA SCI_24P XCLK (DVP_XCLK) □46 / SCI_24P XCLK (DVP_XCLK) SCI_24P MCLK (DVP_XCLK) OV7740 XCLK
IO_47 I/O FPIOA SCI_24P PCLK (DVP_PCLK) □47 / SCI_24P PCLK (DVP_PCLK) SCI_24P PCLK (DVP_PCLK) OV7740 PCLK
SPI0_D0 O SPI0専用 LCD_24pin DB0 □LCD_D0 / LCD_24pin DB0 LCD_24pin DB0
SPI0_D1 O SPI0専用 LCD_24pin DB1 □LCD_D1 / LCD_24pin DB1 LCD_24pin DB1
SPI0_D2 O SPI0専用 LCD_24pin DB2 □LCD_D2 / LCD_24pin DB2 LCD_24pin DB2
SPI0_D3 O SPI0専用 LCD_24pin DB3 □LCD_D3 / LCD_24pin DB3 LCD_24pin DB3
SPI0_D4 O SPI0専用 LCD_24pin DB4 □LCD_D4 / LCD_24pin DB4 LCD_24pin DB4
SPI0_D5 O SPI0専用 LCD_24pin DB5 □LCD_D5 / LCD_24pin DB5 LCD_24pin DB5
SPI0_D6 O SPI0専用 LCD_24pin DB6 □LCD_D6 / LCD_24pin DB6 LCD_24pin DB6
SPI0_D7 O SPI0専用 LCD_24pin DB7 □LCD_D7 / LCD_24pin DB7 LCD_24pin DB7
■=22ピン ■=20ピン ■=13ピン ■=2ピン
  • CH340CはUSBシリアル
  • LCD_BLはLCDバックライト
  • MAX98357はスピーカ出力
  • MSM261Sはマイク
  • NS4150はオーディオアンプ
  • OV7740はカメラ
  • PT8211はスピーカ出力
  • SCIはカメラ接続用端子
  • ST7789はLCD
  • W25N1はNAND Flash

Maix M1搭載ボードのIO_6~IO_8は、M1WであればK210とESP8285の通信に使われるピンですが、ESP8285をもたないM1では自由に使えそうです。

全ピンが出ているMaix M1 Dockの方が自由に使えるピンが多いかと思いましたが、Maix Bitの方が空きピンが多いという意外な結果でした。スピーカの有無が影響した感じです。

まとめ

  • カメラ画像から機械学習で画像認識して結果をLCDに表示したいだけならどれでもOKです。
  • 多くのピンを要する回路を繋ぎたい場合や、JTAGデバッガを繋ぎたい場合はBitかDockがよいでしょう。ただし、Maixduinoでもそこそこのピン数は確保されています。
  • Wi-FiやBluetoothを使いたいならMaxduinoがよいでしょう。
  • 音声を使いたいならDockかMaxduinoがよいでしょう。スピーカがなくてもよいならBitの新バージョンも候補に入ります。

参考資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away