Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
top_system1.vhdlibrary ieee; use ieee.std_logic_1164.all; entity top_system1 is port( CLK : in std_logic; RST : in std_logic; ASTRB : in std_logic; DSTRB : in std_logic; DATA : inout std_logic_vector(7 downto 0); PWRITE : in std_logic; PWAIT : out std_logic; SWITCHES_I : in std_logic_vector(7 downto 0); PSH_BUTTON : in std_logic; LEDS_O : out std_logic_vector (7 downto 0)); end top_system1; architecture rtl of top_system1 is signal DIR, DIR_REG,DATO,DATO_REG,DATO_RD : std_logic_vector (7 downto 0); signal DIR_VLD, DATO_VLD,CE_RD : std_logic; begin -- rtl DUT:entity work.cnt_epp port map ( CLK => CLK, RST => RST, ASTRB => ASTRB, DSTRB => DSTRB, DATA => DATA, PWRITE => PWRITE, PWAIT => PWAIT, DATO_RD => DATO_RD, CE_RD => CE_RD, DIR => DIR, DIR_VLD => DIR_VLD, DATO => DATO, DATO_VLD => DATO_VLD); end rtl; V01.dat V02.dat gen_funciones.ucfNET "RELOJ" LOC = "L15"; # onBoard USB controller NET "ASTRB" LOC = "B9"; NET "DSTRB" LOC = "A9"; NET "PWRITE" LOC = "C15"; NET "PWAIT" LOC = "F13"; NET "DATA<0>" LOC = "A2"; NET "DATA<1>" LOC = "D6"; NET "DATA<2>" LOC = "C6"; NET "DATA<3>" LOC = "B3"; NET "DATA<4>" LOC = "A3"; NET "DATA<5>" LOC = "B4"; NET "DATA<6>" LOC = "A4"; NET "DATA<7>" LOC = "C5"; # onBoard Pushbuttons NET "RST" LOC = "N4"; # DAC NET "SYNC" LOC = "T3" ; NET "D1" LOC = "R3" ; NET "D2" LOC = "P6" ; NET "SCLK" LOC = "N5" ; top_system1.ucfNET "CLK" LOC = "L15"; # onBoard USB controller NET "ASTRB" LOC = "B9"; NET "DSTRB" LOC = "A9"; NET "PWRITE" LOC = "C15"; NET "PWAIT" LOC = "F13"; NET "DATA<0>" LOC = "A2"; NET "DATA<1>" LOC = "D6"; NET "DATA<2>" LOC = "C6"; NET "DATA<3>" LOC = "B3"; NET "DATA<4>" LOC = "A3"; NET "DATA<5>" LOC = "B4"; NET "DATA<6>" LOC = "A4"; NET "DATA<7>" LOC = "C5"; # onBoard Pushbuttons NET "PSH_BUTTON" LOC = "F5"; NET "RST" LOC = "N4"; # onBoard LEDS NET "LEDS_O<0>" LOC = "U18"; NET "LEDS_O<1>" LOC = "M14"; NET "LEDS_O<2>" LOC = "N14"; NET "LEDS_O<3>" LOC = "L14"; NET "LEDS_O<4>" LOC = "M13"; NET "LEDS_O<5>" LOC = "D4"; NET "LEDS_O<6>" LOC = "P16"; NET "LEDS_O<7>" LOC = "N12"; # onBoard SWITCHES NET "SWITCHES_I<0>" LOC = "A10"; NET "SWITCHES_I<1>" LOC = "D14"; NET "SWITCHES_I<2>" LOC = "C14"; NET "SWITCHES_I<3>" LOC = "P15"; NET "SWITCHES_I<4>" LOC = "P12"; NET "SWITCHES_I<5>" LOC = "R5"; NET "SWITCHES_I<6>" LOC = "T5"; NET "SWITCHES_I<7>" LOC = "E4"; cnt_dac.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity cnt_dac is port ( CLK : in std_logic; RST : in std_logic; DATO1 : in std_logic_vector(11 downto 0); DATO2 : in std_logic_vector(11 downto 0); DATO_OK : in std_logic; SYNC : out std_logic; SCLK : out std_logic; D1 : out std_logic; D2 : out std_logic); end cnt_dac; architecture RTL of cnt_dac is begin -- RTL end RTL; cnt_dpram.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity cnt_dpram is port ( CLK : in std_logic; RST : in std_logic; DIR : in std_logic_vector (7 downto 0); DIR_VLD : in std_logic; DATO : in std_logic_vector (7 downto 0); DATO_VLD : in std_logic; ADDRESS : out std_logic_vector(7 downto 0); DATA : out std_logic_vector(11 downto 0); WE_DP1 : out std_logic; WE_DP2 : out std_logic); end cnt_dpram; architecture RTL of cnt_dpram is constant dir_dpram1 : std_logic_vector( 7 downto 0) := x"A1"; constant dir_dpram2 : std_logic_vector( 7 downto 0) := x"A2"; begin -- RTL end RTL; cnt_epp.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity cnt_epp is port ( CLK : in std_logic; RST : in std_logic; ASTRB : in std_logic; DSTRB : in std_logic; DATA : inout std_logic_vector(7 downto 0); PWRITE : in std_logic; PWAIT : out std_logic; DATO_RD : in std_logic_vector(7 downto 0); CE_RD : out std_logic; DIR : out std_logic_vector (7 downto 0); DIR_VLD : out std_logic; DATO : out std_logic_vector (7 downto 0); DATO_VLD : out std_logic); end ; architecture rtl of cnt_epp is begin end rtl; DAC121S101.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity DAC121S101 is port ( VOUT : out real range 0.0 to 3.5; SYNC : in std_logic; SCLK : in std_logic; DIN : in std_logic); end DAC121S101; architecture rtl of DAC121S101 is signal dato_bin, reg_desp : std_logic_vector(15 downto 0) := (others => '0'); signal cuenta : natural; constant tSCLK : time := 33 ns; constant tL, tH : time := 13 ns; constant tcs : time := 3 ns; constant tsud : time := 5 ns; constant tdhd : time := 4.5 ns; constant tSYNC : time := 20 ns; signal taux1, taux2 : time; begin ------------------------------------------------------------------------------- -- verificación de tiempos assert not(taux1 -taux2 <= tSCLK) report "VIOLACIÓN DEL TIEMPO PERIODO DE SCLK(tCS)" severity error; process (SCLK) variable aux1, aux2 : time; begin if SCLK'event and SCLK = '0' then taux1 <= now; taux2 <= taux1; if SCLK = '1' then aux2 := aux1; aux1 := now; assert not(aux1-aux2 <= tL) report "VIOLACIÓN DEL TIEMPO A NIVEL BAJO DE SCLK (tL)" severity error; else aux2 := aux1; aux1 := now; assert not(aux1-aux2 <= tH) report "VIOLACIÓN DEL TIEMPO A NIVEL ALTO DE SCLK (tH)" severity error; end if; end if; end process; process (SYNC) variable aux6, aux7 : time; begin aux7 := aux6; aux6 := now; if SYNC'event and SYNC = '0' then assert not(aux6-aux7 <= tSYNC) report "VIOLACIÓN DE LA DURACIÓN DEL TIEMPO DEL NIVEL ALTO DE SYNC (tSYNC)" severity error; end if; if SYNC'event and SYNC = '1' then if SCLK='0' then assert not(SCLK'last_event <= tcs) report "VIOLACIÓN DEL TIEMPO tCS" severity error; end if; end if; end process; ----------------------------------------------------------------------------- -- Modelado de funcionamiento. process (SCLK, SYNC) begin if SYNC = '1' then cuenta <= 0; reg_desp <= (others => '0'); elsif SCLK'event and SCLK = '0' then if cuenta < 16 then cuenta <= cuenta+1; reg_desp <= reg_desp(14 downto 0)&DIN; end if; end if; end process; process (cuenta, SYNC, reg_desp) begin if SYNC = '0' then if cuenta = 16 then dato_bin <= reg_desp; end if; end if; end process; process (dato_bin, cuenta) begin -- process if cuenta = 16 then case dato_bin(15 downto 14) is when "00" => VOUT <= real(to_integer(unsigned(dato_bin(11 downto 0))))*3.3/4096.0; when "11" => VOUT <= 3.4; when others => VOUT <= 0.0; end case; end if; end process; end rtl; dpram_mem.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity dpram_mem is port ( DIN : in std_logic_vector(11 downto 0); ADDR_IN : in std_logic_vector(7 downto 0); WE : in std_logic; CLK : in std_logic; RST : in std_logic; ADDR_OUT : in std_logic_vector(7 downto 0); DOUT : out std_logic_vector(11 downto 0)); end entity; architecture rtl of dpram_mem is begin end rtl; epp_device.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use std.textio.all; use ieee.std_logic_textio.all; entity epp_device is port ( DATA : inout std_logic_vector(7 downto 0); PWRITE : out std_logic; DSTRB : out std_logic; ASTRB : out std_logic; PWAIT : in std_logic); end epp_device; architecture sim of epp_device is constant T_clk_epp : time := 100 ns; -- Internal clock period. signal clk_epp : std_logic := '0'; -- Internal clock signal. signal read_value : std_logic_vector(7 downto 0) := (others => '0'); constant dir_frec : std_logic_vector( 7 downto 0) := x"F0"; constant dir_dpram1 : std_logic_vector( 7 downto 0) := x"A1"; constant dir_dpram2 : std_logic_vector( 7 downto 0) := x"A2"; constant EPP_cicle_length : natural := 10; begin -- internal clock signal generation. clk_epp <= not(clk_epp) after T_clk_epp/2; process procedure epp_cycle ( address : in std_logic_vector(7 downto 0); data_io : inout std_logic_vector(7 downto 0); r_w : in character) is begin wait until clk_epp = '1'; PWRITE <= '0'; wait until clk_epp = '1'; ASTRB <= '0'; data <= address; wait for T_clk_epp*EPP_cicle_length; ASTRB <= '1'; wait until clk_epp = '1'; data <= (others => 'Z'); PWRITE <= '1'; wait until clk_epp = '1'; wait for T_clk_epp*EPP_cicle_length; ------------------------------------------------------------------------------- if r_w = 'w' then -- write cicle PWRITE <= '0'; data <= data_io; end if; ------------------------------------------------------------------------------- wait until clk_epp = '1'; DSTRB <= '0'; wait for T_clk_epp*EPP_cicle_length; if r_w = 'r' then data_io:= data; end if; DSTRB <= '1'; wait until clk_epp = '1'; data <= (others => 'Z'); PWRITE <= '1'; wait until clk_epp = '1'; end procedure; variable dato : std_logic_vector(7 downto 0); variable dir : std_logic_vector(7 downto 0); begin --inicialización data <= (others => 'Z'); PWRITE <= '1'; DSTRB <= '1'; ASTRB <= '1'; dir := (others => '0'); wait for 130 ns; -- ciclos de lectura/escritura report "FIN CICLO R/W" severity failure; end process; end sim; gen_dir.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity gen_dir is port ( CLK : in std_logic; RST : in std_logic; DIR : in std_logic_vector (7 downto 0); DIR_VLD : in std_logic; DATO : in std_logic_vector (7 downto 0); DATO_VLD : in std_logic; ADDR_OUT : out std_logic_vector(7 downto 0); DATO_OK : out std_logic); end gen_dir; architecture rtl of gen_dir is constant dir_frec : std_logic_vector( 7 downto 0) := x"F0"; constant T_DAC : integer := 68; --pulsos dura la conversion mínima begin end rtl; gen_funciones.vhdlibrary ieee; use ieee.std_logic_1164.all; entity gen_funciones is port ( RELOJ : in std_logic; RST : in std_logic; -- PUERTO EPP ASTRB : in std_logic; DSTRB : in std_logic; DATA : inout std_logic_vector(7 downto 0); PWRITE : in std_logic; PWAIT : out std_logic; -- DAC SYNC : out std_logic; SCLK : out std_logic; D1 : out std_logic; D2 : out std_logic); end gen_funciones; architecture rtl of gen_funciones is signal CLK : std_logic; --SEÑALES DEL CONTROLADOR EPP-- signal DIR : std_logic_vector (7 downto 0); signal DIR_VLD : std_logic; signal DATO : std_logic_vector (7 downto 0); signal DATO_VLD : std_logic; signal DATO_RD : std_logic_vector (7 downto 0); signal CE_RD : std_logic; --SEÑALES DEL CONTROLADOR DPRAM-- signal ADDRESS : std_logic_vector(7 downto 0); signal DATA_DP : std_logic_vector (11 downto 0); signal WE_DP1 : std_logic; signal WE_DP2 : std_logic; --SEÑALES DE LAS MEMORIAS DPRAM-- signal DATO1 : std_logic_vector (11 downto 0); signal DATO2 : std_logic_vector (11 downto 0); --SEÑALES DE GENERADOR DE _DIRECCIONES-- signal ADDR_OUT : std_logic_vector(7 downto 0); signal DATO_OK : std_logic; begin -- rtl U_dcm :entity work.dcm port map (CLK_IN => RELOJ, CLK_OUT => CLK, RESET => RST); U_cnt_epp:entity work.cnt_epp port map ( CLK => CLK, RST => RST, ASTRB => ASTRB, DSTRB => DSTRB, DATA => DATA, PWRITE => PWRITE, PWAIT => PWAIT, DATO_RD => DATO_RD, CE_RD => CE_RD, DIR => DIR, DIR_VLD => DIR_VLD, DATO => DATO, DATO_VLD => DATO_VLD); U_cnt_dpram:entity work.cnt_dpram port map ( CLK => CLK, RST => RST, DIR => DIR, DIR_VLD => DIR_VLD, DATO => DATO, DATO_VLD => DATO_VLD, ADDRESS => ADDRESS, DATA => DATA_DP, WE_DP1 => WE_DP1, WE_DP2 => WE_DP2); U_dpram_mem1 : entity work.dpram_mem port map ( DIN => DATA_DP, ADDR_IN => ADDRESS, WE => WE_DP1, CLK => CLK, RST => RST, ADDR_OUT => ADDR_OUT, DOUT => DATO1); U_dpram_mem2 : entity work.dpram_mem port map ( DIN => DATA_DP, ADDR_IN => ADDRESS, WE => WE_DP2, CLK => CLK, RST => RST, ADDR_OUT => ADDR_OUT, DOUT => DATO2); U_gen_dir:entity work.gen_dir port map ( CLK => CLK, RST => RST, DIR => DIR, DIR_VLD => DIR_VLD, DATO => DATO, DATO_VLD => DATO_VLD, ADDR_OUT => ADDR_OUT, DATO_OK => DATO_OK); U_cnt_dac :entity work.cnt_dac port map ( CLK => CLK, RST => RST, DATO1 => DATO1, DATO2 => DATO2, DATO_OK => DATO_OK, SYNC => SYNC, SCLK => SCLK, D1 => D1, D2 => D2); end rtl; DAC121S101.pdf DAC121S101/DAC121S101Q February 19, 2010 12-Bit Micro Power, RRO Digital-to-Analog Converter General Description The DAC121S101 is a full-featured, general purpose 12-bit voltage-output digital-to-analog converter (DAC) that can op- erate from a single +2.7V to 5.5V supply and consumes just 177 µA of current at 3.6 Volts. The on-chip output amplifier allows rail-to-rail output swing and the three wire serial inter- face operates at clock rates up to 30 MHz over the specified supply voltage range and is compatible with standard SPI™, QSPI, MICROWIRE and DSP interfaces. Competitive de- vices are limited to 20 MHz clock rates at supply voltages in the 2.7V to 3.6V range. The supply voltage for the DAC121S101 serves as its voltage reference, providing the widest possible output dynamic range. A power-on reset circuit ensures that the DAC output powers up to zero volts and remains there until there is a valid write to the device. A power-down feature reduces power consumption to less than a microWatt. The low power consumption and small packages of the DAC121S101 make it an excellent choice for use in battery operated equipment. The DAC121S101 is a direct replacement for the AD5320 and the DAC7512 and is one of a family of pin compatible DACs, including the 8-bit DAC081S101 and the 10-bit DAC101S101. The DAC121S101 operates over the extended industrial tem- perature range of −40°C to +105°C while the DAC121S101Q operates over the Grade 1 automotive temperature range of −40°C to +125°C. The DAC121S101 is available in a 6-lead TSOT and an 8-lead MSOP and the DAC121S101Q is avail- able in the 6-lead TSOT only. Features ■ DAC121S101Q is AEC-Q100 Grade 1 qualified and is manufactured on an Automotive Grade Flow. ■ Guaranteed Monotonicity ■ Low Power Operation ■ Rail-to-Rail Voltage Output ■ Power-on Reset to Zero Volts Output ■ Wide Temperature Range of −40°C to +125°C ■ Wide Power Supply Range of +2.7V to +5.5V ■ Small Packages ■ Power Down Feature Key Specifications ■ Resolution 12 bits ■ DNL +0.25, -0.15 LSB (typ) ■ Output Settling Time 8 µs (typ) ■ Zero Code Error 4 mV (typ) ■ Full-Scale Error −0.06 %FS (typ) ■ Power Consumption ■ — Normal Mode 0.64mW (3.6V) / 1.43mW (5.5V) typ — Pwr Down Mode 0.14µW (3.6V) / 0.39µW (5.5V) typ Applications ■ Battery-Powered Instruments ■ Digital Gain and Offset Adjustment ■ Programmable Voltage & Current Sources ■ Programmable Attenuators ■ Automotive Pin Configuration 20114901 20114902 SPI™ is a trademark of Motorola, Inc. © 2010 National Semiconductor Corporation 201149 www.national.com D A C 1 2 1 S 1 0 1 /D A C 1 2 1 S 1 0 1 Q 1 2 -B it M ic ro P o w e r, R R O D ig ita l-to -A n a lo g C o n v e rte r Ordering Information Order Numbers Temperature Range Package Top Mark Feature DAC121S101CIMM −40°C ≤ TA ≤ +105°C MSOP X60C DAC121S101CIMMX −40°C ≤ TA ≤ +105°C MSOP T/R DAC121S101CIMK −40°C ≤ TA ≤ +105°C TSOT X61C DAC121S101CIMKX −40°C ≤ TA ≤ +105°C TSOT T/R DAC121S101QCMK −40°C ≤ TA ≤ +125°C TSOT X61Q AEC-Q100 Grade 1 Qualified; Automotive Grade Production FlowDAC121S101QCMKX −40°C ≤ TA ≤ +125°C TSOT T/R DAC121S101EVAL Evaluation Board TSOT Block Diagram 20114903 Pin Descriptions TSOT (SOT-23) Pin No. MSOP Pin No. Symbol Description 1 4 VOUT DAC Analog Output Voltage. 2 8 GND Ground reference for all on-chip circuitry. 3 1 VA Power supply and Reference input. Should be decoupled to GND. 4 7 DIN Serial Data Input. Data is clocked into the 16-bit shift register on the falling edges of SCLK after the fall of SYNC. 5 6 SCLK Serial Clock Input. Data is clocked into the input shift register on the falling edges of this pin. 6 5 SYNC Frame synchronization input for the data input. When this pin goes low, it enables the input shift register and data is transferred on the falling edges of SCLK. The DAC is updated on the 16th clock cycle unless SYNC is brought high before the 16th clock, in which case the rising edge of SYNC acts as an interrupt and the write sequence is ignored by the DAC. 2, 3 NC No Connect. There is no internal connection to these pins. www.national.com 2 D A C 1 2 1 S 1 0 1 /D A C 1 2 1 S 1 0 1 Q A.C. and Timing Characteristics The following specifications apply for VA = +2.7V to +5.5V, RL = 2kΩ to GND, CL = 200 pF to GND, fSCLK = 30 MHz, input code range 48 to 4047. Boldface limits apply for TMIN ≤ TA ≤ TMAX: all other limits TA = 25°C, unless otherwise specified. Symbol Parameter Conductions Typical Limits Units (Limits) fSCLK SCLK Frequency 30 MHz (max) ts Output Voltage Settling Time (Note 10) 400h to C00h code change, RL = 2kΩ CL ≤ 200 pF 8 10 µs (max) CL = 500 pF 12 µs 00Fh to FF0h code change, RL = 2kΩ CL ≤ 200 pF 8 µs CL = 500 pF 12 µs SR Output Slew Rate 1 V/µs Glitch Impulse Code change from 800h to 7FFh 12 nV-sec Digital Feedthrough 0.5 nV-sec tWU Wake-Up Time VA = 5V 6 µs VA = 3V 39 µs 1/fSCLK SCLK Cycle Time 33 ns (min) tH SCLK High time 5 13 ns (min) tL SCLK Low Time 5 13 ns (min) tSUCL Set-up Time SYNC to SCLK Rising Edge −15 0 ns (min) tSUD Data Set-Up Time 2.5 5 ns (min) tDHD Data Hold Time 2.5 4.5 ns (min) tCS SCLK fall to rise of SYNC VA = 5V 0 3 ns (min) VA = 3V −2 1 ns (min) tSYNC SYNC High Time 2.7 ≤ VA ≤ 3.6 9 20 ns (min) 3.6 ≤ VA ≤ 5.5 5 10 ns (min) 5 www.national.com D A C 1 2 1 S 1 0 1 /D A C 1 2 1 S 1 0 1 Q Transfer Characteristic 20114905 FIGURE 1. Input / Output Transfer Characteristic Timing Diagram 20114906 FIGURE 2. DAC121S101 Timing 7 www.national.com D A C 1 2 1 S 1 0 1 /D A C 1 2 1 S 1 0 1 Q 1.0 Functional Description 1.1 DAC SECTION The DAC121S101 is fabricated on a CMOS process with an architecture that consists of switches and a resistor string that are followed by an output buffer. The power supply serves as the reference voltage. The input coding is straight binary with an ideal output voltage of: VOUT = VA x (D / 4096) where D is the decimal equivalent of the binary code that is loaded into the DAC register and can take on any value be- tween 0 and 4095. 1.2 RESISTOR STRING The resistor string is shown in Figure 3. This string consists of 4096 equal valued resistors with a switch at each junction of two resistors, plus a switch to ground. The code loaded into the DAC register determines which switch is closed, connect- ing the proper node to the amplifier. This configuration guar- antees that the DAC is monotonic. 20114907 FIGURE 3. DAC Resistor String 1.3 OUTPUT AMPLIFIER The output buffer amplifier is a rail-to-rail type, providing an output voltage range of 0V to VA. All amplifiers, even rail-to- rail types, exhibit a loss of linearity as the output approaches the supply rails (0V and VA, in this case). For this reason, linearity is specified over less than the full output range of the DAC. The output capabilities of the amplifier are described in the Electrical Tables. 1.4 SERIAL INTERFACE The three-wire interface is compatible with SPI, QSPI and MICROWIRE, as well as most DSPs. See the Timing Diagram for information on a write sequence. A write sequence begins by bringing the SYNC line low. Once SYNC is low, the data on the DIN line is clocked into the 16- bit serial input register on the falling edges of SCLK. On the 16th falling clock edge, the last data bit is clocked in and the programmed function (a change in the mode of operation and/ or a change in the DAC register contents) is executed. At this point the SYNC line may be kept low or brought high. In either case, it must be brought high for the minimum specified time before the next write sequence as a falling edge of SYNC can initiate the next write cycle. Since the SYNC and DIN buffers draw more current when they are high, they should be idled low between write sequences to minimize power consumption. 1.5 INPUT SHIFT REGISTER The input shift register, Figure 4, has sixteen bits. The first two bits are "don't cares" and are followed by two bits that determine the mode of operation (normal mode or one of three power-down modes). The contents of the serial input register are transferred to the DAC register on the sixteenth falling edge of SCLK. See Timing Diagram, Figure 2. 20114908 FIGURE 4. Input Register Contents Normally, the SYNC line is kept low for at least 16 falling edges of SCLK and the DAC is updated on the 16th SCLK falling edge. However, if SYNC is brought high before the 16th falling edge, the shift register is reset and the write sequence is invalid. The DAC register is not updated and there is no change in the mode of operation or in the output voltage. www.national.com 14 D A C 1 2 1 S 1 0 1 /D A C 1 2 1 S 1 0 1 Q DAC121S101/DAC121S101Q General Description Features Key Specifications Applications Pin Configuration Ordering Information Block Diagram Pin Descriptions Absolute Maximum Ratings Operating Ratings (Note 1, Note 2) Package Thermal Resistances Electrical Characteristics A.C. and Timing Characteristics Specification Definitions Transfer Characteristic FIGURE 1. Input / Output Transfer Characteristic Timing Diagram FIGURE 2. DAC121S101 Timing Typical Performance Characteristics 1.0 Functional Description 1.1 DAC SECTION 1.2 RESISTOR STRING FIGURE 3. DAC Resistor String 1.3 OUTPUT AMPLIFIER 1.4 SERIAL INTERFACE 1.5 INPUT SHIFT REGISTER FIGURE 4. Input Register Contents 1.6 POWER-ON RESET 1.7 POWER-DOWN MODES TABLE 1. Modes of Operation 2.0 Applications Information 2.1 DSP/MICROPROCESSOR INTERFACING 2.1.1 ADSP-2101/ADSP2103 Interfacing FIGURE 5. ADSP-2101/2103 Interface 2.1.2 80C51/80L51 Interface FIGURE 6. 80C51/80L51 Interface 2.1.3 68HC11 Interface FIGURE 7. 68HC11 Interface 2.1.4 Microwire Interface FIGURE 8. Microwire Interface 2.2 USING REFERENCES AS POWER SUPPLIES 2.2.1 LM4130 FIGURE 9. The LM4130 as a power supply 2.2.2 LM4050 FIGURE 10. The LM4050 as a power supply 2.2.3 LP3985 FIGURE 11. Using the LP3985 regulator 2.2.4 LP2980 FIGURE 12. Using the LP2980 regulator 2.3 BIPOLAR OPERATION FIGURE 13. Bipolar Operation TABLE 2. Some Rail-to-Rail Amplifiers 2.4 LAYOUT, GROUNDING, AND BYPASSING Physical Dimensions PmodDA1.pdf DDiiggiilleenntt PPmmooddDDAA11™™ DDiiggiittaall TToo AAnnaalloogg MMoodduullee CCoonnvveerrtteerr BBooaarrdd RReeffeerreennccee MMaannuuaall ® www.digi lent inc.com Revision: 04/12/05 215 E Main Suite D | Pullman, WA 99163 (509) 334 6306 Voice and Fax Doc: 502-063 page 1 of 1 Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners. Overview The Digilent PmodAD1 Digital to Analog Module Converter module (the DA1™) converts signals from digital to analog at up to one MSa per second. The DA1 uses a 6-pin header connector and at less than one square inch is small enough to be located where the reconstructed signal is needed. Features include: • two AD7303 8-bit D/A converter chips that convert up to one MSa per second • a 6-pin header and 6-pin connector • four D/A conversion channels • very low power consumption • small form factor (0.80” x 0.80”). Functional Description The DA1 can produce an analog output ranging from 0-3.3 volts. It has four simultaneous D/A conversion channels, each with an 8-bit converter that can process separate digital signals. The DA1 is equipped with two AD7303 digital to analog converters. Each converter has two channels through which digital signals can be converted to analog signals. Outputs are produced by sending commands via the SPI/MICROWIRE™ serial bus to the D/A converters. The two converters are connected in parallel so that commands are sent to both converters simultaneously. The DA1 is designed to work with Digilent system boards. Some system boards, like the Digilent Pegasus board, have a 6-pin header that can be connected to the DA1’s 6-pin header using a 6-pin cable. Other Digilent boards may need a Digilent Modular Interface Board (MIB) and a 6-pin cable to connect to the DA1. The MIB plugs into the system board and the cable connects the MIB to the DA1. The DA1 can be powered by voltage from either a Digilent system board or an outside device. Damage can result if power is supplied from both sources or if the outside device supplies more than 3V. For more information, see www.digilentinc.com. For information on the AD7303, see the Analog Devices data sheet at www.analog.com. GND VCC DA1 Circuit Diagram AD7303 D/A Converter AD7303 D/A Converter D2 D1 2 Sync, Clock Analog Outputs J1 C on ne ct or J2 C on ne ct or
Compartir