- 締切済み
H8マイコンについての質問です
現在H8マイコンでプログラムを実施しようと 思っております。 秋月電子のマザーボードにマイコンH3052Fを接続して、 PCからマザーボードにプログラムで書き込みをしようと 思っております。 書き込み方法については、HEW4、FDT4.08を使用する予定です。 HEW4でプログラムファイルをmotファイルまで作成して、 FDT 4.08でマイコンに書き込もうと思いますが、 Device H8/3052F PORT E8DIrect の設定でスタートしましたが、下記のようなエラーがでてしまって、 書き込めません。 エラー内容 Power will be set to 5.0v Opening port 'E8DirectPrepare' ... No E8 found to re-enumerate, looking for already re-enumerated E8Direct... Error No 17657: E8Direct/E8aDirectは見つけられませんでした Clock Frequency (External) = 25.0000MHz, Clock Mode = 0, CKM = 1, and CKP = N/A Connecting to device 'H8/3052F' on 'E8Direct' Configuration: 'BOOT Mode' connection - using emulated interface Opening port 'E8Direct' ... Error No 15026: 通信ポートがオープンできません PCは富士通のBIBLO LOOX M/G30を使用しており、windows7です。 現在推定する原因としては、接続がうまくいっていないのではと 考えております。 USBを使用して、接続をしておりますが、FDTのマニュアルをみたところ E8DirectはUARTと記載ありました。 UARTてなんですか?通常のUSB接続ではないのでしょうか? また、マザーボードにはRS-232Cもありますので、こちらで接続できるのでしょうか? ちなみにPCには、15pinの外部ディスプレイコネクタがあります。 マザーボードの方はRS-s232C 9pin(たぶんシリアル)なのですが、 15pinの外部ディスプレイコネクタと接続できますでしょうか? また、RS-s232C 9pinをUSBに変換できるコネクタはもっておりますが、 このUSBに接続して試しましたが、だめでした。 FDTのポートの接続方法について教えてください。 また、RS-s232C 9pinを接続する場合は、電源必要でしょうか? いろいろと質問して申し訳ないですが、教えてください。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- undemande
- ベストアンサー率88% (8/9)
通信は解決したとのことで、良かったですね。 さて、I/Oポートの問題は、別件でご質問されたほうが良いのでは? 参考までに、AKI-H8/3052Fは、書き込み時も、通常動作時も「モード7」の設定ですよ。 書き込み時:MD0オープン、MD1オープン、MD2のみをショート 通常動作時:MD0~2全てオープン モード6は、ポート1、2、5 およびポートA の一部の機能がアドレス端子A23~A0となり、最大16M バイトのアドレス空間をアクセスできます。リセット直後は入力ポートになっています。したがってポート1、2、5 をアドレスバスとして使用する場合は、おのおのの対応するデータディレクションレジスタ(P1DDR、P2DDR、P5DDR)を1 にセットして、ポート1、2、5 を出力に設定してください。また、A23~A21を出力する場合には、BRCR のビット7~5 に0 をライトしてください(本モードではA20は常に出力となります)。 バスモードはリセット直後に、8 ビットバスモードとなり、すべてのエリアは8 ビットアクセス空間となります。ただし、ABWCR により、少なくとも1 つのエリアを16 ビットアクセス空間に設定した場合には、16 ビットバスモードとなります。 モード7は、内蔵ROM とRAM、内部I/O レジスタで動作するモードです。すべてのポートを使用することが できます。 モード7 はアドレス空間が1M バイトとなります。 各動作モードにおいて端子機能が変化します。 つまり、動作モードによりポート1~5、およびポートA の端子機能が切り替わります。 そういう意味では、ポートBの機能はモードには関係ないのですが、他の端子の機能が変わってしまいます。AKI-H8/3052Fは、単体では汎用のH8CPUボードですからどんなモードでも使えるように鳴っていますが、通常はCPUの外部へのメモリーアクセス等を行う外付けのハード構成でない限り、モード7で使います。
- undemande
- ベストアンサー率88% (8/9)
過去に多くのUSB機器を使用していませんか? ドライバなどのソフトウエアによっては、COMポート番号が2桁になると接続できなくなります。 私はHEWでE8aを使用しているときにこの現象が起きました。 現在物理的には繋げていない1桁台のCOMポート番号を、自己責任で強制的に割りつけて下さい。
- undemande
- ベストアンサー率88% (8/9)
大変失礼をいたしました。 AKIH8/3052Fは、FDTを使ってこのAKIH8/3052Fマイコンボードをプログラムする事が可能です。必ずシリアルインターフェース(UART :Universal Asynchronous Receiver Transmitter,調歩同期方式による シリアル通信)で行います。 ところが現在では、R232Cのインターフェースを持たないパソコンが増えているために、ダイレクトにつなげることができません。 そこで、パソコンのUSB端子とAKIH8/3052Fマイコンボードのシリアルインターフェース(RS232C)端子との間に、USB-UART変換ICを搭載したケーブルをはさみ、そのケーブルの専用の変換ドライバソフトをパソコン側に組込んで、USBがあたかもパソコンのCOMポート(UART)に見えるようにして使うのが、現在最もよく使われている方法です。 重要なことは、「FDTがCOMポート番号の1桁以上には対応していない」ことです。 これはなかなか気が付きません。 もしも割り当てられるCOMポート番号が2桁になっていたら、現状使用していないCOM番号に強制的に設定して下さい。COMポート番号を変更する場合には、現在使用している番号と重複しないように十分注意して下さい。 方法は、下記手順に従って自己責任で行なって下さい。 http://hioki.jp/soudan/logger/pdf/3920.pdf
- undemande
- ベストアンサー率88% (8/9)
HEWはRenesas純正のコンパイラーですね。フラッシュ開発ツールキット ( Flash Development Toolkit ) とは、ルネサス製フラッシュ 内蔵マイコンのフラッシュメモリに対し書き込みを行うためのソフトウェアです。 残念ながらFDTは、統合開発環境のHEWから書き込む時と同じで、Renesasの専用の書き込み器(E8a)等を介してターゲットマイコンをプログラミングするツールです。直接ターゲットにプログラミングすることは出来ません。
お礼
ご回答ありがとうございます。 下記のサイトを参考にHEW4とFDTを使用していました。 下記のサイトではRS-232Cを使用して、HEW4とFDT を利用してプログラムを書き込んでいましたが、 違うのでしょうか? ご確認をお願いいたします。 http://homepage1.nifty.com/rikiya/program/fdt_setup/fdt_setup.html
> クロスケーブルとストレートケーブルをつなげて > 接続すれば上手く認識するのでしょうか? そういう問題ではありません。信号線とコモン線は同じですが、フロー制御の線をどうするかが千差万別なんですよ。確実に共通なのはDSUB9ピンの2,3,5ピンだけで、後はどうなっているか(どうすればいいか)は各機器のマニュアルで確認しないと解りません。 今のメッセージ内容からすると、PC側の設定はできているっぽいので、後はケーブルを何とかしてください。秋月のマニュアルに、ケーブルの結線図が出ていたはずです。 ちなみに、2,3,5ピンをそのままつなぐとストレートに、2<-->3,3<-->2,5<-->5とつなぐとクロスになります。他のピンも使われていますが、そこをどうすればいいかはさんざん述べたようにマニュアルで調べてください。
お礼
ご回答ありがとうございます。 秋月電子マザーボード結線図確認しました。 2pin TXD1 3pin RDD1 5pin gnd 7pin-8pin です。 ほかの結線は配線されていませんでした。 そのため、クロスケーブルを挟みました。 RS-232C(クロスケーブル)-RS-232C⇔USB変換ケーブル(ストレートケーブル)-PC で接続してみましたが、やはりだめでした。 ちなみに、RS-232C⇔USB変換ケーブル(ストレートケーブル)は 1pin CD 2pin RXD 3pin TXD 4pin DTR 5pin GND 6pin DSR 7pin RTS 8pin CTS 9pin RI エラーは下記の表示になります。 Clock Frequency (External) = 25.0000MHz, Clock Mode = 0, CKM = 1, and CKP = N/A Connecting to device 'H8/3052F' on 'COM4' Configuration: 'BOOT Mode' connection - using emulated interface Opening port 'COM4' ... Loading Comms DLL Loaded Comms DLL Initiating BOOT SCI sequence Attempting 9600 Attempting 4800 Attempting 2400 Attempting 1200 Error No 15024: ブートの合わせ込みに失敗しました あとは、どの辺を疑ったらよろしいのでしょうか?
> UARTてなんですか?通常のUSB接続ではないのでしょうか? UARTとは、シリアルポートのドライバICのことです。ドライバと言ってもソフトじゃなくて、ハード的に信号をドライブするものだと思ってください。で、PCとマイコンの間にE8aエミュレータなるものをはさみ、こいつがUSB-シリアル変換を行ってくれるアダプタのようです。ということは、E8aエミュレータを使用していない(シリアルポート直結)にもかかわらず、それを使って接続するように設定しているから、見つからないぞエラーが出ているものと考えられます。 実は秋月のキットはしばらく触ってなくて(以前は3048Fのボードを触っていた)、その時も開発環境は以下のリンク先のGCC Developer Liteだったんですが、シリアルポートで接続するソフトは例外なく、ポート設定は手動です。つまり、COM番号の何番を使って接続するかを指定するのはユーザー責任で、これが間違っているとつながりません。もしマザーボードからRS-232C端子が出ているなら、そっちを使う方がむしろ確実です。USB-シリアル変換の相性問題でつながらないトラブルは、事例に事欠きませんので。 http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite また、RS-232Cケーブルの内部結線は種類が複数あります。クロスケーブルと言っても一種類じゃないんですよ。これが違っているとやっぱりつながりません。なのでマイコンボート側のマニュアルなどを調べて、要求されている結線を調べておく必要があります。なお、DSUB15ピンでつなぐのはこれは全然無理です。共通点は、DSUBであると言うことだけ。 あとシリアルポートには電源供給機能などというしゃれたものはないので、電源は不要です。
お礼
ご丁寧にありがとうございます。 非常によくわかりました。 上手くRS-232Cのドライバがインストールされていなかったため、 PC上で認識されていませんでした。 インストールしたら認識されて、ポートNO.もわかりました。 >>また、RS-232Cケーブルの内部結線は種類が複数あります。クロスケーブルと言っても一種類じゃないんですよ。これが違っているとやっぱりつながりません。 ただし、上記については、2PINと3PINの配置が違っていました。 クロスケーブルとストレートケーブルをつなげて 接続すれば上手く認識するのでしょうか? 上記のせいなのか、下記のようなエラーがまだ表示されます。 FCF Settings Applied: H8/3052F, (C:\Program Files\Renesas\FDT4.08\kernels\ProtB\3052\Renesas\1_2_00\) Clock Frequency (External) = 25.0000MHz, Clock Mode = 0, CKM = 1, and CKP = N/A Connecting to device 'H8/3052F' on 'COM3' Configuration: 'BOOT Mode' connection - using emulated interface Opening port 'COM3' ... Loading Comms DLL Loaded Comms DLL Initiating BOOT SCI sequence Attempting 9600 Attempting 4800 Attempting 2400 Attempting 1200 Error No 15024: ブートの合わせ込みに失敗しました お手数ですが、ご回答を何卒よろしくお願いいたします。
お礼
ご回答ありがとうございます。 ポート番号はひとけたです。 書き込みできました。 どうやら原因はハードの接続不良になります。 ただし、思った通りの動きをしてくれません。 PB0~PB3に接続しているLEDがすべて 交互に点滅をするのかとおもいましたが、 ひとつのLEDが点滅しません。 また、秋月電子のマザーボードを使用しておりますが、 その説明だと、書き込み(ブートモード7)では MD2にジャンパー、通常動作(モード6)では MD0にジャンパーと記載ありましたので、その通り しましたが、通常動作で上手く動きませんでした。 かわりにジャンパーをすべて取り外して、 通常動作にして電源を入れなおすと、 ひとつのLED以外は交互に点滅するようになります。 なぜでしょうか?ご回答のほど何卒よろしくお願いいたします。 Processing file :"C:\WorkSpace\pio_test1\pio_test1\Debug\pio_test1.mot" Operation on User Flash Downloaded the operation module Writing image to device... [0x00000000 - 0x000000FF] Writing image to device... [0x00000400 - 0x0000047F] Writing image to device... [0x00000800 - 0x0000097F] Data programmed at the following positions: 0x00000000 - 0x000000FF Length : 0x00000100 0x00000400 - 0x0000047F Length : 0x00000080 0x00000800 - 0x0000097F Length : 0x00000180 768 Bytes programmed in 2 seconds 書き込みが完了しました