资源描述:
《华科串行接口AD换实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、专业:电子信息工程姓名:班级:201401班学号:U201413278日期:年月日微机原理●实验●测试串行接口AD转换实验专业电子信息与通信学院班级电信1401班日期2016/05/12第4次试验组别15指导老师成绩实验课题串行接口AD转换实验一.实验目的1.理解RS232串行通信协议以及接口设计2.理解SPI串行通信协议3.掌握RS232串行接口设计4.掌握SPI串行接口设计5.掌握串行AD/DA接口设计二.实验任务•SPI接口AD转换三个电平数据,打印结果到console,要求采用中断方式。三.实验原理DAC121S101中断控制方式接口电路一.实验
2、步骤1.硬件平台建立1)参照11章使用XPS创建一个基于AXI总线的最小计算机系统。2)添加AXIInterruptControllerIP核:a.在IPCatalog标签中,双击下面图标创建INTCIP核:b.将microblaze_0实例的INTERRUPT引脚选择axi_intc_0_INTERRUPT,如图:1)加入AXISPI接口控制器:a.如图所示,选择AXISPI。b.配置SPI接口参数如图所示。这是由于该SPI接口仅需要输出数据,而且一次传输需要16位数据,一个从设备,且D/A转换芯片要求SCLK最高速率30MHz,由于AXI总线频率为1
3、00MHz,一次分频比为8,此时SCLK的频率仅为12.5MHz。c.设置端口连接配置,如图:1)为AXIINTC添加中断源,如图:2)配置UCF文件:在UCF文件中修改如图所示配置,此时是通过PMODJA上排插针进行连接:NET"CLK"TNM_NET=sys_clk_pin;TIMESPECTS_sys_clk_pin=PERIODsys_clk_pin100000kHz;NET"CLK"LOC="E3"
4、IOSTANDARD="LVCMOS33";NET"RESET"LOC="E16"
5、IOSTANDARD="LVCMOS33";NET"RsRx"
6、LOC="C4"
7、IOSTANDARD="LVCMOS33";NET"RsTx"LOC="D4"
8、IOSTANDARD="LVCMOS33";NET"axi_spi_0_SS_pin"LOC="B13"
9、IOSTANDARD="LVCMOS33";NET"axi_spi_0_MOSI_pin"LOC="F14"
10、IOSTANDARD="LVCMOS33";NET"axi_spi_0_MISO_pin"LOC="D17"
11、IOSTANDARD="LVCMOS33";NET"axi_spi_0_SCK_pin"LOC="E17"
12、IOSTANDARD="LV
13、CMOS33";1)创建工程过程完成后,a.在主界面下选择Hardware->GenerateNetlist;b.在主界面下选择Hardware->GenerateBitstream;c.单击GraphicalDesignView,可以看到系统的连接图,如下:1.软件平台建立(1)SDK提供的外设驱动以及应用程序1.点击project->ExpertHardwareDesigntoSDK…,点击Export&LaunchSDK:2.在SDK中,建一个空的c文件,输入源代码(2)源代码:#include"xparameters.h"#include"xsp
14、i.h"#include"xintc.h"#include"xil_exception.h"#defineBUFFER_SIZE2voidSpiIntrandler(void*CallBackRef,u32Statusevent,u32Bytecount);staticXIntcIntcInstance;staticXSpiSpiInstance;volatileintTransferInProgress;intError;u8ReadBuffer[BUFFER_SIZE];u8WriteBuffer[BUFFER_SIZE];intmain(void)
15、{intStatus;Status=XSpi_Initialize(&SpiInstance,XPAR_SPI_0_DEVICE_ID);Status=XIntc_Initialize(&IntcInstance,XPAR_INTC_0_DEVICE_ID);Status=XIntc_Connect(&IntcInstance,XPAR_INTC_0_SPI_0_VEC_ID,(XInterruptHandler)XSpi_InterruptHandler,(void*)&SpiInstance);Status=XIntc_Start(&IntcInst
16、ance,XIN_REAL_MODE);XIntc_Enable(&IntcIn