RISC-V 搭載 IchigoJam 関連

ファームウェア更新・バイナリーファイル転送


2021年1月 より RISC-V プロセッサを採用した IchigoJam R β版 が出荷されました。

RISC-V ではファームウェアの更新方法が LPC1114 とは異なります。

また、プログラム領域をそのままファイル化する事ができ、ファイルから書き込む事もできます。そのため、別ページにしました。

 

使用方法 に記載している方法は RISC-V プロセッサの IchigoJam でも使用可能です。

 

周辺機器/パソコンと接続/使用方法 | イチゴジャム レシピ

 

IchigoLatte も RISC-V 対応ファームウェアが公開されています。
ファームウェアの更新についてはオプション同じで行える事を確認できています。


IchigoJam を ISP モードで接続

このページで紹介している方法は

IchigoJam を ISP モードで接続する必要があります。

LPC1114 プロセッサの IchigoJam などとは異なる接続になります。

 

IchigoJam - IchigoJam
ISP - VCC または 3.3V

LPC1114 では ISP-GND でしたが、

RISC-V では ISP-VCC と異なりますので、ご注意下さい。

 

USB-シリアルモジュール - IchigoJam
TXD - RXD
RXD TXD
GND GND
3.3V または 3V3 など 3.3V または VCC

3.3V・VCC の代わりに 5V-5V でも接続できます。
5V 接続では電源スイッチが有効です。

 

電源供給は USB-シリアルモジュール 経由で

パソコンから IchigoJam へ電源を供給して下さい。
電源の microUSB 端子を外すか、接続している電源を切ります。

他から電源供給を行うと認識しない事があります。

CN5 端子の GND・3.3V が
TXD・RXD に近いので、接続に便利です。

 

GND・VCC の接続で電源が入った状態になります。

VCC の代わりに 5V を接続した場合は
電源スイッチが有効です。

LPC1114 プロセッサの IchigoJam などとは異なり

LED は点灯しません。

起動音がでないので、これで確認ができます。



stm32flash

LPC1114 とは異なるアプリケーションソフトウェアを使用します。

現在のところ stm32flash を使用するのが推奨手段ですが、シェル・コマンド プロンプト での動作になります。

 

ファイルのダウンロード

IchigoJam 公式の GitHub に stm32flash が fork されています。こちらからダウンロードできます。

 

IchigoJam/stm32flash | GitHub

 

次のファイルだけが必要になります。全体をダウンロードしなくても問題ありません。

OS 実行バイナリーファイル名
Windows stm32flash.exe
macOS(AppleSilicon) stm32flash-apple
macOS(Intel) stm32flash

 

IchigoJam/stm32flash の fork 元になっている stm32duino/stm32flash GitHub では
release にバイナリーとして次の場所が紹介されています。win にある stm32flash.exe は使用できる事を確認できています。

 

tools - rogerclarkmelbourne/Arduino_STM32 | GitHub

 

オリジナルの stm32flash は元々 SourceForge で公開されていました。
こちらにも stm32flash-0.5-win64.zip があり、解凍した stm32flash.exe は使用できる事を確認できています。

 

stm32flash Files | SourceForge

 

接続確認

USB-シリアルモジュールを IchigoJam を接続した状態で正常に接続できているかを確認します。


stm32flash デバイス名

 

デバイス名 は通常 USB-シリアルモジュール を接続している時と共通です。
Windows では COM3 など、macOS では /dev/tty.SLAB_USBtoUART などです。

 

次は Windows 10 で Windows PowerShell を用いた際に正常接続されている時の表示です。デバイス名は COM3 で認識されています。

PS C:\Users\balloon> stm32flash COM3
stm32flash STM32duino_0.5.1

https://github.com/stm32duino/stm32flash

Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version      : 0x30
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : Up to 20KiB  (512b reserved by bootloader)
- Flash      : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
PS C:\Users\balloon> ▄

 

一方、接続に失敗している場合は次の表示のように Failed to init device. と表示されます。

PS C:\Users\balloon> stm32flash COM3
stm32flash STM32duino_0.5.1

https://github.com/stm32duino/stm32flash

Interface serial_w32: 57600 8E1
Failed to init device.

PS C:\Users\balloon> ▄

プログラム領域のファイル保存・ファイルからの書き込み

stm32flash ではファームウェア更新以外に、本体に入っているプログラム領域のままファイル化する事ができます。

はじめて使う場合、ファームウェアの更新を行う前に、まずこのファイルの読み書きを試してみるのをおすすめします。

 

IchigoJam Rβ x 無線USBキーボード、ピン配置とセーブデータの読み書き方法公開 | 福野泰介の一日一創

 

プログラム番号 0 は次のとおりです。-s の値は 126-プログラム番号 になります。

