• 配合原理图服用
  • PmodAD2.h
/******************************************************************************/
/*                                                                            */
/* PmodAD2.h -- Driver definitions for the PmodAD2                            */
/*                                                                            */
/******************************************************************************/
/* File Description:                                                          */
/*                                                                            */
/* This file contains the drivers for the PmodAD2 IP from Digilent            */
/*                                                                            */
/******************************************************************************/
/* Revision History:                                                          */
/*                                                                            */
/*    06/13/2016(artvvb):   Created                                           */
/*    08/21/2017(artvvb):   Validated for Vivado 2015.4                       */
/*    02/10/2018(atangzwj): Validated for Vivado 2017.4                       */
/*                                                                            */
/******************************************************************************/#ifndef PMODAD2_H
#define PMODAD2_H/****************** Include Files ********************/
#include "xiic.h"
#include "xiic_l.h"
#include "xil_types.h"
#include "xparameters.h"
#include "xstatus.h"/* ------------------------------------------------------------ */
/*                  Definitions                                 */
/* ------------------------------------------------------------ */#define AD2_IIC_ADDR 0x28/* ------------------------------------------------------------ */
/*                  Bit Mask Definitions                        */
/* ------------------------------------------------------------ */#define AD2_CONFIG_CH3             0x80
#define AD2_CONFIG_CH2             0x40
#define AD2_CONFIG_CH1             0x20
#define AD2_CONFIG_CH0             0x10
#define AD2_CONFIG_REF_SEL         0x08
#define AD2_CONFIG_FLTR            0x04
#define AD2_CONFIG_BIT_TRIAL_DELAY 0x02
#define AD2_CONFIG_SAMPLE_DELAY    0x01#define AD2_DEFAULT_CONFIG (AD2_CONFIG_CH0 | AD2_CONFIG_CH1 | AD2_CONFIG_CH2 \| AD2_CONFIG_CH3)#define AD2_DATA_MASK    0xFFF
#define AD2_CHANNEL_BIT  12
#define AD2_CHANNEL_MASK 0x3000/* ------------------------------------------------------------ */
/*                  Procedure Declarations                      */
/* ------------------------------------------------------------ */typedef struct PmodAD2 {XIic AD2Iic;u8 chipAddr;
} PmodAD2;void AD2_begin(PmodAD2 *InstancePtr, u32 IIC_Address, u8 Chip_Address);
XStatus AD2_IICInit(XIic *IicInstancePtr);XStatus AD2_ReadConv(PmodAD2 *InstancePtr, u16 *dataPtr);
XStatus AD2_WriteConfig(PmodAD2 *InstancePtr, u8 configuration);#endif // PMODAD2_H
  • PmodAD2.c
/******************************************************************************/
/*                                                                            */
/* PmodAD2.c -- Driver source for the PmodAD2                                 */
/*                                                                            */
/******************************************************************************/
/* File Description:                                                          */
/*                                                                            */
/* This file contains the drivers for the PmodAD2 IP from Digilent            */
/*                                                                            */
/******************************************************************************/
/* Revision History:                                                          */
/*                                                                            */
/*    06/13/2016(artvvb):   Created                                           */
/*    08/21/2017(artvvb):   Validated for Vivado 2015.4                       */
/*    02/10/2018(atangzwj): Validated for Vivado 2017.4                       */
/*                                                                            */
/******************************************************************************//***************************** Include Files *******************************/#include "PmodAD2.h"/************************** Function Definitions ***************************/XIic_Config AD2_Config =
{0,0,0,2
};/* ------------------------------------------------------------ */
/*** void AD2_begin(PmodAD2 *InstancePtr, u32 IIC_Address)
**
**   Parameters:
**      InstancePtr:  A PmodAD2 device to start
**      IIC_Address:  The base address of the PmodAD2 AXI IIC
**      Chip_Address: 7 bit Pmod IIC device address
**
**   Return Value:
**      none
**
**   Description:
**      Initializes the PmodAD2 device
*/
void AD2_begin(PmodAD2 *InstancePtr, u32 IIC_Address, u8 Chip_Address) {AD2_Config.BaseAddress = IIC_Address;InstancePtr->chipAddr = Chip_Address;AD2_IICInit(&InstancePtr->AD2Iic);XIic_SetAddress(&InstancePtr->AD2Iic, XII_ADDR_TO_SEND_TYPE,InstancePtr->chipAddr);
}/* ------------------------------------------------------------ */
/*** AD2_IICInit
**
**   Parameters:
**      IicInstancePtr: PmodAD2 AXI IIC device to initialize
**
**   Return Value:
**      Success or failure status
**
**   Description:
**      Initializes the PmodAD2 AXI IIC device
*/
XStatus AD2_IICInit(XIic *IicInstancePtr) {int Status;Status = XIic_CfgInitialize(IicInstancePtr, &AD2_Config,AD2_Config.BaseAddress);if (Status != XST_SUCCESS) {return Status;}// Start the IIC driver so that the device is enabled.XIic_Start(IicInstancePtr);// Disable Global interrupt to use polled mode operationXIic_IntrGlobalDisable(IicInstancePtr);return XST_SUCCESS;
}/* ------------------------------------------------------------ */
/*** XStatus AD2_ReadConv(PmodAD2 *InstancePtr, u16 *dataPtr)
**
**   Parameters:
**      InstancePtr: PmodAD2 device to initialize
**      dataPtr:     Pointer to return data address
**
**   Return Value:
**      Success or failure status
**      Conversion result and channel number at dataPtr
**
**   Description:
**      Reads 2 data bytes from conversion register
*/
XStatus AD2_ReadConv(PmodAD2 *InstancePtr, u16 *dataPtr) {int Status;u8 buf[2];Status = XIic_Start(&InstancePtr->AD2Iic);if (Status != XST_SUCCESS) {return Status;}XIic_Recv(InstancePtr->AD2Iic.BaseAddress, InstancePtr->chipAddr, buf, 2,XIIC_STOP);*dataPtr = (buf[0] << 8) | buf[1];Status = XIic_Stop(&InstancePtr->AD2Iic);if (Status != XST_SUCCESS) {return Status;}return XST_SUCCESS;
}/* ------------------------------------------------------------ */
/*** XStatus AD2_WriteConfig(PmodAD2 *InstancePtr, u8 configuration)
**
**   Parameters:
**      InstancePtr:   PmodAD2 device to initialize
**      configuration: Value to load into the AD2 configuration register
**                     Bit definitions are defined as AD2_CONFIG_* in PmodAD2.h
**
**   Return Value:
**      Success or failure status
**
**   Description:
**      Writes the configuration into the AD2 config register
*/
XStatus AD2_WriteConfig(PmodAD2 *InstancePtr, u8 configuration) {int Status;Status = XIic_Start(&InstancePtr->AD2Iic);if (Status != XST_SUCCESS) {return Status;}XIic_Send(InstancePtr->AD2Iic.BaseAddress, InstancePtr->chipAddr,&configuration, 1, XIIC_STOP);Status = XIic_Stop(&InstancePtr->AD2Iic);return Status;
}

