DAC芯片AD5689控制代码SPI接口FPGA代码,视频

news/2024/7/5 5:06:36

名称:DAC芯片AD5689控制代码SPI接口

软件:QuartusII

语言:VHDL

代码功能:

    控制DAC芯片AD5689,通过芯片的SPI接口,进行命令和地址、数据写入,控制DAC输出模拟信号。

    AD5689/AD5687采用多功能SPI接口,时钟速率高达50 MHz,并均包含一个为1.8 V/3 V/5 V逻辑电平准备的VLOGIC引脚。

    设计语言使用VHDL,本代码简单易懂,注释详细,可以方便改写为verilog代码。

演示视频:DAC芯片AD5689控制代码SPI接口VHDL_Verilog/VHDL资源下载

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

代码下载:DAC芯片AD5689控制代码SPI接口VHDL_Verilog/VHDL资源下载名称:DAC芯片AD5689控制代码SPI接口(代码在文末付费下载)软件:QuartusII语言:VHDL代码功能: 控制DAC芯片AD5689,通过芯片的SPI接口,进行命令和地址、数据写入,控制DAC输出模拟信号。 AD5689/AD5687采用多功能SPI接口,时钟速率高达50 MHz,并均包含一个为1.8 V/3 V/5 V逻辑电平准备的VLOGIC引脚。 设计语言使用Vicon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=216

部分代码展示

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
ENTITY AD5689_driver IS
   PORT (
      clock    : IN STD_LOGIC;--50MHz
      SYNC_N   : OUT STD_LOGIC;--AD5689接口
      AD_SDO   : IN STD_LOGIC;--AD5689接口
      AD_SCK   : OUT STD_LOGIC;--AD5689接口
      AD_SDI   : OUT STD_LOGIC;--AD5689接口
      WR_data  : IN STD_LOGIC_VECTOR(15 DOWNTO 0)--输入数字信号
   );
END AD5689_driver;
ARCHITECTURE trans OF AD5689_driver IS
   constant   CMD      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0011";--写指令
   constant   ADDRA    : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0001";--通道A,通道B="1000",通道A和通道B="1001"
   
   SIGNAL cnt         : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL AD_SCK_buf  : STD_LOGIC := '0';
   
   SIGNAL WR_data_buf : STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000000";
   SIGNAL AD_SDI_buf  : STD_LOGIC := '0';
BEGIN
   PROCESS (clock)
   BEGIN
      IF (clock'EVENT AND clock = '1') THEN
         IF (cnt >= "00110101") THEN--53
            cnt <= "00000000";
         ELSE
            cnt <= cnt + "00000001";--分频计数器
         END IF;
      END IF;
   END PROCESS;
   
   PROCESS (clock)
   BEGIN
      IF (clock'EVENT AND clock = '1') THEN
         IF (cnt >= "00000000" AND cnt <= "00000001") THEN
            SYNC_N <= '1';--40ns之后,SYNC拉低,开始进入读取数据的状态
         ELSE
            SYNC_N <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   PROCESS (clock)
   BEGIN
      IF (clock'EVENT AND clock = '1') THEN--clock2二分频得到sck的值为--25MHz
         IF (cnt > "00000001" AND cnt < "00110011") THEN--1~51
            IF (cnt(0) = '0') THEN
               AD_SCK_buf <= '0'; --cnt[0]==0的时候,sck为下降沿
            ELSE
               AD_SCK_buf <= '1';--cnt[0]==1的时候,sck为上升沿

设计文档:

  1. 工程文件

  1. 程序文件

  1. 程序编译

  1. 仿真文件

  1. 仿真图


http://lihuaxi.xjx100.cn/news/1727319.html

相关文章

mysql bin_log日志恢复数据

1、开启bin_log日志 开启方式1 my.ini 下配置开启或者vi /etc/my.cnf log_binmysql-bin server_id1 2、参考文章 https://blog.csdn.net/DreamEhome/article/details/130010601 (重点) 【mysql】binlog日志_mysql binlog日志-CSDN博客 MySQL 开启binlog日志和windows服务…

[AUTOSAR][诊断管理][ECU][$22] 读取相关的数据

文章目录 一、简介$22服务的实际用途是什么?$22服务的应用场景有哪些呢?$22服务的诊断格式如何?常见DID总结请求实例服务响应负响应NRCNRC优先级二、示例代码uds22_read_data_by_ld.c一、简介 22服务作为诊断服务种的基础服务,可以简单理解为就是一个用于读取ECU数据的外部…

如何公网远程访问本地WebSocket服务端

本地websocket服务端暴露至公网访问【cpolar内网穿透】 文章目录 本地websocket服务端暴露至公网访问【cpolar内网穿透】1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功…

Redis快速上手篇七(集群-六台虚拟机)

Redis集群 主从复制的场景无法吗满足主机单点故障时需要引入集群配置 一般数据库要处理的读请求远大于写请求 &#xff0c;针对这种情况&#xff0c;我们优化数据库可以采用读写分离的策略。我们可以部 署一台主服务器主要用来处理写请求&#xff0c;部署多台从服务器 &#…

基于Ubuntu20.04安装ROS系统

文章目录 一、ROS简介二、ROS安装三、ROS安装测试四、安装问题解决1. sudo rosdepc init&#xff1a;找不到命令2. ERROR: cannot download default sources list from...3. Command roscore not found...4. Resource not found: roslaunch... 一、ROS简介 ROS是用于编写机器人…

静力触探数据智能预处理(4)

静力触探数据智能预处理&#xff08;4&#xff09; 前言 数据处理方式已由手工1.0、计算机辅助2.0向人工智能3.0的趋势发展。机器学习是人工智能的基础&#xff0c;本文尝试应用机器学习中K均值聚类算法对孔压静力触探数据进行土的分类&#xff0c;分类结果不理想&#xff0c…

IT新人如何在职场弯道超车?强推荐考取当下最有价值的云计算认证证书!

疯狂的裁员&#xff01;股价降低&#xff01;在美国&#xff0c;一股寒冷的创业寒流正在席卷而来。不只是硅谷进入了冬天&#xff0c;国内的传统互联网寒潮也凛冽地来了。在传统 IT体系结构逐渐式微、产业规模不断缩小的情况下&#xff0c;许多 IT工程师都面临着下岗、跳槽等问…

ubuntu安装nps客户端

Ubuntu安装nps客户端 1.什么是nps内网穿透&#xff1f;2.设备情况3.下载客户端3.链接服务端3.1、无配置文件模式3.2、注册到系统服务(启动启动、监控进程) 1.什么是nps内网穿透&#xff1f; nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发…