ATtiny44マイクロコントローラーを使用して、修士論文の小さなセンサーPCBを設計しました。アプリケーションにはこれらのボードのうち約200個が必要で、16個は常にローカルにコントローラーボードに接続されています。ネットワーク全体は次のようになります。
コントローラーとセンサーボード間で通信するために、私は自分の1ピンバスを作成しました(タイミングベース)。唯一の問題は、センサーボードにデータをコントローラーボードに送信するときに、ネットワーク内の位置を知るためのアドレスが必要になることです。
ATtinyには1つのピンしか残っていないので、4つのジャンパーの設定に基づいてアナログ電圧を生成するジャンパーベースのDAC回路を思い付きました。センサー回路は値(47、470、1k、3k、4k7、10k、100k、および220k)を使用し、生産のために最適化したかったため、DACには以下の値(基本的には100k、50k、20k、および10k)を使用しました)。これにより、ジャンパー設定に基づいて0 Vから760 mVの間の値が得られます。ATtinyの内部1.1 Vリファレンスを備えたアナログ電圧として正確に読み取る必要がありました。起動時にATtinyはこの電圧を読み取り、その位置を知る必要があります。
この回路のシミュレーション – CircuitLabを使用して作成された回路図
理論的には、これは正常に機能します。抵抗の許容差を考慮すると、LTspiceでモンテカルロ解析を行って、重複領域がないことを確認しました(すべて1%BTW)。以下に、この分析の写真を見つけることができます。
今、私はこれらのボードのいくつか(幸運なことに200ではありません)を生産しましたが、いくつかは(特にすべての許容値が一度に再生される上位アドレス領域で)正確な読み取り値を取得できませんでした。すべての可能な解決策を測定し、最終的に私の問題を見つけました。私の最初の分析には、各コントローラーボード上のMC7805で12 Vからローカルに生成される5 V電源電圧の許容誤差は含まれていませんでした。データシートごとに、MC7805の出力電圧は4.8〜5.2 Vです。
これを理解した後、モンテカルロ分析を修正しました。これは次のようになります。
あなたが見ることができるように、私はこの電圧がこのアドレスを意味するだけであると断言することはできません素敵な重複領域があります。基本的に、noで始まるすべてのアドレス。8は、誤った読み取り値を取得する可能性があります(より高いアドレスの誤った読み取り値の可能性が高い)
私は考えていない、すでに(私は生産のために最適化したい論文用として)ボード上で使用されているものとは異なる抵抗値を追加したいです。
私は考えていない DACの抵抗ネットワークを供給するために電圧リファレンス(例えば、ツェナーダイオード)を追加したいです。
私はできませんそれ以上のコントローラボードを変更(およびそこより正確な電圧レギュレータを使用します)。
私がすることができますまだPCB設計/センサボードの概略を修正します!
(プログラムによって、または回路を変更することによって)アドレスで常に正しい読み取り値を取得するようにするにはどうすればよいですか?