GY7502USBSPIAdapter产品使用说明书.docx
《GY7502USBSPIAdapter产品使用说明书.docx》由会员分享,可在线阅读,更多相关《GY7502USBSPIAdapter产品使用说明书.docx(18页珍藏版)》请在冰豆网上搜索。
GY7502USBSPIAdapter产品使用说明书
GY7502USB-SPIAdapter产品使用说明书
产品型号:
GY7502USB-SPIAdapter
手册版本:
V1.02
目录
目录(2
一、产品简介(3
1.1性能与技术指标(3
1.2典型应用(3
1.3通信协议转换(3
1.4产品销售清单(3
1.5技术支持与服务(3
二、外形与接口描述(4
2.1产品外形(4
2.2Pin脚描述(4
三、SPITools软件(6
3.1驱动程序安装(6
3.2SPITools软件安装(7
3.3软件功能介绍(8
四、接口函数与用户编程(9
4.1数据类型定义(9
4.2接口函数描述(11
五、SPI接口与时序(13
5.1SPI接口Master--Slave连接示意图(13
5.1SPI接口时序(14
六、SPI读写示例(16
6.1读写芯片的简易方法(16
6.2对X5045的写和读示例(16
6.3对M95160的写和读示例(16
6.4对VSC8239寄存器的读写示例(17
6.5对AD5314D/A输出的控制示例(18
一、产品简介
1.1性能与技术指标
1USB2.0转SPI接口适配器,USB总线供电,无需外部电源;
2SPI主机接口,Master方式;
3SPI时钟频率最大6MHz;
4提供电源输出:
+3.3v,+5V
5接口信号:
SCK,MISO,MOSI,CS0,CS1,GND,+5V,+3.3V以及2路IO口.
6输出信号3.3VTTL,输入5VTTL可承受。
7提供2路片选信号,并可以编程实现4路从机片选;
8读操作模式:
支持连续随机地址读;
9写操作模式:
支持单字节写,以及页写模式(PageWrite;
10提供DLL动态链接库,接口开发函数;
11提供Visualc++开发例程;
12提供SPI工具软件SPITools;
13塑料外壳,尺寸:
70*45*18mm;
14工作温度:
-40°C-+85°C
15此产品出厂前均经过了对最常见的SPI器件X5045的读写测试,利用SPITools软件。
测试过的芯片如下:
E2PROM芯片:
X5045,M95160(2字节地址;
带SPI接口的光收发CDR芯片寄存器读写:
VSC8239;
数模转换D/A芯片:
AD5314;
1.2典型应用
SPI总线测试;
SPI接口的元器件寄存器读写;
SPI接口的EEPROM读写;
1.3通信协议转换
USB转SPI总线,接口转换。
1.4产品销售清单
USB转SPI适配器一台;
USB连接线一根;
ISP扁平接口线缆一根
光盘1张(包括PC驱动、接口函数、用户手册等;
二、外形与接口描述
2.1产品外形
图1产品外形
2.2Pin脚描述
对外接口为10pin的针式接口。
图2适配器对外接口(外壳
表1适配器接口信号描述
引脚序号描述
PIN1GND电源地与信号地
PIN2SCK时钟输出
PIN3+5V注1驱动电流max200mA
PIN4MISO主机输入,从机输出数据接口
3.0-3.6V,驱动电流max60mA
PIN5+3.3V注1Normal
PIN6MOSI主机输出,从机输入数据接口
PIN7CS0片选信号0
PIN8IO-0IO口。
默认为高电平。
输出高3.3V,输入5V可承受PIN9CS1片选信号1
PIN10IO-1IO口。
默认为高电平。
输出高3.3V,输入5V可承受
注1:
如果从机的电路上已有供电,则请不要使用适配器提供的电源。
因适配器提供电源信号的驱动电流比较小,请用户使用使谨慎评估,以防PC的USB接口损坏。
端口IO的直流电气特性如下:
注:
USB-SPI适配器中,IO输出采用的是推挽输出。
三、SPITools软件
3.1驱动程序安装
先将设备接入PC或笔记本电脑的USB接口,根据提示安装我们提供的驱动程序。
接入USB-SPI设备到PC。
在“我的电脑”右键“属性”中选择设备管理器,可以看到
图2驱动安装过程
双击该USB-API设备,手动添加该设备的驱动程序,如下图,选择驱动程序所在的目录进行安装。
过程中会提示该驱动程序是否确认安装,点确认认可。
图3驱动安装过程安装完成后,设备管理器中会指示有“USB-SPIDevice”。
3.2SPITools软件安装
执行SPITools_setup.exe,按提示完成操作。
SPITools主界面如下图:
图4USB-SPITools主界面
上图记录了测试E2PROM芯片M95160的写操作和读操作的过程。
同时,我们为用户提供的例程中的应用程序也是一个很好的SPI工具软件,和上图这个软件功能基本一样,有源代码供参考。
用户也可以关注我们的网站,我们会不定期的对SPITools软件升级。
操作注意事项:
如果要从PC中拔出设备,请先关闭SPITools软件,再拔出。
否则重新插入时,会提示USB操作失败的信息。
3.3软件功能介绍
1按钮“Open&Setting”:
将设备打开,并配置选择的参数信息。
2按钮“关闭设备”:
关闭后,将不能操作该设备。
3按钮“读操作”:
对SPI从设备的读操作一般都先要写入读命令字(可能还包括地址,然后再读数据。
成功后返回数据。
4按钮“写操作”,将buffer中的数据依次通过SPI接口发出去。
完成后会有状态返回。
5buffer编辑框是一个Hex和ASCII码能同时编辑显示的输入控件。
内容为将要写入或者读取到的数据。
6按钮“LoadFile”:
只能导入bin格式的二进制码文件,内容将依次存入缓冲区。
7按钮“SaveFile”:
将依次存入缓冲区的数据存入到文件中,文件类型bin格式。
8Historyoperatedlogs:
记录了用户的操作过程和状态,以方便用户查看。
注:
该编辑框有容量限制,用户应及时清空,否则可能会没有新内容进来。
四、接口函数与用户编程
4.1数据类型定义
4.1.1SPI读写数据类型
typedefstructGY7502_DATA_INFO{
//允许连续写的字节数
PageWriteNum;
BYTE
//地址和数据;
BYTE
Databuffer[256];
//地址和数据的总个数
WriteNum;
UINT
ReadNum;//需要读的数据个数
UINT
BYTEIoSel;//IO口选择,低2位分别对应2路IO口。
bit值为1表示将该口将被操作。
BYTEIoData;//IO口状态,只有与IoSel位为1的对应值有效。
/片选输出选择。
值:
0或者1
BYTE
ChipSelect;
Reserved[4];//Reserved
系统保留。
BYTE
}GY7502_DATA_INFO,*pGY7502_DATA_INFO;
4.1.2配置信息数据类型
typedefstructGY7502_CONFIG_INFO{
//SPI时钟频率定义,
kFreq;
BYTE
//0-5依次代表100kHz,200kHz,500kHz,1000kHz,2000kHz,6000kHzBYTE
SpiMode;//工作模式CKPOL,CKPHA定义
系统保留。
Reserved[4];//Reserved
BYTE
}GY7502_CONFIG_INFO,*pGY7502_CONFIG_INFO;
4.1.3时钟频率对照表:
表2SPI时钟频率设置
kFreq值表示
0100KHz
1200KHz
2500KHz
31000KHz
42000KHz
56000KHz
4.1.4SPI模式SpiMode
此参数涉及SPItiming定义。
表3SPI工作模式设置
SpiModeValue描述
CKPOL=0
0CKPHA=0,
CKPOL=1
1CKPHA=0,
CKPOL=0
2CKPHA=1,
CKPOL=1
3CKPHA=1,
CKPHA表示在SCK的第几个边沿采样。
0表示第一个边沿,1表示第二个边沿。
CKPOL表示SCK空闲时候的电平状态。
0表示低电平,1表示高电平。
数据/时钟时序模式如下图5所示。
图5数据/时钟时序模式示意图
4.2接口函数描述
4.2.1打开设备
DWORD
GY7502_USBSPI_Open(
返回值:
1表示成功,
0表示失败。
4.2.2关闭设备
GY7502_USBSPI_Close(
DWORD
返回值:
1表示成功,
0表示失败。
4.2.3设备工作参数设置
GY7502_USBSPI_SetConfig(pGY7502_CONFIG_INFOpConfigInfoDWORD
参数:
pConfigInfo->kFreq
SpiMode
pConfigInfo->
返回值:
1表示成功,
0表示失败,
-1表示设备未打开。
4.2.4读取当前参数
GY7502_USBSPI_GetConfig(pGY7502_CONFIG_INFOpConfigInfoDWORD
参数:
pConfigInfo->kFreq
pConfigInfo->
SpiMode
返回值:
1表示成功,当前参数保存在pConfigInfo中,
0表示失败,
-1表示设备未打开。
4.2.5SPI读操作
GY7502_USBSPI_Read(pGY7502_DATA_INFOpDataInfo
DWORD
参数:
pDataInfo->Databuffer[256]
pDataInfo->ChipSelect
pDataInfo->WriteNum
pDataInfo->ReadNum
工作过程:
先将pDataInfo->Databuffer的内容向SPI从机写出,长度为pDataInfo->WriteNum,之后紧接着从SPI总线读取pDataInfo->ReadNum个字节。
返回值:
1表示成功,
0表示失败,
-1表示设备未打开。
4.2.6SPI写操作
GY7502_USBSPI_Write(pGY7502_DATA_INFOpDataInfo
DWORD
参数:
pDataInfo->Databuffer[256]
pDataInfo->ChipSelect
pDataInfo->WriteNum
工作过程:
将pDataInfo->Databuffer的内容向SPI从机写出,长度为pDataInfo->WriteNum返回值:
1表示成功,读取的结果将保存在pConfigInfo->Databuffer中
0表示失败,
-1表示设备未打开。
注:
写I2C操作时,如果数据个数大于1时,是一个连续写过程。
数据依次被通过MOSI信号发出去。
一般的SPI接口从器件都支持。
如果从设备不支持连续写,则用户可以分开逐个字节的写。
请用户注意:
此函数与pagewrite参数的设置有关,设置的字节数不要超过该从器件的页写能力(E2PROM一般有这个特性,即PageWriteSupport。
例如X5045页写能力是16个字节,则最多设置为连续写入16个字节。
4.2.7IO接口设置
低2位分别代表2路IO口。
DWORDGY7502_USBSPI_SetIO(pGY7502_DATA_INFOpDataInfo
参数:
pDataInfo->IoData(低2位有效
pDataInfo->IoSel(IO口选择,为1表示被选择
返回值:
1表示成功,
0表示失败,
-1表示设备未打开。
4.2.8IO接口状态读取
低2位分别代表2路IO口。
DWORDGY7502_USBSPI_GetIO(pGY7502_DATA_INFOpDataInfo参数:
pDataInfo->IoData(低2位有效
pDataInfo->IoSel(IO口选择,为1表示被选择
返回值:
1表示成功,返回值将保存在pConfigInfo->IoData中
0表示失败,
-1表示设备未打开。
五、SPI接口与时序
5.1SPI接口Master--Slave连接示意图
下图中NSS是片选信号。
图6SPI主从机连接示意图
5.2SPI接口时序
以下给出了本适配器的SPI时序图以及时序参数。
图7SPI主方式时序图(CKPHA=0
图8SPI主方式时序图(CKPHA=1
表4AdapterSPI时序参数表
参数说明最小值最大值单位
TMCKHSCK高电平时间10\
ns
TMCKLSCK低电平时间10\
ns
T
MIS
MISO有效到SCK移位边沿30\ns
TMIHSCK移位边沿到MISO发生改变0\ns
USB-SPI六、SPI读写示例下面给出了通过GY7502USB-SPIAdapter,利用SPITools软件访问SPI接口芯片的例子,其他SPI接口器件请参考其datasheet。
6.1读写芯片的简易方法如果在用户的从机板上未设计10pin的接口,则可以将我们提供的ISP扁平线缆剪断,将相应信号线直接焊接到芯片引脚上即可访问。
特别提醒用户谨慎使用适配器提供的电源线。
如果仅仅是对芯片供电,是没有问题的。
如果向电路板供电,一定要考虑总的电流负载不要超过我们定义的最大电流限制,以防损坏PC的USB接口。
6.2对X5045的写和读示例首先设置SPIMode为3或0都可以(根据X5045的SPI时序)。
1)写使能:
buf[0]=0x06//写使能命令WriteNum=1//写入字节数ReadRequest=0//不读执行“Write”2)从地址0开始写16个字节:
buf[0]=0x02//写命令buf[1]=0x00//ROM地址buf[2]=0x10//数据0buf[3]=0x11……buf[17]=0x1F//数据15WriteNum=18//共需写入以上18个字节ReadRequest=0//不读执行“Write”,数据即会被写入3)从地址0开始读16个字节:
buf[0]=0x03//写命令buf[1]=0x00//ROM地址WriteNum=2//共需写入以上2个字节ReadRequest=16//读16次,将数据读出执行“Read”,数据即会被读出6.3对M95160的写和读示例首先设置SPIMode为3(根据M95160的SPI时序)。
1)写使能:
buf[0]=0x06//写使能命令WriteNum=1//写入字节数16
USB-SPIReadRequest=0//不读执行“Write”2)从地址0开始写16个字节:
buf[0]=0x02//写命令buf[1]=0x00//ROM地址高位字节buf[2]=0x00//ROM地址低位字节buf[3]=0x10//数据0buf[4]=0x11……buf[18]=0x1F//数据15WriteNum=19//共需写入以上19个字节ReadRequest=0//不读执行“Write”,数据即会被写入3)从地址0开始读16个字节:
buf[0]=0x03//写命令buf[1]=0x00//ROM地址高位字节buf[2]=0x00//ROM地址低位字节WriteNum=3//共需写入以上3个字节ReadRequest=16//读16次,将数据读出执行“Read”,数据即会被读出6.4对VSC8239寄存器的读写示例VSC8239共有128字节寄存器,地址0-127。
首先设置SPIMode为2(根据VSC8239的SPI时序)。
1)将地址0x12写入新值,并读出:
buf[0]=0x25//地址在高7位,bit0=1表示写命令0x12<<1即0x24,buf[0]=0x24|0x01=0x25buf[1]=0x55//数据值WriteNum=2//共需写入以上2个字节ReadRequest=0//不读执行“Write”,数据即会被写入2)从地址0开始读128个字节:
buf[0]=0x00//REG地址以及读命令,地址在高7位,bit0=0表示读命令0x00<<1即0x00,buf[0]=0x00&0xFE=0x00WriteNum=1//共需写入以上1个字节ReadRequest=128//读128次,将数据读出执行“Read”,所有128个寄存器值即会被读出17
USB-SPI6.5对AD5314D/A输出的控制示例AD5314的DA控制是16个bit。
共有DA通道4个,CH0-CH3。
16bit的命令字bit16-bit0分别为A1,A0,PD,LDAC,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0,NULL,NULL首先设置SPIMode为2(根据AD5314的SPI时序)。
假定基准源1.225V。
1)将CH2输出0.6V:
(即(0.6/1.225*1023=501,16进制为0x01F5buf[0]=0xA7buf[1]=0xD4//高字节,0x01F5>>6=0x07,A1=1,A0=0,PD=1,LADC=0//低字节,0x01F5<<2=0xD4,DA的低6位在bit7-bit2WriteNum=2//共需写入以上2个字节ReadRequest=0//不读执行“Write”,DA值即被输出。
18