Spartan3Eの内蔵プルアップ/ダウン抵抗
Spartan3EのI/Oには、プルアップ抵抗やプルダウン抵抗が内蔵されています。
これらの抵抗はコンフィギュレーションした後はユーザが使用するか否かを設定できますが、コンフィギュレーション前ではどうなるのか調べてみました。
Spartan3以降ではHSWAP_ENという端子があります。
この端子をHにすると、コンフィギュレーション前にI/Oの内蔵プルアップ抵抗がOFFになり、各端子はハイインピーダンスになります。
この状態はバウンダリスキャンで見ることができます。
各ピンが入力状態のときには、自然にLが読み出されます。

HSWAP_ENをLにした場合や、HSWAP_ENをHにしていても未コンフィギュレーション状態でJTAGでEXTESTモードにした場合、全てのピンがHレベルにプルアップされます。

なお、コンフィギュレーションされた後ではEXTESTモードにしてもプルアップはされません。この件は、データシートには記載されていないマイナーな事項でややこしいです。
さて、HSWAPEN = 1 にしておくと、全ピンがHI-Zになると書きましたが、どうやらM0,M1,M2はプルダウンされるようです。このときのプルダウン抵抗はかなり強く、10kΩ程度の外付けプルアップ抵抗をつけていても負けてしまいます。
10kΩでプルアップした場合、M0端子の電圧は558mVとなり、 5kΩでプルアップした場合は1.91Vでした。
つまり、10kΩでプルアップしてもHと認識されません。

一方、HSWAPEN = 0 にすると、(もしくは未コンフィグ状態でEXTESTモードにすると)、全ピンはプルアップされるのですが、M0,M1,M2もプルアップされます。このときのプルアップ抵抗はさらに強いようです。
10kΩでプルダウンした場合は2.84Vとなり、5kΩでプルダウンした場合は2.43Vでした。5kΩや10kΩでプルダウンしても、Lとは認識されません。

この件はデータシート(ds312)をよく見ると71ページに書いてありました、要約すると、M0,M1,M2をプルアップする時には4.7kΩ以下に、プルダウンのときには560Ω以下にしなければならないようです。

また、VS[2:0]も同様に、強力なプルアップ/プルダウンが入っているかもしれません。
これまでプルアップやプルダウン抵抗には余り考えずに10kΩや4.7kΩを使ってきましたが、今後は少々気を使わなければならないようです。
| 固定リンク


コメント