![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
SPIの通信インターフェースを持つIC(デジタルポテンショメーター)一つに、PCのシリアルポートから抵抗値の8ビットデータを送信、設定することは可能でしょうか?具体的には、シリアルポート側のdtrおよびrts信号でSPIのクロックとデータを送信し、IC側のCSは常時オンに保つ、という結線です。PCのソフトウェアはC言語などで数十ミリ秒の間隔でdtr やrtsでset/clrする方針です。ICの駆動電源や信号の電圧レベルとシリアルポートの出力電位の違いはフォトカプラーなどで対処します。その他、よいアイデアがあればご教授ください。宜しくお願いします。
No.3ベストアンサー
- 回答日時:
> このクロックに載せて送るシリアルデータのタイミングをどのように同期するか
ちょっとどこに問題を感じているのか分かりませんが…
説明不足でしたかね。1バイトにつき1クロックとして、1バイト送信ごとにDTR/RTSを操作することを考えています。
![「1つのSPIデバイスへのpcのシリアルポ」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/150691_5e55313c670af/M.png)
SortaNerd様
丁寧に図を添付いただいて、どうもありがとうございます。
なるほど、CLK=TXDとして、送信データを0x0Fにして8回送れば、立下りの信号が生成できるわけですね。これなら、電子部品の追加なしでSPI通信が可能ですね。
CS=DTR、DATA=RTSとして、
まずDTRをLに、ちょっと待ってからRTSに送りたいDATA信号の最初のビット(H or L)をセットし、
ちょっと待ってからTXDに0x0Fを送り、終わったらRTSに次のビットをセット、これを8回繰り返して、DTRをHにする。
今問題にしているSPI通信の送信相手は、CLKの立ち上がりでDATAを拾う仕様ですので、おそらく、CLK=TXDには0xF0か0x00か、を送るようにすることになりそうです。
ともあれ、目から鱗が落ちるようなコメントをどうもありがとうございました。
No.2
- 回答日時:
クロックをTXにして他2本でデータとCSですかねえ。
ただ、昔PICマイコン書き込み機のRCDライターというものでシリアルポートの制御線を使った通信が使われていたんですが、これが64bitのWindowsで使えなくなりました。
最近のWindowsでは何か仕組みが変わって制御線を自由に使えなくなっている可能性があります。
あとシリアルポートは100kΩくらい挟んで電流を落とせばICに直結できたりします。
参考: http://elm-chan.org/docs/rs232c.html
情報をいただき、ありがとうございます。
クロックをTXにすることも考えられますし、そのほうが素直ですね。ただ、
その場合、このクロックに載せて送るシリアルデータのタイミングをどのように同期するか、が問題になる気がします。
”必要最低限の電子部品の追加(マイコン以外)”で、PCのrs232cからSPI通信でデバイスの制御を行う
というのが今回の主題でして、いろいろ考えていくと、結局、”それ用のIC”を使ったほうが良いのかな(1こ2000円弱)、と感じております。
No.1
- 回答日時:
>数十ミリ秒の間隔でdtr やrtsでset/clrする
10−100bpsでの超低速の通信ですね。
数Mbpsの通信が可能なSPI通信ですが、
SPI通信では完全にマスタ主導で通信が行われるので、
やったことありませんが、可能だと思います。
早速のご回答ありがとうございます。
その後、このデジタルポテンショメータ(AD5290)のデータシートを確認したら、
CS信号の立ち上がりで8ビットシリアルデータがAD5290にロードされる仕様であることが判りました。
ということは、このCS信号は何らかの方法で生成しないといけないことになります。。。
dtr,rts信号のほかに、PCから送信できる信号線はtxしかなくて、その立ち上がり、立下りのタイミングをきちんと制御するには、何らかのロジックIC(フリップフロップ)を追加しないといけないです(よね?)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オーバークロックでCPU、メモリ...
-
CPUについて Bus Speedとは?
-
CPUの動作クロックが低い
-
CPUの周波数が本来の値より低い...
-
メモリの動作速度を確認する方法
-
SPEEDFANでCPUファンが認識され...
-
PCから最近シャーという音がし...
-
デスクトップパソコンの蓋を開...
-
ATX電源ユニット内の温度はいく...
-
CPU温度の急上昇&電源温度上昇...
-
パソコンの中のファンの埃を分...
-
ノートパソコンの空冷ファンの...
-
CPUID hardware monitor という...
-
【質問】CPUの温度が異常なので...
-
pcケース交換について
-
CPUクーラーを交換したら起動時...
-
PCから「シャー」という異音...
-
steamのPCゲームについて PCゲ...
-
VAIOが立ち上がらなくなったんです
-
ファンがよく回る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AMD TDP89W 65W 35Wの違い
-
CPU(Slot1)からの差し替え
-
クロックジェネレーター 調べ方
-
ラッチとフリップフロップの違...
-
Core SoloとCeleron Mでは、ど...
-
パソコンのCPUの進化は止ま...
-
CPUについて Bus Speedとは?
-
SSDが公称値よりも遅い
-
H8/3069 SCIについて
-
CPU換装 PIII500MHz→PIII800MH...
-
i486のCPUについて
-
ノートPCのダウンクロック
-
CPUの動作クロックが低い
-
CPU FSBの確認で
-
K6-2 500MHzが動きません
-
PCIバスのクロックが変えられる...
-
939 Athlonx2 3600+について
-
CPU比較
-
Core 2 Duo E6300とE4300のメリ...
-
オーバークロックのやりかた
おすすめ情報