スマートコンフィギュレータによる端子設定

スマートコンフィギュレータによる端子設定についてご教示願います。
使用マイコンはRH850F1KM-S1(R7F701692)です。

端子設定->端子番号タブ上で兼用機能として設定した端子に対して、どこまで

端子番号2の端子に兼用機能TAPA0WPを割り当てました。
出力の初期値として1を設定したいのですが、可能でしょうか。

端子設定->端子番号タブ上では設定する項目がなかったため、
コンポーネントタブ->Drivers->入出力ポート->Config_PORT(事前に作成済み)において、
P10_4の「出力」/「1を出力」にチェックを入れることで対応出来ないかと思いましたが、競合が発生しました。
※Config_PORTはあくまでもGeneralポートとして使用する場合にのみ設定可能なのでしょうか。

  • >端子設定->端子番号タブ上で兼用機能として設定した端子に対して、どこまで
    すみません。この一文は無視して頂いて構いません。
  • matsuさん、こんにちは。NoMaYと申します。

    他の品種(RXスマートコンフィグレータ/RL78コード生成機能)からの類推になりますが、生成されたコードにおいて、以下の設定はGeneralポートの内蔵周辺レジスタに対する設定になる筈ですので、兼用機能に割り当てた場合の兼用機能における端子出力の初期値をここで設定することは出来ないと思うのです。

    > コンポーネントタブ->Drivers->入出力ポート->Config_PORT(事前に作成済み)において、
    > P10_4の「出力」/「1を出力」にチェックを入れる

    RH850はユーザーズマニュアルが非公開(入手するには守秘契約を結ぶ必要があるのだと思います)なので、TAPA0WPの仕様が分からないのですが、端子出力の初期値を選択したいニーズがあるものなら、その機能の内蔵周辺レジスタに何かしらのそういった機能(もしかすると頓知的な発想が必要になるのかも知れません)がないですか?

  • NomaYさん
    リプライありがとうございます。

    >端子出力の初期値を選択したいニーズがあるものなら、その機能の内蔵周辺レジスタに何かしらのそういった機能(もしかすると頓知的な発想が必要になるのかも知れません)がないですか?
    確かにご指摘の通りです。その線でもマニュアルを確認してみます。

    ただ、一度出力初期値から話が飛びますが、TAPA0VNとして使用するポートは、出力ドライバ強度をハイドライブ強度に設定するようにハードウェアマニュアルに記載があります。
    この出力ドライバ強度は端子機能のレジスタ設定で可能です(他にはそのような設定ができる機能は見当たりませんでした)。

    上記も併せて考えると、端子機能のレジスタ設定としてサポートしている機能(出力初期値や出力ドライバ強度など)は兼用機能の端子に関しても可能なのではないかと考えています。

    この認識が正しければ、「兼用機能の端子においては、初期値出力設定はハンドコーディングしなくてはいけない」のでは無いかと思います。

    ご見解頂けますでしょうか。
  • matsuさん、こんにちは。NoMaYです。

    > 上記も併せて考えると、端子機能のレジスタ設定としてサポートしている機能(出力初期値や出力ドライバ強度など)は兼用機能の端子に関しても可能なのではないかと考えています。

    ユーザーズマニュアルが非公開なので、ユーザーズマニュアルのポートの章に書かれている回路構造の模式図も分かりませんので、すみませんが、それが可能そうなのか私には分からないです。

    少なくとも他の品種(RX, RL78)の話では、兼用機能に割り当てた場合の兼用機能における端子出力の初期値の0/1をポート回路で設定出来るという話は、自分には覚えが無いです。ですが、以下のような小技はあります。

    RL78
    ⇒ 兼用機能時のポート出力が汎用ポート出力とORされたりANDされたりしていて、そのことを利用して、ポート出力値設定レジスタに1を書いて端子出力を強制的に1にしたり、逆に、ポート出力値設定レジスタに0を書いて端子出力を強制的に0にしたり、といった操作が出来る(下記のユーザーズマニュアルの回路構造の模式図の画面コピーの赤枠部分を見て下さい)

    RL78, RX
    ⇒ 兼用機能をユーザプログラム内で一時的に汎用ポート機能に切り替えて端子出力の0/1を操作する(ただし、汎用ポート機能への切り替え前の兼用機能時、汎用ポート機能から切り替えた後の兼用機能時、においては望まない出力になってしまうケースがあることは避けられないですが)

    過去、RH850に関しては、かふぇルネで、RH850は端子をポートとして使うだけでもびっくりするほど沢山のポート設定レジスタを操作しないといけない、というつぶやき(ぼやき?)を見掛けた覚えがあります。それらのポート設定レジスタの中に、兼用機能に割り当てた場合の兼用機能における端子出力の初期値を設定することが出来るようなポート機能の内蔵周辺レジスタがあれば、RH850スマートコンフィグレータのポート設定のGUIで出来た方が良いよなぁ、と私は思います。

    RL78/G14 ユーザーズマニュアル ハードウェア編 画面コピー
    www.renesas.com/jp/ja/search/keyword-search.html#genre=document&q=r01uh0186
    r01uh0186jj0330-rl78g14.pdf

     

  • チョコです。
    V850では,兼用機能を選択するレジスタが3段か4段くらい並んでいて,それらを順に設定していきました。RH850はV850の流れをくんでいるので,RL78みたいに兼用のポートの出力ラッチを使うなどのしみったれた回路にはなっていないはずです。
  • チョコさん、こんにちは。NoMaYです。

    > RH850はV850の流れをくんでいるので

    ああっ、そうですね、V850E2まではユーザーズマニュアルが公開されているので、何か探してみましょう。それのポートの章の回路構造の模式図の画面コピーを後で投稿しようと思います。

  • matsuさん、チョコさん、こんにちは。NoMaYです。

    V850E2/Fx4-Hの端子機能の章の回路構造の模式図は以下の画面コピーの通りでした。この図しかありませんでしたので、どのポートも同じ回路ですかね。[訂正] STD1V1と書かれた点線枠内が同じで、それより右側の部分は多少ポート依存するのでしょう。(少なくともアナログ入力が書かれていませんので。) あと、TAPAがありますね。後で見てみようと思います。[追記] どうもTAPAは(V850E2/Fx4-Hでは)TAUA0のオプション機能のようですので、TAUA0も見ないといけなさそうですね。

    V850ファミリ 製品ページ
    www.renesas.com/jp/ja/products/microcontrollers-microprocessors/v850.html

    V850E2/Fx4-Hグループ 製品ページ
    www.renesas.com/jp/ja/products/microcontrollers-microprocessors/v850/v850e2fx/v850e2fx4h.html

    V850E2/Fx4-H ユーザーズマニュアル ハードウェア編
    www.renesas.com/jp/ja/search/keyword-search.html#genre=document&q=r01uh0318
    r01uh0318jj0100_v850e2_fx4_h.pdf




    [追記]

    TAPA0WPというのは、以下の画面コピーの青色枠部分になるのでしょうかね。どうもTAPAは(V850E2/Fx4-Hでは)TAUA0のオプション機能のようですので、TAUA0も見ないといけなさそうですね。

     

  • matsuさん、こんにちは。NoMaYです。

    > 上記も併せて考えると、端子機能のレジスタ設定としてサポートしている機能(出力初期値や出力ドライバ強度など)は兼用機能の端子に関しても可能なのではないかと考えています。

    あと、matsuさんが誤解されているのかな、と感じたことがあります。微妙なニュアンスのことなのですが、出力ドライバ強度に関してはそれを設定するレジスタが存在しているということで合っている筈ですが、それとは異なり、出力初期値を設定するレジスタが存在するわけではない筈です。単に、汎用ポート機能で普通にいつも使用している出力値設定レジスタ(リセット時の値は0)の値を0⇒1へ書き換えているだけの筈だと思うのです。

    誤解:
    出力初期値を設定するレジスタが存在していて、そのレジスタに書き込みをしている

    実際:
    そういうレジスタは存在していなくて、単に、汎用ポート機能で普通にいつも使用している出力値設定レジスタ(リセット時の値は0)の値を0⇒1へ書き換えている、だけである

  • NomaYさん、チョコさん

    matsuです。
    お二人に多くの情報を頂く中、返信が遅くなり大変申し訳ありません。

    >出力初期値を設定するレジスタが存在するわけではない筈です。単に、汎用ポート機能で普通にいつも使用している出力値設定レジスタ(リセット時の値は0)の値を0⇒1へ書き換えているだけの筈だと思うのです。
    上記ご指摘の通り、単に汎用ポート機能として出力値設定レジスタがある認識です(認識です、というよりF1KM-S1にもその機能があります)。
    こちらの説明が拙く申し訳ありません。
    担当案件の顧客からのスペックとして「初期値1とする」旨が定義されているため、そのような表現をしました。もう少し背景を丁寧に記載すべきでした。

    同じRH850系列のマイコンを使用したソースコードを手に入れたため確認したところ、
    出力ドライバ強度は汎用ポート機能を用いて設定し、その後兼用端子機能の割り当てを実行していました。
    おそらくF1KM-S1でも同様の対応が出来るはずです(実機が手に入るのがずっと先なのですぐには確認できませんが)。
    なお別途ルネサスに問い合わせたところ、この設定はスマートコンフィギュレータでは対応出来ないみたいです(えぇ。。という感じですが)。

    以上になります。ご助力頂き、ありがとうございました。
  • matsuさん、こんにちは。NoMaYです。

    > なお別途ルネサスに問い合わせたところ、この設定はスマートコンフィギュレータでは対応出来ないみたいです(えぇ。。という感じですが)。

    そうかなぁ、、、この先は個人の感想といった感じになりますが、途中までは汎用ポート機能として使用して途中からは兼用機能に切り替える、といった使い方がスマートコンフィグレータGUI上で設定出来なくても、私は、そういう設計は充分に自然だという気がします、、、

    あと、(過去の自分の)発注する側としての経験では、「顧客からのスペックとして「初期値1とする」」において、発注元の人はスマートコンフィグレータGUIを意識して発注仕様書を書いているわけでは無いと思うのです。くどく書くと、「スマートコンフィグレータGUI上で設定した他のポートに初期値1を出力するのと同じタイミングでその端子から1を出力する」ことを意味してはいないと思うのですね。

    だから、TAUA0に端子出力を1にする機能があったとすれば、装置の他の部分が動き出す前ならmain()の先頭でTAUA0の機能で1出力にしてもよいかも知れません。(装置全体がどう動作するかによりますが、、、もちろん発注元と打ち合わせた上で、ですが、、、main()の先頭だとさすがに遅いかなぁ、との返事が返って来るかも知れませんので、、、)

    逆に、0出力は絶対にダメだ、ということならば、端子機能を汎用ポート(リセット後の状態は入力ポートでHi-z)機能から兼用機能に切り替える前にTAUA0の機能で切り替え直後から1出力になるように、事前にTAUA0の機能で兼用機能での出力初期値を1に設定しておく、という対処も必要になると思うのです。(ただ、スマートコンフィグレータの自動生成コード部分を書き換えないといけないことになる場合もあり、そうなったら、私も、さすがにそれは面倒だよなぁ、とは思うのです。(私の場合、裏技#defineマクロとか考えたりして、ちょっと意地になって自動生成コード部分を書き換えずに済まそうとしてしまうこともあります。RL78やRXの時の話ですけど。))

    同じRH850系列のマイコンを使用したソースコードを手に入れた、とのことですので、この先の作業へと進むことが出来そうですね。