CS+ CGについて質問です)RL78/I1E のTRJO0(P12) (TRJIO0(P11)ではない) でのパルス出力とUART1のRXD1(P11)がブッキング?

RL78/I1Eを使ってます。

CS+ の CG で、以下の設定をすることができません。 ハード的な仕様としてはOKのハズですが、何か勘違いしておりますでしょうか?

ご教授ねがいます。

 

①UART1 TXD1, RXD1(P11) を使う設定とする

②RJタイマのパルス出力を TRJO0(P12) にて実施したい。

 

②の設定の際、RXD1(P11) の兼用ポートである TRJIO0(P11) がブッキングしているとして、②が設定できない。

 TRJIO0(P11)が使えないのはOKだが、TRJO0(P12) は無指定であり、使える状態にありますので、こちらを

 機能として選択しパルス出力できると思います。

 

この現象はCS+ v4, v5 ともに発生します。

Parents
  • > ハード的な仕様としてはOKのハズですが、何か勘違いしておりますでしょうか?

    『RL78/I1E ユーザーズマニュアル ハードウェア編』の「7.4.3 パルス出力モード」に

    TRJIO0端子とTRJO0端子の2端子からパルス出力が可能で, アンダフローするごとに出力レベルを反転します。TRJO0端子については, TRJIOC0レジスタのTOENAビットによりパルス出力を停止できます。

    とあるので、パルス出力モードを使用する際には TRJIO0端子(=P11)のパルス出力を停止することはできない仕様では?

  • fujita nozomu先生 NAKAです。
    春分の日にもかかわらず、お仕事お疲れさまです。

    僕もマニュアルを読んで、上記のように 先生と同じ理解だったんですが、TRJIO0端子(P11)の設定

    POM1 &= 0xFD;
    P1 &= 0xFD;
    PM1 &= 0xFD;

    をあえてやらなかったら、

    P11からのパルス出力はありませんでした、というよりUART1のRXD1端子の機能が有効にできた感じです。UART1で受信できましたから。

    内部では出力されているのかもしれませんが、アナログスイッチみたいなものの選択がRXD1側になってる感じがしました。(勝手な想像ですが.......汗)
  • > TRJIO0端子(P11)の設定
    >
    > POM1 &= 0xFD;
    > P1 &= 0xFD;
    > PM1 &= 0xFD;
    >
    > をあえてやらなかったら、

    『RL78/I1E ユーザーズマニュアル ハードウェア編』の 23頁、「図2 - 6 端子タイプ8-1-4の端子ブロック図」を見る限りでは

    POM1 &= 0xfd;
    PU1 &= 0xfd; P1 &= 0xfd; PM1 |= 0x02;

    とするのが適切のようです。リセット信号により初期化される値であり敢えて設定しなくても動作すると思います。

    機能を有効化してポート・モード・レジスタで無効化する使い方は恐らくは CS+ のコード生成ツールの想定していないハードウェアの使い方ではないかと思いますが、メンテ性を考えると少々躊躇するものがありますね。

  • チョコです。
    RL78の端子の入出力は基本的にポート機能の設定で制御しています。
    特にPMレジスタを入力(=1)に設定すると,出力の兼用機能からは出力されません。
    今回はこのケースに当たります。
    マニュアルの「図2 - 6 端子タイプ8-1-4の端子ブロック図」を参照してください。
  • fujita nozomu先生、チョコ先生 恐縮します!NAKA DEATH!

    「図2 - 6 端子タイプ8-1-4の端子ブロック図」もちらっと見てましたが、見流してました....汗)
    norio.okadaさんへの回答としては『あまり良い使い方ではないけど、動かないことはない』になるのでしょうか?
  • チョコです。
    マニュアルに記載されている情報に基づいた使い方です。
    そもそもコード生成が初心者レベルなので,そこから一歩進んだ使い方と言うべきでしょう。
  • 使い方に問題はないと思いますが、コード生成ツールでは両立できない筈の UART1 と パルス出力モードをコード生成ツールが生成したコードを編集して実現するとなると保守性は落ちることとなるので、ドキュメントに明記するなりコメントをがっつり書くなりの作業は必要になると思います。
Reply
  • 使い方に問題はないと思いますが、コード生成ツールでは両立できない筈の UART1 と パルス出力モードをコード生成ツールが生成したコードを編集して実現するとなると保守性は落ちることとなるので、ドキュメントに明記するなりコメントをがっつり書くなりの作業は必要になると思います。
Children
  • fujita様、ありがとうございました。
    CGを使いこなしているお客様でしたので、沿った形で進めないと、CGによる上書きでコードが消えてしまうと考えてました。
    今回の件は RJタイマのソースを一旦生成し、リネームして上書き(削除)されない状態として、他の機能ブロックと喧嘩なく使えるように設定したいと思います。