なんとかなるさね

マイコンをネタにブログを始めてみました


RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)とrl78flashの書き込み時間の比較 

2つ前のエントリでKurumiWriter V1.00(ソース公開版)のバグを暫定修正したことで(私のパソコンで)安定して
動作するようになりましたので、秋月電子さん販売のRL78/G13 64pin R5F100LGAFB搭載変換モジュールを
使って、RL78マイコンの内蔵フラッシュメモリへの書き込み時間をrl78flashと比較してみました。書き込んだ
プログラム(binファイル or motファイル)は以前のエントリでR5F100LGAFBで動作するようにルネサスWeb
コンパイラのCOTTON基板のデフォルトのスケッチのリンカスクリプトを変更してビルドしたもの(45KB)です。
(追記 : rl78flashを1つ前のエントリで書き込みボーレート変更不具合を暫定修正したものに置き換えました。)

FT232RLのWindowsドライバのデフォルト設定

* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)

115,200bps → 22sec
500,000bps → 20sec
1,000,000bps → 未サポート

* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)

115,200bps → 16sec
500,000bps → 11sec
1,000,000bps → 11sec

以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定

* KurumiWriter (V1.00、Run after COM openのチェック無し、cotton_sketch.bin)

115,200bps → 40sec
500,000bps → 36sec (+/-2sec程度のバラツキあり)
1,000,000bps → 未サポート

* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -a COM14 cotton_sketch.mot)

115,200bps → 10sec
500,000bps → 4sec
1,000,000bps → 4sec

追記 : メモ

rl78flashの-aオプションは-ewvrオプション(消去して、書き込んで、ベリファイして、プログラムを実行)と
等価なのですが、ベリファイの動作は書き込んだデータと同じデータを再度送信して書き込まれていたデータ
(つまり読み出したデータ)と一致するか調べて正常に書き込まれているかチェックする方式になっています。
正常に書き込まれたかどうかをチェックする方法には、他に、書き込んだデータのCRC値と書き込まれていた
データ(つまり読み出したデータ)のCRC値を比較する方法もあり、KurumiWriterではCRC値を比較する方式に
なっています。前者は後者よりデータを再度送信する分だけ処理時間が長くなる傾向がありますが、いつもの
ようにちょっと好奇心から、rl78flashでベリファイを省いた場合の書き込み時間も計ってみました。(なお、
今のところ(G10専用のrl78g10flashにはあるものの)rl78flashにはCRC値を比較するオプションが無く、単に
ベリファイを省いただけなのでKurumiWriterとの公平な比較になりませんが、好奇心から計ってみました。)

FT232RLのWindowsドライバのデフォルト設定

* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)

115,200bps → 10sec
500,000bps → 7sec
1,000,000bps → 7sec

以前のエントリでRL78/G10への書き込み時間が短くなることに気付いてから私が常用している設定

* rl78flash (rl78flash-0.5.2-mon80-20160914 -m 2 -b 通信ボーレート -ewr COM14 cotton_sketch.mot)

115,200bps → 6sec
500,000bps → 3sec
1,000,000bps → 3sec

追記 : メモ

RL78マイコンの内蔵フラッシュメモリへの書き込みは11bit(=1 start bit + 8bit + no parity + 2 stop bit)の
UART通信で行われているのですが、通信ボーレートと内蔵フラッシュメモリサイズとデータ転送時間の関係を
以下の計算式で単純に計算して結果を表にしてみました。(通信パケットのヘッダとかチェックサムとかは無視
しています。もっと言ってしまえば、通信手順(プロトコル)に関わることも全て無視しています。)

データ転送時間 = 内蔵フラッシュメモリサイズ × 11bit / 通信ボーレート

通信ボーレートと内蔵フラッシュメモリサイズから単純に計算したデータ転送時間
  32KB  64KB  128KB  256KB  512KB 
115.2Kbps  3.1sec  6.3sec  12.5sec  25.0sec  50.1sec 
250Kbps  1.4sec  2.9sec  5.8sec  11.5sec  23.1sec 
500Kbps  0.7sec  1.4sec  2.9sec  5.8sec  11.5sec 
1Mbps  0.4sec  0.7sec  1.4sec  2.9sec  5.8sec 

関連記事

2016/09/14   blog-entry-811   category: RL78 /* 16bit,8bit CISC */

go page top