Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

秋月電子製 AE-5F10Y47(16ピン)で、LチカをP41ポートで試しました。でも、E1を外して、CPUボード単体にしてしまうと、動作しません。

秋月電子製 AE-5F10Y47(16ピン)で、LチカをP41ポートで試しました。でも、E1を外して、CPUボード単体にしてしまうと、動作しません。

これは、E1を使用しない時には、生成された.motファイルを、書き込みアプリで書き込めば、CPUボード単体で動きますが、これは、デバッグ作業を終える手順が悪いのでしょうか?

RXなどでは、E1を抜いてそのまま使えたのですが?

RL78は、どうも違うようですね。

 

色々わかっていないので、よろしくご指導ください。

  • チョコです。

    RL78で,E1を外すと動かないケースはRAMパリティ・エラーでリセットがかかっているケースはあるようです。

    ただし,RL78/G10にはこの機能はありません。

    RL78で,E1の有無で機能が変わるのが,不正命令(FF)実行によるリセットです。割り込みベクタを定義していない割り込みが発生したときに,こうなるケースがあるようです。

    手元に AE-5F10Y47があったので,TM00で500msのインターバル・タイマを作り,INTTM00の割り込み処理で,P4と0x02の排他的論理和(XOR)をとることでLEDを点滅させてみました。E1で5Vで書き込んで動作確認したものをE1を停止して,3Vの電源で動作させましましたが,特に問題なく動いてます。

    一応,使用したプロジェクトをZIPファイルに圧縮したものを添付しておきます。

    LED.zip

  • わわいです
    ふつうはE1を外せばそのまま動くはず、です。
    おそらく、あなたのコードに何らかの不都合があり、E1を外した状態ではだめになっているのでしょう、
    というより、E1が付いている状態のときにたまたまうまく動くように見えているだけ、かもしれません。

    E1がついた状態、では、デバッグ機能や内部状態のモニタのために、あらかじめCPUを特殊な設定にしたり、内部メモリの一部を書き換えたりとかすることがあり、どうしても裸のCPUとは違うところが出てきます。
    もう一度あなたのコードを見直してみてはいかがでしょうか。
  • In reply to チョコ:

    チョコさん、こんにちは。NoMaYです。横から失礼します。

    すぐに手元でE1を使える状態ではないので、少し確認させて欲しいのですが、RL78で、あるいはG10で、CS+の場合、CS+でデバッグした後、CS+を終了させて、E1を外して、そこでG10に電源を入れて動きますでしょうか?随分と長いことE1を触っていなくて、(そしてひょっとするとG10でE1を使ったことは1度も無かったかも知れず、)その状態(デバッグモニタが書かれた状態)で動くものだったかどうか思い出せないのです。

    また、かすかな記憶では、TOOL0端子をPullupしていれば動くが、Pulldownしていると動かない(デバッガからのコマンド待ち状態になっているとか)、というような話もあったような気がするのですが、チョコさんはそんな話を聞いたことはありますか?

    (もしデバッガがe2 studioだと、e2 studioが何かやらかしている可能性とかも気になるところですが、、、)

  • In reply to NoMaY:

    チョコです。

    RL78/G10と他のRL78では少し異なります。RL78/G10はセルフプログラミングができないので,最初に書かれているコードがそのまま残ることになります。(他のRL78では,実行時にソフトブレークポイントの設定でセルフプログラミングを使っています。)

    ちなみに,今回のプロジェクトでは,リセット・ベクタが0x00CEでそこがモニタ領域で,何か隠されたハードに書き込みを行い,スタートアップ・ルーチンに分岐しています。

    OCDをやっていなければ,無意味な処理でしょうが,ここらが,E1を接続してOCDモードになっていれば,何か意味のある処理になるのではないかと思います。

     

    >TOOL0端子をPullupしていれば動くが、Pulldownしていると動かない

    そんな,単純ではなかったと思います。リセット解除時にTOOL0がLowならば,デバッガとのI/Fを確立する処理を行い,時間内にI/Fが確立しなければ,抜けてくるはずです。

     

  • In reply to チョコ:

    チョコさん、こんにちは。NoMaYです。どうも有難う御座いました。

    G10ではデバッグモニタを書けないのでしたね。また、オプションバイトの書き換えも出来ませんね。(となると、私はG10でE1を使ったことは無かった(あったとしても数回程度だった)のだと思います。) そうなると、Oh! fatpigohさんの「E1を使用しない時には、生成された.motファイルを、書き込みアプリで書き込めば、CPUボード単体で動きます」というところはOKで、それに対して(デバッグした後)「E1を外して、CPUボード単体にしてしまうと、動作しません。」「RXなどでは、E1を抜いてそのまま使えたのですが?RL78は、どうも違うようですね。」というあたり、合点が行かないですね。何だろう、、、

  • In reply to NoMaY:

    チョコさん、こんにちは。NoMaYです。きっと私は前の投稿で間違えたと思います。

    デバッグモニタやオプションバイトは、CS+からG10へとプログラムがダウンロードされるタイミングで、CS+が予めこっそり自動的に結合/変更してから、ダウンロードすることが出来ますね。何か、そのあたりにカラクリがあるのかも知れないと、私は気になり始めました、、、

  • In reply to NoMaY:

    チョコさん、こんにちは。NoMaYです。またまた私は間違えたと思います。

    デバッグモニタやオプションバイトは、CS+からG10へとプログラムがダウンロードされるタイミングで、CS+が予めこっそり自動的に結合/変更してから、ダウンロードすることが出来ますね。何か、そのあたりにカラクリがあるかも知れないようなことが、私は気になり始めました、、、

    チョコさんが言わんとしていたことは、デバッグモニタは書かれていませんよ、ということでしたね。すみません。頭を冷やします。

  • In reply to NoMaY:

    チョコです。
    NoMaYさん,RL78/G10ではmotファイルとデバッグ時のメモリイメージの違い(E1がダウンロードするときに書き換える)は,リセット・ベクタとブレーク用ベクタ(0x0002,3番地)及び0x00CE~0x00D7だけのようです。RL78/G10ではダウンロード完了後はプログラムを変更できないので,コード・フラッシュの最後のところはユーザに解放されています。ここらは,RL78/G10のハードウェア マニュアルの「21. 3 ユーザ資源の確保」に書かれている通りです。
  • In reply to チョコ:

    チョコさん、こんにちは。リプライ有難う御座います。頭を冷やしました。

    チョコさんが添付されていたLED.zipでは、CS+とE1でダウンロード(5V)して、CS+を終了させて、E1を外して、そこでG10に電源(3V)を入れて、それで動いたということで良いですか?(正直に言うと、お昼頃までは、RFPとE1で書き込んで(5V)、E1を外して、そこでG10に電源(3V)を入れて、動かしてみたのかな、と受け取ってしまっていました。)

    それで、この先、話を進めるにあたっては、Oh! fatpigohさんの方で、LED.zipを解凍して、CS+でプロジェクトを読み込んで、CS+とE1でダウンロードして、CS+を終了させて、E1を外して、そこでG10に電源を入れて、それで動くかどうか様子を見て頂くのが良いですよね。

    もっとも、それで動いても動かなくても、合点の行かないことが即座に解消する訳ではないですが、これが動けばOh! fatpigohさんのソースに何かある可能性が高まりますし、逆に、これが動かなければ環境(ハードウェア)に何かある可能性が高まりますね。

  • In reply to NoMaY:

    チョコです。
    NoMaYさん,殆どの場合に,動かない程度の情報しかないので,そこから先へ進むには,動くものを試してもらい,絞り込んでいくのが一番簡単です。
    (RL78/G10は,さんざんプログラムを作ってきて,環境が比較的残っていたので動作確認は楽でしたが。)

    >RFPとE1で書き込んで(5V)、
    私は,よほどのことがないとRFPは使わないですね。と言うか,CS+だけで済むならそれだけで済ませる方です。
  • Oh! fatpigohさん、こんにちは。NoMaYと申します。

    最初のチョコさんの投稿に添付されていたLED.zipでは、どうなりますでしょうか?(横から割り込んで、引っ掻き回してしまった感もあり、申し訳なかったです。E1がすぐに使える状況にない私は、ちょっと引っ込みます。すみませんでした。)

  • In reply to チョコ:

    連絡が遅くなって申し訳ありませんでした。こんなに、盛り上がっているとは思ってもいませんでした。結果は、私の作ったプログラムであろが、チョコさんのLED.zipであろうが、以下のような同じ結果が得られました。

    1.E1を使ってCS+のデバッグでプログラムをツールへダウンロードさせて、プログラムを実行させたのちに、実行中のプログラムを停止し、その後「デバッグツールから切断し、デバッグを終了させる」アイコンを押した後、E1のケーブルをターゲットボードから抜いてしまうと、プログラムはターゲットボードの電源の入り切りを行なっても、LEDの点滅プログラムは実行されません。

    2.E1を使ってCS+のデバッグでプログラムをツールへダウンロードさせて、プログラムを実行させたのちに、実行中のプログラムを停止し、その後「デバッグツールから切断し、デバッグを終了させる」アイコンを「押さずに」、E1のケーブルをターゲットボードから抜き、そのままターゲットボードの電源を入りきりするだけで、なんの問題もなく、LEDが点滅するプログラムが実行されます。

    以上の結果です。

    つまり、「デバッグツールから切断し、デバッグを終了させる」アイコンを押すと、ターゲットボードのデバッグプログラムは、ターゲットボード単独では実行されなくなってしまい、「デバッグツールから切断し、デバッグを終了させる」アイコンを押さなければMotファイルを特に転送することなく、デバッグ後に、ターゲットボード単独で実行できるようです。。

    これは、LED.zipでも、私の作ったプロジェクトでも同じでした。

    いかがでしょうか?
  • In reply to fatpigoh:

    チョコです。
    そうなると,AE-R5F10Y47を含めて,ハード的な可能性が高いと考えられます。
    私が確認した環境は,ブレッドボードにAE-R5F10Y47を刺して,1pinはLEDと電流制限抵抗を介してVDDに接続しています。E1との接続は北斗電子のTOE1変換ボードでVDD,/RESET,TOOL0,VSSの4本の信号に変換したものを接続しています。通常はTOOL0は1kΩ,/RESETは3.3kΩでプルアップしていますが,全くプルアップ抵抗なしでも動作しました。(抵抗値としては大きいですが,一応内蔵プルアップ抵抗があるのでそれで動作できているようですが。)
  • In reply to チョコ:

    横から失礼
    「実行中のプログラムを停止」したこが原因ではないでしょうか、E1ではないですが同じようなことになったことがあります、停止はせずに切断すると動作します、これはCPUが停止を記憶しているのでしょうか?ブレークポイントとか詳細はわかりませんが。
  • In reply to チョコ:

    akizukidenshi.com/.../R5F10Y47_manu.pdf
    の秋月の推奨E1インターフェースの通りの回路です。
    チョコさんと同じだと思います。TOOL0は1kΩ,/RESETは全くプルアップ抵抗なしですね。

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page