マツドサイエンティスト・研究日誌 保存版
SH-TINY その2

初出:2007年06月14日 元々のブログ・コンテンツへのリンク
カテゴリーのインデックス: パソコン・インターネット
シリーズのインデックス: SH-2・リアルタイム OS Linux

左が、今回私が作った SH-TINY の回路図だ。前回のコンテンツの写真のように 0.5mm ピッチの 64pin QFP なので、変換基板を介して配線している。なお、前回の写真の右部にあるプラスチックケースは、RS-232C 用の電圧コンバート部だ。私は、RS-232C を良く使うので、3V から 5V まで電源電圧を気にせずに使える用の電圧コンバート部分を汎用的に使えるように用意している。

本来、SH-TINY の空いた端子は、抵抗を介してプルアップでもすべきなのだろうが、今回は動作確認できれば十分なので、プルアップしなかった。実際、誤動作は起きていない。パワーオンリセットの回路は、インターフェース誌付録の SH-2 ボードでも問題になったので、少し余裕をみた回路定数にしている。
回路中の 0.1 μFのコンデンサーは PLL に使うので、積層セラミックコンデンサーを使うこと。その他の回路定数はいい加減だ。なお、水晶に 10MHz を使ったのは、最高周波数になる 12.5MHz が売ってなかったので、安く手に入った 10MHz を使っただけで、深い意味は無い。

回路ができたら、テストプログラムを走らせよう。
プログラミングは、以前 SH-2 Linux上でのリアルタイム OS 開発環境 (その1 クロスコンパイラ構築編) または ここ で紹介した gcc のクロスコンパイル環境が、そのまま使える。

下記にテストプログラムをアップした。
shtinytest.tgz

これを解凍すると、ソースコードとコンパイル済みの rom.mot が入っている。クロス gcc のインストールされた環境なら、make 一発で、コンパイルできるはずだ。
なお、以前は、Debian Linux Sarge での gcc のクロスコンパイル環境の構築法を示したが、Debian Linux の最新版 Etch でも同様の方法で問題なく構築できることを確認している。
また、Windows 上の Cygwin での構築もできるはずなので、これは読者の人にお任せしたい。

プログラムができたら(コンパイル済みの rom.mot を使っても構わないが)、SH-TINY に書込もう。
書込みには、ルネサスの HTerm を使う。
ルネサス テクノロジ のホームページ から「設計サポート」「半導体セミナー」「サンプルプログラム」「同意します」「SuperHファミリ」「モニタプログラム専用通信ソフト Hterm」の順にリンクを辿り、htermmdi.exe 1947516バイトをダウンロードする。

このプログラムは、Windows 用なので、また、wine を使う。Debian Linux Sarge での wine のインストール方法は、
SH-2 Linux上でのリアルタイム OS 開発環境 (その3 ROM 書き込み編) または、 ここ を参照してもらいたい。
(ここ以下の説明では、LINUX 上で Hterm を使う説明をしているが、Windows 上ではネイティブ環境なのでもっと楽に使えるはずだ)

$ cd ~/Desktop/
$ wine htermmdi.exe


とすると、ダイアログが開き、デフォルトのままだと「c:\hterm」にファイルが展開される。(Linux のファイルシステムでは、~/.wine/dosdevices/c:/hterm 以下に展開される。)

$ cd ~/.wine/dosdevices/c:/hterm
$ wine Hterm.exe


とすると、Htermが起動する。
メニューから「フラッシュ」「ブートモード」と進む。

ここで、SH-TINY ボードと LINUX マシンをストレートのシリアルケーブルで接続し、ジャンパースイッチを2つとも接続した状態で、電源を入れる。

「OK」を押し、次に、ダイアログの選択画面で「R5F7125」を選ぶ。
次に、CPUおよび周辺機能共に×2を選び、動作周波数では「10MHz」を入れる。
最後にファイル選択ダイアログが開くので、「rom.mot」を選ぶとプログラムが書き込まれる。

なお、Hterm はデフォルトでは、COM1 に相当する /dev/ttyS0 をシリアルポートに選ぶ。
LINUX をインストールしているパソコンに COM ポートが付いて居れば、/dev/ttyS0 に設定されるはずなので、問題が無く使えるはずだ。
しかし、最近では、COM ポートの無いパソコンも増えている。この場合、秋月で 1400円での「USB-シリアル変換器」を使うと、シリアルインタフェースが使える。だが、/dev/ttyUSB0 などに割り当てられるはずだ。その時は、Hterm を起動する前に
$ cd ~/.wine/dosdevices/
$ ln -s /dev/ttyUSB0 com1

とやっておけば、問題なく使える。

さて、ここまでは、Debian Linux Sarge での話。同じ Debian でも Etch だと、ちょっと違う。
Etch では、wine が標準のパッケージで用意されているので、インストールは楽だ。
# apt-get install wine

だけで、OK だ。

ところが、utf-8 と wine のキーボード入力機能との相性が悪く、wine で動いているプログラム上で、キーボード入力するとハングアップしてしまう。
wine を起動する前に
$ export LC_ALL=ja_JP.eucJP

とやっておくと、キーボード入力はできるが、日本語表示が全滅してしまう。

マウスなら全く問題は無いし、キーボード入力するところは、動作周波数のところの一ヶ所だけだ。
結局、私は、utf-8 のままで起動しておき、クリップボードに「10.0」と言う文字列をコピーしておき、キーボード入力する代わりに、マウスの右ボタンを使って、動作周波数のところに文字列をペーストする事で回避している。

さて、ROM への書き込みが終わったら、Hterm を終了し、kermit などのターミナルソフトを起動し、ボーレートを 38400 bps にする。
SH-TINY ボードの電源を切った状態で、ジャンパスイッチを両方とも切り、再度、電源を入れる。
「Hello World!」に続いて、「ok」と言う文字列が出続ければ、成功である。 
inserted by FC2 system