(プログラム番号 1 は -s 125、プログラム番号 2 は -s 124、……プログラム番号 14 は -s 112)

1 プログラム分で生成した .bin ファイルは IchigoJam BASIC RPi・IchigoJam ap と共通で、交互に使用可能です。

 

stm32flash -r ファイル名.bin -s 126 -e 1 デバイス名 (IchigoJam からファイルへ保存)

stm32flash -w ファイル名.bin -s 126 -e 1 デバイス名 (ファイルから IchigoJam へ書込)

 

PS C:\Users\balloon> stm32flash -r program.bin -s 126 -e 1 COM3
stm32flash STM32duino_0.5.1

https://github.com/stm32duino/stm32flash

Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version      : 0x30
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : Up to 20KiB  (512b reserved by bootloader)
- Flash      : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Memory read
Read address 0x0801fc00 (100.00%) Done.

PS C:\Users\balloon> ▄
PS C:\Users\balloon> stm32flash -w program.bin -s 126 -e 1 COM3
stm32flash STM32duino_0.5.1

https://github.com/stm32duino/stm32flash

Using Parser : Raw BINARY
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version      : 0x30
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : Up to 20KiB  (512b reserved by bootloader)
- Flash      : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0801f800 (100.00%) Done.

PS C:\Users\balloon> ▄

 

書き込みを行った後、IchigoJam BASIC を通常起動させ、プログラムが書き込まれている事を確認して下さい。 

 

テキスト変換は ijbconv を用いて可能です。

 

ijbconv - コマンドラインで変換

ijbconv web - Web アプリ版。Web ブラウザ上でファイル変換できます

 

必要な場合、15 プログラム全体の保存・書き込みも可能です。

 

stm32flash -r ファイル名.bin -s 112 -e 15 COM3 (IchigoJam からファイルへ保存)

stm32flash -w ファイル名.bin -s 112 -e 15 COM3 (ファイルから IchigoJam へ書込)

 

ファームウェア更新

ファームウェア更新はプログラムの書き込みと同じ方法で、オプションが若干違うだけです。更新に数秒要します。

 

stm32flash -w ファームウェアファイル名.bin -g 0 -e 112 デバイス名

 

ここでは IchigoJam BASIC の例を上げていますが、IchigoLatte でもオプション同じで更新可能です。

 

PS C:\Users\balloon\ichigojam-r-1.5b09> stm32flash -w ichigojam-r.bin -g 0 -e 112 COM3
stm32flash STM32duino_0.5.1

https://github.com/stm32duino/stm32flash

Using Parser : Raw BINARY
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version      : 0x30
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : Up to 20KiB  (512b reserved by bootloader)
- Flash      : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0800feac (100.00%) Done.

Starting execution at address 0x08000000... done.

PS C:\Users\balloon\ichigojam-r-1.5b09> ▄

 

完了後は自動的に更新したファームウェアが起動します。画面は表示されていなくても起動音の BEEP を聞く事ができるでしょう。

 

RISC-V プロセッサ向けの IchigoJam BASIC ベータ版では起動画面に beta 番号が表示されていないため、
?VER() としてバージョン番号を表示し更新された事を確認して下さい。下 2 桁が beta 番号です。

IchigoJam BASIC 1.5b rv jig.jp
OK
?VER()
15009
OK
▋

15009 → 1.5b9 となります。

 

本体プログラム部分は更新範囲の対象外になっているため、ファームウェアを更新してもプログラムは残ります。

KBD によるキーボード設定も残っていますので、設定しなおす必要はありません。


IJUtilities

IJUtilities が ver1.0.0 d2 より stm32flash に対応しています。

ウインドウ表示で操作できるメリットがあります。

 

IJUtilities - 公式サイト

 

ver1.0.0 d4 より stm32flash も同梱されています。
失敗する場合は 環境設定 - IJUtilities を参照し、

「stm32flash file」が正しく入っているかを確認して下さい。

上の説明で stm32flash を別途ダウンロードしている場合は、
そちらの stm32flash を指定して使用する事もできます。
 

従来同様 オプション - Firm書換え(IchigoJam, PanCake...) からです。「LPC」を RISC-V に変更します。

Firm のところが選択できるようになります。ここで動作を変更できます。

  • Firm - ファームウェアの更新
  • Read● - プログラム番号 ● のバイナリーファイル保存
  • Write● - バイナリーファイルをプログラム番号 ● へ書き込み

Read All・Write All は 0~14 の本体 15 プログラムをすべて転送します。

右画像はファームウェア更新が正常に完了した時の表示です。

 

stm32flash フォルダ内にある stm32flashの使い方.pdf にも

詳しい説明があります。こちらもご参照下さい。