pmod ad2 digilent 提供的pmodad2.c和pmodad2.h
- 配合原理图服用
- 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相关推荐
- Digilent提供的Pmod AD1驱动程序
在github上下载Digilent提供的IP核,在路径\ip\Pmods下找到PmodAD1 点进去\drivers\PmodAD1中examples是main主程序 /************** ...
- basys3利用microblaze连接Pmod ad2
点击➕添加microblaze 点击Run Block Automation把Local Memory设置为128KB 切到Boards添加系统时钟,这步也可以先做 添加USB UART 双击这个模块 ...
- Digilent提供的Pmod AD5驱动程序
examples里的main.c /******************************************************************************/ /* ...
- 开启Digilent提供的Linux内核的NFS支持
ZEDBoard上出厂的SD卡中自带了一个较完整的linux系统,虽然是精简版,但是对于开发来说已经足够了,在嵌入式linux开发中,挂载NFS协助调试非常常见,但是Digilent给出的内核中并没有 ...
- linux内核配置nfs,【参赛手记】开启Digilent提供的Linux内核的NFS支持
ZEDBoard上出厂的SD卡中自带了一个较完整的linux系统,虽然是精简版,但是对于开发来说已经足够了,在嵌入式linux开发中,挂载NFS协助调试非常常见,但是Digilent给出的内核中并没有 ...
- Digilent提供的PmodOLEDrgb驱动程序
examples里的main.c /******************************************************************************/ /* ...
- Digilent atlys spartan-6开发板使用
Digilent atlys spartan-6开发板使用 在实验室考古,发现一款fpga开发板,年代久远,使用资料不全,所以记录一下使用过程,提供了一些失效的驱动,软件下载地址,与同行学习讨论. 这 ...
- 电子工程术语和定义列表
按字母顺序排列: 电子工程术语和定义列表,按字母顺序排列 1-Wire 单线(加地线)通信协议. 更多信息,请参考: 1-Wire存储器产品 1-Wire接口方案 1-Wire软件工具 1-Wire ...
- zynq 7000 的HDMI 显示实验
用了很多年的zynq 7000,一直就没做hdmi 显示实验.前几天终于做了这个实验,也就做一个总结. 我的实验是在微相的z7-lite下根据他们的教程完成的.平台是windows 10 , Viva ...
最新文章
- python资料下载-python电子书学习资料打包分享百度云资源下载
- java编译器代码检查_java 命名代码检查-注解处理器
- 最终的动画函数封装(2)
- 问题 J: Sequence Problem (II) : Array Practice
- Mac下Intellij IDea发布Web项目详解一
- 转:SQL进阶之变量、事务、存储过程与触发器
- Controller类中方法返回值详解
- 全球运:电商物流成数字浙江“金名片”
- 【vbs/bat】强制关闭程序
- php ci框架后台管理,ci: 羽翼后台管理平台是一个简单的博客系统,后端基于CodeIgniter,前端基于Semantic UI 2.2.10...
- 聊天程序源码c语言,今天打的代码。基于TCP的聊天程序。
- 使用Microsoft.Office.Interop.Excel批量编辑Excel文件
- 欧美相关出口企业要注意了!
- Java代码混淆案例(附反编译工具)
- Deep Learning for Visual Tracking: A Comprehensive Survey(单目标跟踪目前最好的综述类文章)
- 美团——大众测试开发工程师校招
- 使用tree-node-cli(踩坑)生成树状目录
- 反向跟单——越亏越喜欢
- 王老吉药业“关爱烈日下最可爱的人”公益活动在杭启动
- python动画精灵_Python精灵模块简介