1線式デバイスのエミュレーション


10

私がやりたいのは、ATTiny ICを1線式バスのスレーブにし、独自のS / Nと特定の機能のコマンドリストを設定することです。

私が知りたいのは、arduinoサイトの1線ライブラリを使用してデータをスレーブとして送信できるかどうかです。

たとえば、要求された情報をマスターに報告する複数のタイプのセンサーを備えた1つの部屋にスレーブを配置したり、マスターがブラインドのようなものを制御するようにスレーブに指示したりできます。

質問 バスラインを監視し、マスターからのリクエストに応答し、通常のセンサーがデータを送信する方法も考慮する必要がありますか?最高の機能を得るには、どの周波数でスレーブを実行する必要がありますか?

メモとして、寄生電力は使用しません。



@Gerben-以前に検索で見つけた。それをすくい取った。しかし、いくつかのエラーがあったので心配でしたが、解決されましたが、信頼性はわかりません。また、カスタムスレーブを使用して敵のデザインを検索することは一般的なことではないように思われたため、上記の質問。
RSM 2015年

ライブラリがサポートしているようです。ここにそれ専用のライブラリがあると思います。速度は約15kbpsのようです。CPUの速度はそれほど重要ではないと思いますが、それはライブラリに依存します。バッテリー駆動でない場合は、8MHzまたは16MHzで実行すれば問題ありません。
Gerben 2015年

@Gerbenライブラリーをテストして、ライブラリーの動作を確認します。私がまだ得ていないことの1つは、1線式スレーブを使用しないことがまれにある理由です。
RSM

回答:


3

私の知る限り、あなたの質問でリンクした1-wireライブラリは、スレーブとしてではなく、マスターとしてのみ機能することを許可しています。

Arduinoボードを1線式スレーブに変更するためのライブラリをリリースしました。ここ:https : //github.com/neuoy/OneWireArduinoSlave(編集:ここに移動https://gitea.youb.fr/youen/OneWireArduinoSlave)。私はそれを私のカスタムホームオートメーションシステムで使用し、私のセットアップで問題なく動作します(1線式マスター、DS9490RはUSB経由でラップトップに接続され、Arduino UnoであるArduinoにも電力を供給します)。ライブラリは、低レベルの詳細を処理します:romの一致、バイトの送受信(実際には正確に取得するのは非常に難しく、ロジックアナライザーがないとほとんど不可能です)。後は君しだい。

それは完全に割り込みで実装され、すべての通信はバックグラウンドで実行され、他のコードを通常どおり並行して実行でき、バイトが受信されるとコールバックによって通知されます。マスターへのバイトの送信も非同期です。

Ryu_hayabusaによって上記でコメントされているように、少なくとも1つの他のライブラリhttps://github.com/MarkusLange/OneWireSlaveが存在することも知っています。それは私にはうまくいきませんでした(私のハードウェアのセットアップが原因であるのか、それとも他の理由によるのかわかりません)が、他の人にとっては確実にうまくいくので、試してみる価値もあります。このライブラリには割り込みが実装されていないようです。マスターアクティビティを待機している間、プログラムはブロックされます(多くのシナリオで完全に許容されます)。



1
@JonasBerlin確かに、私はリポジトリを移動しました(それを反映するように回答を編集しました)。私は古いリンクを念のためバックアップとして残し、GitHubで他の人のフォークを見つけるためのリファレンスとして残しています。
youen

問題をコピーする必要がありますか?
ジョナスベルリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.