UARTに同期モードを持つデバイスってありますか?

こんにちは、NAKAといいます。

以前、V850E/PS1(uPD70F3148(A1))の、アシンクロナス・シリアル・インターフェース(UART)を持つデバイスに、同期モードを選択できるものがありました。
クロックで同期しているのに、スタート・ストップ・パリティビットが存在する、調歩同期みたいなモードです。

現在のルネサスになってからのデバイスにも、このモードを持つデバイスは存在するのでしょうか?

旧NEC系ですから、V850かRL78なんかに....。
RXにはなさそうですね?
  • スタッフのチョコです。

    残念ながら,RL78やV850の一般品で探してみましたが,お問い合わせの機能をもつものは見つかりませんでした。

    お問い合わせで参照されているV850E/PS1(uPD70F3148(A1))は特定顧客向けの製品で,詳細な情報は開示されておりません。同様な製品ではあるかもしれませんが,残念ながら情報を検索できません。

    申し訳ございませんが,こちらでは探しきれません。

  • チョコ様

    探していただいて、ありがとうございます。

    時折、先出ECUのI/Fが現れ、最近は制御や種々の評価を
    CANで統合して行いたいとの要求がでます。
    通信のプロトコルを変換するだけの機能ですが、SPIを
    誤魔化して使ったり、結構苦労します。
    RL78など、ローエンドにこの機能があれば通信GW専用
    としてツールを作っておきたかったと考えました。
    このI/Fはやっぱり特殊なんですね.......涙)
    FPGAで作りますか....?

    ありがとうございました。
  • スタッフのチョコです。

    転送速度が分からないのと,FPAGでどの程度の手間がかかるか分かりませんが,RL78で対応しようとすると,3線式クロック同期通信CSI(SPI)を利用するか,全てソフトでやるしかありません。
    CSI11の場合には,RL78/G13の100ピン以下の製品では,P30にINTP3とSCK11が兼用されているので,これを使うことが考えられます。
    最初はINTP3でクロックのエッジを検出して,P17(SI11)で信号のレベルを確認します。スタートビットなら,CSI11を起動してデータを受信します。受信完了したら,INTP3でクロックのエッジ検出して,P17でストップビットの確認と言った手順になるかと思います。
  • チョコ様

    ありがとうございます。
    そもそもRL78にはまだCAN機能が搭載されてませんでしたのでR8CのSSUになるのでしょうか?
    先回、SSUが思ったように動作しなかったため、手持ちのSHのRSPIでごまかしました......ああもったいない。

    そこでふと、SPIをCSIやSSU、RSPIとデバイスによって違うのは何故なんだろう、最近触ったRXではRSPIの他に、SCIの中に簡易SPIモードなんてのもあるし、最初に使う側はいろいろ選べて便利ですが、後から受ける側は混乱しますよね!....涙)

    >全てソフトでやるしかありません。
    ⇒以前、IrDAのレートトレランスが±0.87%とやたら厳しく、
    選定したXtalでは、選定したECUの初段分周比の関係で1.78%程度にしか設定できなくて、SCI機能を使わずにソフトで通信しました。PWMタイマーでIrDAのエンコードもついでに行って...。
    大変でした。


    また、困ったとき相談させてください。
  • > そこでふと、SPIをCSIやSSU、RSPIとデバイスによって
    > 違うのは何故なんだろう、最近触ったRXではRSPIの他
    > に、SCIの中に簡易SPIモードなんてのもあるし、
    > 最初に使う側はいろいろ選べて便利ですが、後から
    > 受ける側は混乱しますよね!....涙)

    うん。でも
    H8 / SH => 日立 = SCI
    M16 => 三菱 = SSU
    78K0/V850 => NEC = CSI

    っていう成り立ちに依存するんでしかたないですよね
    R8Cは 三菱系なので SSU
    RXは H8/SHの系譜なのでSCI
    RL78はNECなので CSI

    なんでしょう。
    で、ふつ~SPIだと
    (1)SCK/TXD/RXDタイミング(4パターン)
    (2)MSBファーストかLSBファーストか
    を選べないとだめなはずなんですが、
    SCIでは固定になってる関係上、標準的な
    SPIデバイスのほとんどが使えないので
    SCIに拡張されたのがRSPIというふうに
    認識しています。

    こればっかりは仕方ないですね。
    いずれコアと周辺との組み合わせが選べるように
    なるでしょうから、いいのだとはおもうけど。
    できることなら
    RXにCSI(SAU)をいれてもらうとつかいやすいのでは?
    とおもいます。



  • tetnoguchi様

    コメントありがとうございました。

    ウィキにはモトローラが提唱し規格化されたとありますが、規格がまちまちのような気がしますね?

    R8CでマイクロチップのEEPROMをSSUで繋げましたが、チップセレクトがデータごとに戻ってしまい、うまく使えませんでした。EEPROM側の仕様でコマンド送信中はチップセレクトを変えないとのこと。ルネサス様に相談したらチップセレクト(SS)をポートで操作してくださいとのアドバイスでした。結局、みんなI/Oポートで関数作って使いました......涙)

    SSUってシンクロナス・シリアル・ユニット?
    CSIってクロック・シンクロナス・インターフェース?
    なんの略なのかもハードマニュアルで探すのも難しいですね?
    アトメルAVRはIIC?I2C?がTWIってなってるし???です。

    ぼくのSPIのイメージは、クロック同期で、送信、受信とチップセレクトみたいなものがあって、bit数や論理、送り方向がある程度自由度がある、デバイス間のシリアル通信って感じでしょうか?

    また、アドバイスください。
    ありがとうございました。

    P.S.
    ぼくも同じてっちゃんです......笑)





  • スタッフのチョコです。

    CSIはClocked Serial Interfaceの略です。

    昔はSIO(Serial I/O)だったのですが,クロックとデータの位相関係が選択できるようになってCSIになりました。
    ちなみに,78KやRL78でSPIと呼ぶのは,SPIのスレーブとしてチップセレクト信号入力をサポートしているときです。それ以外はCSIと呼んでいます。
  • NAKA 様

    そうですか、てっちゃんさんですか~(^^

    さて\,
    IICとI2Cは、まあいいですけどね
    わざわざTWIって付け直す必要はなかったように
    おもいますよね。まぁ、2線式通信ということで
    Two Wired Interface
    かなにかの略なんでしょうね。

    SPIについては
    CS部分だけはIOコントロールでやったほうが
    自由度が高くていいかもしれませんね。
    た~~っくさんSPIデバイスをくっつけることも
    可能でしょうから。ただし、DMAとかつかって
    CPUの介在なしにデータ転送がしたい!となると
    RSPIのようにCSも込みで制御、となるのでしょうか。

    ちなみにSPIでは8ビット、というのが標準なんじゃないでしょうか。たしかに、ADなんかは中途半端なビット数で
    分割しておくってくるけど(汗
    デバイス側で考えるのかコントローラ側で考えるのかによって
    変わってくる感じですね。
    そういう意味では、チョコさんのおっしゃるような
    使い分けになるのもわかる気がしますね