PCBのバージョンまたは構成のエンコード


10

ファームウェアがボードレイアウトの使用を検出できるように、ボード上のバージョンまたは構成に関する情報を電気的にエンコードする必要があります。

可能なオプションとその賛否両論は何ですか?


1
しばらく前からこのQは、答えは(!いいです)、すでに与えられたものと同様でもあります:electronics.stackexchange.com/questions/41757/...
awjlogan

回答:


14

私の頭の上から、2つの簡単な解決策が思い浮かびます。

  1. 持っているnはあなたのマイクロコントローラのGPIOに接続ライン。ボードのバージョンに応じて、これらを高くまたは低く結びます。これにより、ボード構成オプションが提供されます。これは、マイクロコントローラーのnピンを使用します。静的な消費電流はごくわずかです。2n
  2. マイクロコントローラのADCへの入力を持ち、ボード構成に応じて異なる値を持つ分圧器を使用します。これは、単一のマイクロコントローラピンのみを使用します。これには、分圧器を介して静的な電流が流れるという欠点があります。また、最初の提案はボードに固定されていますが、BOMエラーが発生しやすくなります。

これらの提案はどちらも、エンドユーザーが「ロックされた」機能を開くなど、簡単に変更できるという弱点があります。これはあなたにとっては問題ではないかもしれませんが、心に留めておくべきことです。


1
[1]と[2]の組み合わせもあります。ADCにはマイクロコントローラーの1つのピンを使用できますが、同じ値のコンポーネントを並列に接続して分圧器を形成します。たとえば、4つの10k抵抗器を使用して、10k / float(プルからvcc)、float / 10k(プルからgnd)、10k / 10k(vcc / 2)、5k / 10k(vccの2/3)、10k /を形成できます。 5k(vccの1/3)。つまり、BOMの1行で、数量が異なり、ADC入力が1つ必要です。また、視覚的にも役立ちます。
ソクラテス

2
2番目のピンを節約できる場合は、ADCソリューションの静的電流を取り除くことができます。VCCとGNDの間の分圧器の代わりに、VCCまたはGNDのいずれかを2番目のピンに置き換えます-ボード構成を一度だけ読み取る必要があります、プログラムの開始時に、分圧器を有効にするために必要に応じてピンをハイ/ローに設定し、ADC測定を行ってから、ピンをトグルして、分圧器の両端が同じ電位になり、電流が流れないようにします。
Aleksi Torhamo

1
GPIOバージョンもBOMエラーが発生しやすい傾向があります。これは、通常、ゼロオームリンクで構成されているためです。回路図とレイアウトでそれを行うことができますが、それはより高価です(レイアウト時間コスト)。
グラハム

1
ADCについて、これは私が現在働いている製品で使用したものです。ただし、抵抗の許容誤差には注意する必要があります。2つの抵抗の許容誤差が1%の場合、電圧は最大2%になる可能性があるため、最大50ステップで解決できます。実際には、それを半分にした方が安全です。したがって、ADCに1%の抵抗と5Vの範囲がある場合、バージョンを0.2Vステップで報告する必要があります。
グラハム

9

ボードのリビジョンをエンコードするために、ピンをハイとローに結んでシフトレジスタを使用しましたが、ボード上の何かに既にSPIを使用している場合、それを読み取るのは簡単です。

実行時にIDを変更できるようにする必要がある場合は、入力をトレースで結ぶのではなく、ジャンパーを使用することをお勧めします。


一意でないシリコンシリアルナンバーバリアントICを探していましたが、これは賢い代替手段です。特に、シングルワイヤーIOエクスパンダーと組み合わせる場合。
Jeroen3

7

私が考えることができるいくつかのオプション:-

SMD PADS / O OHM抵抗リンク。ハードウェア構成にバイナリシステムを使用して、プロセッサのピン数を減らします。

ジャンパー。ボードは2xNコネクタピンを使用して、右側のピンにジャンパーを追加すると、構成を選択できます。間違いは簡単に解決できます。これはおそらく少しコストがかかり、ジャンパーによってはより多くのボードスペースを使用します。

ボードにEEPROMがある場合は、構成をメモリに埋め込むことができる場合があります。

#defineなどを使用してファームウェア自体を変更することはできますか?そうすれば、バージョン検出のためにボードスペースや追加のピンは必要ありません。


1

1線式EEPROMは、1つのGPIOしか必要としないが、大量の構成情報を格納できるため、優れたソリューションです。また、マイクロコントローラがボードテスト中にその情報(たとえば、キャリブレーションデータ)を書き込むこともできます。多くの場合、それ以上の変更を防ぐために、書き込み保護ピンまたは1回限りのプログラム可能なビットがあります。

他の利点には、保証された一意のシリアル番号などの便利な機能が含まれます。

このオプションは、オシロスコープのプローブやバッテリーなど、単一のデータラインしか必要としないため、多くのシステムで使用されています。EEPROMは、データライン自体からも電力を供給できます。

主な欠点はコストです。コストは高くありませんが、大量生産された製品では数セントが問題になる場合があります。

そのようなEEPROMの例は、1kbを保存するDS2431です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.