« PCI Expressの基板実装完了。即座に動作確認! | トップページ | PCI Expressが認識されました »

2008.12.08

Spartan3Eの内蔵プルアップ/ダウン抵抗

Spartan3EのI/Oには、プルアップ抵抗やプルダウン抵抗が内蔵されています。

これらの抵抗はコンフィギュレーションした後はユーザが使用するか否かを設定できますが、コンフィギュレーション前ではどうなるのか調べてみました。

Spartan3以降ではHSWAP_ENという端子があります。
この端子をHにすると、コンフィギュレーション前にI/Oの内蔵プルアップ抵抗がOFFになり、各端子はハイインピーダンスになります。
この状態はバウンダリスキャンで見ることができます。
各ピンが入力状態のときには、自然にLが読み出されます。
HSWAPENがHの場合、Spartan3EのI/Oはハイインピーダンスになる

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

なお、コンフィギュレーションされた後ではEXTESTモードにしてもプルアップはされません。この件は、データシートには記載されていないマイナーな事項でややこしいです。

さて、HSWAPEN = 1 にしておくと、全ピンがHI-Zになると書きましたが、どうやらM0,M1,M2はプルダウンされるようです。このときのプルダウン抵抗はかなり強く、10kΩ程度の外付けプルアップ抵抗をつけていても負けてしまいます。

10kΩでプルアップした場合、M0端子の電圧は558mVとなり、 5kΩでプルアップした場合は1.91Vでした。
つまり、10kΩでプルアップしてもHと認識されません。
Ipulldown

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

この件はデータシート(ds312)をよく見ると71ページに書いてありました、要約すると、M0,M1,M2をプルアップする時には4.7kΩ以下に、プルダウンのときには560Ω以下にしなければならないようです。
Xil
また、VS[2:0]も同様に、強力なプルアップ/プルダウンが入っているかもしれません。

これまでプルアップやプルダウン抵抗には余り考えずに10kΩや4.7kΩを使ってきましたが、今後は少々気を使わなければならないようです。


|

« PCI Expressの基板実装完了。即座に動作確認! | トップページ | PCI Expressが認識されました »

コメント

コメントを書く



(ウェブ上には掲載しません)




« PCI Expressの基板実装完了。即座に動作確認! | トップページ | PCI Expressが認識されました »