ADS8364 VHDL程序正式版

这是一个已通过调试的VHDL程序,用于实现ADS8364与STM32之间的通讯。程序中详细定义了系统信号线,包括ADS8364的差分AD输出和STM32的连接。ADS8364的输出数据范围为-32768~+32768,并提供了状态机逻辑来控制读取过程。
摘要由CSDN通过智能技术生成

这个程序的寄存器读取时和STM32通讯的,之前有一个是和AVR通讯的,这个程序已经调试通过,原理比较简单,相信认真看的都能够明白。

因为ADS8364为差分AD,所以其输出为补码形式,按照2.5V的参考电压源输出的数据范围为-32768~+32768,如果AIN- 连到VREF(2.5V),那么当AIN+ 输入为0时 输出的数据为0x8000,如果AIN+ 输入为2.5V则输出数据为0x0000AIN+ 输入为5V时输出数据位0x7F。程序如下:

--最后修改2011.3.26

--最后测试功能:

--利用第一块板子测试ADS8364

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

--------------------------------------------------------------------------------------

--此段定义系统的各信号线

--------------------------------------------------------------------------------------

entity ad is

port(

-- 系统信号线

    clk:         in      std_logic;

led: out std_logic;

    rst:       in      std_logic; 

-- arm相连的信号线

    adr_l:       in      std_logic_vector(7 downto 0); --a7...a0,只使用了低八位地址线

    data:        inout   std_logic_vector(7 downto 0); --只使用了低八位数据线

    fsmc_ne4:    in      std_logic;  

    fsmc_noe:    in      std_logic;

    fsmc_nwe:    in      std_logic;

--ad8364信号线

adc_d:       in    std_logic_vector(15 downto 0);

adc_a0,adc_a1,adc_a2:       out   std_logic;

adc_reset:   out   std_logic;

adc_cs:      out   std_logic;

adc_wr:      out   std_logic;

adc_rd:      out   std_logic;

adc_holda,adc_holdb,adc_holdc: out std_logic;

adc_eoc:     in    std_logic; 

adcclk_out: out   std_logic

);

end entity;

 

--统一编址,地址线数据线为八位,每个地址数据宽度8位

--"00000001" ad0_h_data 0x01

--"00000010" ad0_l_data 0x02

--"00000011" ad1_h_data 0x03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值