« SH-TINY | Main | SH-TINY その3 リアルタイム OS »

June 14, 2007

SH-TINY その2

E094左が、今回私が作った 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」と言う文字列が出続ければ、成功である。 

|

« SH-TINY | Main | SH-TINY その3 リアルタイム OS »

Comments

少しお聞きしたいことがありコメントさせていただきました。
Ubuntu8.04でHtermを使用したいと考え、wineをインストールし、Htermをダウンロード、起動し、「通信」->「切断」、「ファイル」->「プロパティ」と進んだところ、「通信ポート」に何も表示されない状態となっています。
解決に何かヒントがありましたら、いただけると幸いです。

Posted by: cb | September 15, 2009 at 02:53 AM

cb さん、ようこそ。

確認ですが、
(1) USBなどでシリアルポートが使えますか?
Hterm の前に、他の Ubuntu ネイティブのターミナルソフト(kermit など)で使えるか、確認してください。この時、シリアルポートが、どのデバイスか /dev/ttyUSB0 かどうか確認しておいてください。
(2) 使えるシリアルポートを
$ cd ~/.wine/dosdevices/
$ ln -s /dev/ttyUSB0 com1
として、Hterm でアクセスできるところにあるかどうか、ご確認ください。

よろしくお願います。

Posted by: 野田篤司 | September 15, 2009 at 07:44 PM

返信ありがとうございます。
(1)について
kermitを起動し、
C-Kermit>ls -l /dev/ttyUSB*
と入力すると、シリアル変換ケーブルを接続した状態で、
crw-rw---- 1 root dialout 188, 0 2009-09-16 20:06 /dev/ttyUSB0
と出力されました。また、デバイスマネージャでも変換ケーブルの接続が確認できましたので、USBでシリアルポートが使用できると思われます。使用している変換ケーブルは、「HL-340」です。
(2)について
$ cd ~/.wine/dosdevices/
$ ln -s /dev/ttyUSB0 com1
としたところ、
.wine/dosdevicesにcom1が作られ、kermitから
C-Kermit>ls -l com1
と入力すると、
lrwxrwxrwx 1 boss boss 12 2009-09-15 12:48 com1 -> /dev/ttyUSB0
と出力されました。Htermは.wine/dosdevices/c:/hterm以下に展開されています。
また、アドバイス等ありましたらよろしくお願いします。

Posted by: cb | September 16, 2009 at 08:46 PM

cb さん、
こっちでも再現しました。
黄色い!マークと「開けません」の表示が出てしまいます。
完全に再現して、元に戻す方法も見つかりません(笑)
さて、困りましたね。どこかにデバイス設定が書いたファイルがあるはずなんですが、見つかりません。
こちらでも探しますが、そちらでも見つかったら教えてください。

Posted by: 野田篤司 | September 16, 2009 at 10:39 PM

cb さん、
見つけました。
.wine/dosdevices/c:/hterm の 下にある HTERM.INI を消してください。
この状態で Hterm を起動すると、シリアルを接続したままになります。
「通信」->「切断」で画面を消したら、「ファイル」->「プロパティ」ではなく、「通信」「接続」を選ぶと、再び画面が開きます。
これだと、シリアルを再接続できますが、ボーレート設定はできませんね。
「フラッシュ」「ビットレートの設定」で通信のボーレート設定ができるかどうかは試してません。
私の場合、Hterm はプログラムの書き込みに、普段のシリアル通信はCKermitと言うように使い分けています。

Posted by: 野田篤司 | September 16, 2009 at 11:12 PM

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/94422/15435103

Listed below are links to weblogs that reference SH-TINY その2:

« SH-TINY | Main | SH-TINY その3 リアルタイム OS »