pmod ad2 digilent 提供的pmodad2.c和pmodad2.h相关推荐

  1. Digilent提供的Pmod AD1驱动程序

    在github上下载Digilent提供的IP核,在路径\ip\Pmods下找到PmodAD1 点进去\drivers\PmodAD1中examples是main主程序 /************** ...

  2. basys3利用microblaze连接Pmod ad2

    点击➕添加microblaze 点击Run Block Automation把Local Memory设置为128KB 切到Boards添加系统时钟,这步也可以先做 添加USB UART 双击这个模块 ...

  3. Digilent提供的Pmod AD5驱动程序

    examples里的main.c /******************************************************************************/ /* ...

  4. 开启Digilent提供的Linux内核的NFS支持

    ZEDBoard上出厂的SD卡中自带了一个较完整的linux系统,虽然是精简版,但是对于开发来说已经足够了,在嵌入式linux开发中,挂载NFS协助调试非常常见,但是Digilent给出的内核中并没有 ...

  5. linux内核配置nfs,【参赛手记】开启Digilent提供的Linux内核的NFS支持

    ZEDBoard上出厂的SD卡中自带了一个较完整的linux系统,虽然是精简版,但是对于开发来说已经足够了,在嵌入式linux开发中,挂载NFS协助调试非常常见,但是Digilent给出的内核中并没有 ...

  6. Digilent提供的PmodOLEDrgb驱动程序

    examples里的main.c /******************************************************************************/ /* ...

  7. Digilent atlys spartan-6开发板使用

    Digilent atlys spartan-6开发板使用 在实验室考古,发现一款fpga开发板,年代久远,使用资料不全,所以记录一下使用过程,提供了一些失效的驱动,软件下载地址,与同行学习讨论. 这 ...

  8. 电子工程术语和定义列表

    按字母顺序排列: 电子工程术语和定义列表,按字母顺序排列 1-Wire 单线(加地线)通信协议. 更多信息,请参考: 1-Wire存储器产品 1-Wire接口方案 1-Wire软件工具 1-Wire ...

  9. zynq 7000 的HDMI 显示实验

    用了很多年的zynq 7000,一直就没做hdmi 显示实验.前几天终于做了这个实验,也就做一个总结. 我的实验是在微相的z7-lite下根据他们的教程完成的.平台是windows 10 , Viva ...

最新文章

  1. python资料下载-python电子书学习资料打包分享百度云资源下载
  2. java编译器代码检查_java 命名代码检查-注解处理器
  3. 最终的动画函数封装(2)
  4. 问题 J: Sequence Problem (II) : Array Practice
  5. Mac下Intellij IDea发布Web项目详解一
  6. 转:SQL进阶之变量、事务、存储过程与触发器
  7. Controller类中方法返回值详解
  8. 全球运:电商物流成数字浙江“金名片”
  9. 【vbs/bat】强制关闭程序
  10. php ci框架后台管理,ci: 羽翼后台管理平台是一个简单的博客系统,后端基于CodeIgniter,前端基于Semantic UI 2.2.10...
  11. 聊天程序源码c语言,今天打的代码。基于TCP的聊天程序。
  12. 使用Microsoft.Office.Interop.Excel批量编辑Excel文件
  13. 欧美相关出口企业要注意了!
  14. Java代码混淆案例(附反编译工具)
  15. Deep Learning for Visual Tracking: A Comprehensive Survey(单目标跟踪目前最好的综述类文章)
  16. 美团——大众测试开发工程师校招
  17. 使用tree-node-cli(踩坑)生成树状目录
  18. 反向跟单——越亏越喜欢
  19. 王老吉药业“关爱烈日下最可爱的人”公益活动在杭启动
  20. python动画精灵_Python精灵模块简介

热门文章

  1. 杭州有那些APP外包公司?
  2. transition实现隐藏显示菜单栏效果
  3. JavaScript-封装与继承(两种)
  4. 【宽度优先搜索笔记】BFS输出最短路径
  5. FFMPEG 库移植到 VC 需要的步骤
  6. eclipse for php开发环境,eclipse for php 开发环境配置
  7. #运行后闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来
  8. 档案盒正面标签制作_如何制作差异化的短视频内容?
  9. 【云计算】阿里云云计算架构师ACE成长路线v2
  10. 【服务器】Discuz论坛实现微信小程序(修改接口)