SLA5032 500M 32通道逻辑分析仪的API函数接口

来源:互联网 发布:什么叫大数据交易 编辑:程序博客网 时间:2024/04/27 21:10



sysclk.taobao.com


为了方便二次开发,提供DLL以及此API函数说明。



int   __stdcall DDR2_LA_CLOSE(void);

参数 :无

返回:1
作用:用于关闭已经打开的逻辑分析仪设备


int    __stdcall DDR2_LA_OPEN(void) ;

参数:无

返回:操作成功返回1 否则0

作用:用于打开逻辑分析仪,并且写在FPGA配置。


int  __stdcall DDR2_LA_GetStatus(unsigned int*info) 

参数:32位指针,用于承载返回的状态。

返回:1 从逻辑分析仪读取状态成功   0:  从逻辑分析仪读取状态失败

作用:除了函数本身的返回数值外,info指针也更新了三个数据; 

info[0] =  port value :当前的数据采集的数值。

info[2] = 已经采集的数据块长度。每个数据块是256个32位字,也就是说256个采样。info[2]=n 表示保存了 n*256次采样,此数值用以监视逻辑分析仪采集内存的使用状况。

info[1]   =  0  : 逻辑分析仪就绪(空闲)    

info[1]   = 1 ; 等待触发

info[1]   = 2 : 已经触发

info[1] = 3  : 采集完成

备注:设置了触发后进行数据采集,要通过此函数获取逻辑分析仪的状态。用以进行界面更新以及确定什么时候进行数据读回。、


int  __stdcall DDR2_WR_REG(int addr,unsigned int val)

参数:32位寄存器的地址,以及数值。

返回:1:操作成功  0:失败

作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。




int  __stdcall DDR2_RD_REG(int addr)

参数:32位寄存器的地址,以及数值。

返回:1:操作成功  0:失败

作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。




int  __stdcall DDR2_LA_SetSampleRate(unsigned int frq) 

参数:   frq是采样速率,如果设置500M那么frq = 500 * 1000 *1000 ;

返回:   1:此采样速率被支持 ,设置成功 (设置已经写入了逻辑分析仪硬件)        0:此采样速率不被支持,设置失败



int  __stdcall DDR2_SET_DEEPTH(unsigned int pre,unsigned int post)

参数:pre出发前采集的是深度,n表示256*n个采集

post触发后采集的深度,n标示256*n个采集  

注意(pre+post) < ( 64*1024*1024 / 256),并且pre和post的数值最小是1.

 


int  __stdcall DDR2_LA_SetTriggle(unsigned int value ,unsigned int edge ,unsigned int mask)

参数:设置触发,有三个参数:value edge mask ,由于unsigned int 类型是32位的,正好对应32通道。 我们要设置通道n的触发状况,就要对应设置value,edge,mask的bit n.

当mask[n]=0的时候,value[n] 和 edge[n]的数值被忽略,此位不影响触发。 当mask[n]=1时:

edge[n]=0  value[n]=0  通道n的低电平触发

edge[n]=0  value[n]=1 通道n的高电平触发

edge[n]=1  value[n]=0 通道n的上升边缘触发

edge[n]=1  value[n]=1 通道n的下降边缘触发

mask对应位是1的所有通道的 触发同时满足后(也就是说所有位处触发位是通过and运算),最终产生触发。


int  __stdcall DDR2_LA_ForceStop(int stop)

参数:stop设置为1 ,其他数值暂不支持
返回值:1,操作成功  0 ,操作失败(硬件失去连接后才可能失败)
作用:终止正在进行的采集,此时数据也已经保存在硬件存储器,可以通过读函数读回。


int  __stdcall DDR2_LA_GetSample(unsigned int*pd,unsigned int*pt,int len)
参数:pd指针指向数据缓冲区,pt指针指向时间缓冲区,len暂时不起作用。请保证pd,pt缓冲区各自能容纳足够的采集。
返回数值:实际保存的数据长度。
作用:  读回采集到的数据,这里采用了压缩模式。pd[m]标示采集的数据,对应的pt[m]标示这个数据持续的采集周期数。
这里要注意一定要保证pd和pt有足够的长度,最高长度就是DDR2_SET_DEEPTH种的两个参数pre,post的和乘以256个32bit数。



int  __stdcall DDR2_LA_GetTrigPos()

参数:无

返回值:定位触发发生的数组下标,注意不是周期数。



此文档还会继续补充,将增加例子。


sysclk.taobao.com









参数:32位寄存器的地址,以及数值。

返回:1:操作成功  0:失败

作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。

sysclk.taobao.com
0 0
原创粉丝点击