なんとかなるさね

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


RL78マイコン基板(RL78/G10)|CS+(CubeSuite+)のPythonコンソール上でシリアルポート操作 (3) 

RL78/G10の内蔵フラッシュメモリ書き込みコマンドの詳細は他のRL78マイコンとは違ってマニュアルに記載
されていませんが、ルネサスの国内向けのユーザコミュニティサイト(Rulz)にコミュニティのお二人が解析した
結果が投稿されています。前のエントリではCS+(旧CubeSuite+)のPythonコンソール上にシリアルポートの
受信データを表示させ続けることを試してみましたが、今度はRulzの情報を元にRL78/G10の内蔵フラッシュ
メモリ書き込みコマンドの1つを使ってPythonコンソール上で内蔵フラッシュメモリのチェックサム値を取得
するプログラムを作ってみました。取り敢えず書き込みコマンドが使えるかどうかを確認してみたかったので
大雑把なプログラムにはなっていますが、Renesas Flash Programmerで取得したチェックサム値と同じ値を
取得することは出来ました。(書き込みプログラムも後日作ってみたいとは思っていますが、、、)

import System, time
def checksum():
    sdat = System.Array.CreateInstance( System.Byte, 1 )
    rdat = System.Array.CreateInstance( System.Byte, 4 )
    com = System.IO.Ports.SerialPort( 'COM14', 115200, System.IO.Ports.Parity.Odd )
    com.Open()
    com.RtsEnable = False
    com.BreakState = True
    com.RtsEnable = True
    com.BreakState = False
    com.DiscardInBuffer()
    print ' '
    sdat[0] = 0x3A
    com.Write( sdat, 0, 1 )
    time.sleep( 1 )
    com.Read( rdat, 0, 2 )
    print format( int( rdat[0] ), "02X" )
    print format( int( rdat[1] ), "02X" )
    sdat[0] = 0x53
    com.Write( sdat, 0, 1 )
    time.sleep( 1 )
    com.Read( rdat, 0, 3 )
    print format( int( rdat[0] ), "02X" )
    print format( int( rdat[1] ), "02X" )
    print format( int( rdat[2] ), "02X" )
    sdat[0] = 0x06
    com.Write( sdat, 0, 1 )
    time.sleep( 1 )
    com.Read( rdat, 0, 4 )
    print format( int( rdat[0] ), "02X" )
    print format( int( rdat[1] ), "02X" )
    print format( int( rdat[2] ), "02X" )
    print format( int( rdat[3] ), "02X" )
    print ' '
    com.Close()

checksum()




なお、RL78/G10の内蔵フラッシュメモリ書き込みコマンドですが、以下のウェブページを参照しました。

Home >> かふぇルネ >> 101:RL78-Forum >> RL78/G10の外部UARTによる書き込み - Rulz
http://japan.renesasrulz.com/cafe_rene/f/82/p/2163/9301.aspx?loc=JP

追記 : 雑感

Pythonには本体とは別に開発されているpySerialという追加のシリアルポート操作パッケージがあり、これを
使うとOSの違いを意識することなくシリアルポート操作を行うPythonスクリプトを書くことが出来るようです。
pySerialはRasPiやBBBのPythonでも使えそうな気がしますので、RL78/G10の内蔵フラッシュメモリ書き込み
プログラムをpySerialを使って作れば、そのPythonスクリプトでRasPiやBBBからRL78/G10に書き込めそうな
気もします、、、 (何か良いことがあるかどうかは別にして、、、 UART信号の電圧変換も必要ですし、、、)

追記 : 雑感その2

それから、RL78/G10の内蔵フラッシュメモリ書き込みコマンドは単純なのでArduinoやmbedでプログラムを
作ることも大した手間ではないような気もします、、、 (ビルド時にHEXフォーマットのファイルからバイナリ
べた詰めファイルを生成するように工夫しておけば、HEXフォーマットのデータをバイナリデータへ変換する
処理をArduino側やmbed側で作る必要は無いですし、、、)

関連記事

2015/01/15   blog-entry-551   category: RL78 /* 16bit,8bit CISC */

go page top