AR# 6717

CPLD 9500XL/XV/XPLA3 - 3.3 V または 2.5 V デバイスから 5 V を駆動する方法(オープン ドレイン)

説明

デザインによっては、3.3V CPLD のコア電圧 (9500XL または CoolRunner XPLA3) が必要で、0 V から 5 V の出力駆動能力が必要です。

これを達成するための方法はありますか。これを達成するにはどうすればよいでしょうか。

 

CoolRunner-II デバイスはこのソリューションの対象外です。

CoolRunner-II を 5V にインターフェイスする方法については、 (Xilinx XAPP429): 『5V Tolerance Techniques for CoolRunner-II Devices』を参照してください。

ソリューション

I/O で 0 またはハイ インピーダンスを駆動できるように I/O 構造を設定し、外部プルアップ抵抗 (.5K から 1K) を使用して 5 V に引き上げるのが基本です。

 

注記: 各ファンクション ブロックでトライステート イネーブルは 5 つしか使用できないため、5 V を駆動できる出力の数がそれによって限定されます。

 

出力信号ロジックを OBUFT のイネーブルに実行します。OBUFT のロジック入力はグランドに接続します。こうしておくと、信号が Low のときに出力がグランド接続されます。

 

信号が High のとき、出力はトライステート状態になり、また外部プルアップ抵抗が出力を 5 V に引き上げます。

 

 

図 1 - オープン ドレイン/コレクター
図 1 - オープン ドレイン/コレクター

 

 

 

次の内容は 1 つ目のソリューションをさらに展開させたものです。フィードバック ループを使用すると、出力がトライステート状態になり、外部プルアップ抵抗がその他を処理する前の短い間、その出力が 3.3 V (または 2.5 V) に駆動します。 

この方法は、最初のソリューションに比べ、0 から 3.3 V (または 2.5 V) への立ち上がりが速いという利点があります。

 

 

図 2 - 立ち上がりが速いオープン ドレイン/コレクター
図 2 - 立ち上がりが速いオープン ドレイン/コレクター

 

 

 

次は立ち上がりを速くするための VHDL コード例です。

 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity top is
Port ( data : in std_logic; data_to_pin : inout std_logic);
end top;

architecture Behavioral of top is
begin
data_to_pin<= data when ((data and data_to_pin) ='0') else 'Z';
end Behavioral;

 

Verilog のコード例:

 

module top(data, data_to_pin );
input data;
inout data_to_pin ;

assign data_to_pin = ((data & data_to_pin) == 0)? data : 1'bz;

endmodule

AR# 6717
日付 07/14/2017
ステータス アクティブ
種類 一般
デバイス