インタフェースのSH2おまけ 10 シリアル接続事情 [RX&SH&H8]
皆さん順調にSH2ボードいじって居ますでしょうか。
私の方はSRAMが到着せず、ハードウエア、ソフトウエア共に停滞しています。
やっぱりベースボードでも作らないと、すぐにやる事無くなりますね。
さて、Interface誌のFAQには「USBシリアルの一部では正常に動かない云々」や、掲示板には「接続できない云々」と書かれています。
まあ、掲示板の接続できない方の場合、明らかにポートの設定ミスの様な気もしますが、USBシリアルの相性は、間違いなく有ります。
そこで私の接続事情を書いています。
みなさんも情報をお持ちでしたら、コメントにでも書いてみてください。
是非、情報を共有しましょう。
ところで、USBシリアルで失敗する理由は何でしょう?。
FDTやHTERMの場合、ポートの通信速度を、状況により適宜変更します。
たとえばHTERMの場合は、コンソール起動時にポートをオープンし、コンソールの通信速度に設定します。その後FLASH ROMへの書き込み時には、書き込みモジュールの転送の為に、19200とか9600に設定し直し、ユーザープログラムの転送時にも、場合によっては、57600とか38400とかに設定します。
FDTの場合でも同様で、コンソールは無いにしても、書き込みモジュールの転送時と、ユーザープログラムの転送時で通信速度を設定しなおしています。
どうもここが、USBシリアルドライバとの相性問題を引き起こしている様に思えます。
動作環境
OS:Windows2000 SP4
本体:ThinkPad X24
FDTバージョン:FDT3.05
現在公開しているSH2/7144用のデバックモニタの書き込み時間を計測してみました。
数秒程度の誤差はあると思いますが、転送速度の参考になれば。
やはりレガシーの速度は圧倒的です。
レガシーの場合:
これは間違い無いですね。本当、どんどんノートパソコンからレガシーが無くなって来ているけれど、いい加減にしてもらいたいものです。
新たにノートパソコンを購入するときは、ポートリプリケータが有るかどうかも検討項目になっています。
転送速度も、USBシリアルと比較して2倍から3倍位速く感じます。というより、USBシリアルが遅すぎ。
デバックモニタの転送時間は15秒でした。
エレコムUC-SGTの場合:
昔から愛用しているUSBシリアルで、かなりの確立で使えます。ただ、Windows XPでの環境下では若干不安定になるかもしれません。
ポトリを持って行かないフィールドでは、常にこれを使っています。
HTERMともFDTとも問題を起こさず(Windows2000の場合に限り)レガシーと比較して遅い以外は、不都合を感じません。
デバックモニタの転送時間は54秒でした。
秋月USBシリアルの場合:
これは全然駄目です。FDTでデバイスとの接続すらできません。HTERMの書き込み機能とも駄目です。
長所は安いだけです。
秋月のこのケーブルのFAQの中で、新しいドライバが紹介されています。
付属CDのドライバは駄目駄目ですが、この新しいドライバではFDTでの書き込みが出来るようになりました。となると、現在のコストパフォーマンスは最高
?。
デバックモニタの転送時間は53秒でした。
FTDIのFT232BMの場合:
以前このページ
http://blog.so-net.ne.jp/hamayan/2005-04-19-1
で紹介した自作USBシリアルアダプターです。最新バージョンの仮想COMポートドライバを使用しています。
FDTでの書き込みは成功しています。勿論普通に通信にも使えます。
工作好きな貴方にお勧めです。
ただ、これを接続したままスタンバイモードに入り、復帰すると、画面が真っ青になって、その後勝手にリセットする様な気がするのは、気のせいですよね。
デバックモニタの転送時間は60秒でした。
[番外]Xportの場合:
Xportも仮想COMポートドライバをインストールする事で、普通のポートとして利用できます。が、設定が面倒なので今回はパスです。気が向いたときにチャレンジしてみますが、多分無理です。
CP2102を使用したUSBシリアル(自作)
http://www.silabs.com/tgwWebApp/public/index.htm
FDTによるデバックモニターの書き込みとHTERMによる通信、普通に使えました。(OSは、WinXP) HOS無しのデバックモニターの書き込み時間(確か)57秒でした。
by 宮前 (2006-05-04 18:40)
情報有難うございます。
CP2102も自作アダプターでは有力な候補ですね。
マルツなんかでもモジュールとして売られていますし、今度CP2102にもチャレンジしてみたいと思います。
by hamayan (2006-05-04 21:39)
はじめまして。いつも参考にさせてもらってます。
付録のSH2が初マイコンという超初心者です。
私は秋月USBシリアルですが、無事フラッシュROMへの
書き込みが出来ました。
動作環境は
OS:Windows2000 SP4
本体:Lavie M LM600
FDTバージョン:FDT3.05
仮想ポートCOM1で通信速度は38400です。
シリアル通信はTeraTermProで確認しました。
その他の作業は雑誌に書かれていた通りです。
by かつ (2006-05-04 22:48)
↑秋月USBシリアルは、ドライバを更新する事で、使えるようになりますね。
これで無駄にせずに済みそうです。
by hamayan (2006-05-04 22:54)
SH2のおまけ基板のことが色々書いてありましたのでちょっと話題がそれるかもしれませんが質問させて頂きます。
HEWやモニターに詳しいhamayanさんにお教えいただければ幸いです。
SH2おまけ基板に、遅いSRAMを増設しSH2モニターを入れてデバッグ環境を作りました。
演習のプログラムのセクションアドレスをSRAM用に変更し実行すると正常に動作します。しかし、スッテップ実行するとVBRを変更した直後に暴走します。よく考えれば、モニターは一般不当命令を使ってブレークやステップ実行を行っているので、SRAM上のベクターテーブルに正常なアドレスがセットされていないので
暴走するのが当たり前です。しかし、その対策をとろうとするとHEWが作成するresetprg.cを修正しなければならないので、あまりスマートな解決法ではありません。モニタープログラムを直してしまうのも手ですがこれもあまりスマートではありません。
何かスマートな解決法は無いものでしょうか?。
よろしくお願いします。
by 暇人 (2006-05-07 16:54)
> よく考えれば、モニターは一般不当命令を使ってブレークやステップ実行を
トラップ命令ですね。
デバックモニタ上で割り込みが使える理由は仮想ベクター割り込みを行っているからで、割り込みが発生した時の飛び先はデバックモニタのコードになります。そこからユーザーベクター領域の該当アドレスに格納されている割り込み処理ルーティンをコールするので、ユーザープログラム上でVBRをいじってしまうと、割り込みが効かなくなります。
と言う訳で、VBRはいじらないで下さい。
割り込みベクターテーブルは、ASMでもCでも容易に作成できるので、HEWのウイザードに頼らず、自作してしまった方が便利だと思います。
by hamayan (2006-05-07 22:13)