这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » UI051免驱USB转SPI/I2C/TTL;10路5/3.3V数字IO;1路时

共1条 1/1 1 跳转至

UI051免驱USB转SPI/I2C/TTL;10路5/3.3V数字IO;1路时钟输出

工程师
2014-09-15 20:39:05     打赏

UI051是免驱动的USB转SPI/I2C/数字IO芯片,插上电脑就可以使用,不需要装任何驱动,简单易用。UI051提供主SPI(4种MODE全支持)/主I2C接口/10个支持5V/3.3V双向IO,同时还提供一路时钟输出,可以给外部MCU提供时钟。通过PC上的工具可以很方便的控制这些IO

UI051适用于各类开发板、USB继电器、USB无线模块等产品。

提供VB模块测试测试例程源码。支持32位/64位 windows2000/xp/vista/win7/win8

更详细的资料,请到这里下载产品资料和工具软件 http://pan.baidu.com/s/1Gfwbq

全速USB HID接口,无需安装驱动、应用软件,即插即用。

支持32位/64位 windows2000/xp/vista/win7/win8

IOSPII2C接口支持5V3.3V

提供主SPI和主I2C接口

    ü SPI支持所有4SPI MODEMODE0~3。读写速度500Kbit/s

    ü I2C内部集成上拉14KΩ电阻,无需外部加上拉。读写速度400Kbit/s和

160Kbit/s可选,上电默认为160Kbit/s

提供10路独立双向IO,可配置为:

    ü 输入(无上拉/下拉),或者

    ü 推挽(PushPull)输出,或者

    ü 开漏(OD+14kΩ上拉输出

注:上电复位后所有IO都是输入状态。

提供124MHz时钟输出,可以供外部MCU使用,减少晶体,降低成本。

    ü 时钟输出的电平由IO_VDD决定

    ü 可以定制输出16MHz或者12MHz。如需要,请旺旺联系掌柜

简单的外围电路设计

    ü 不需要外围晶体、复位电路,直接连接上就可使用。

提供简单易用的DLL接口、静态链接库和应用程序例程


/***********设备操作函数;以下函数中的USB2IO_hdl是指USB2IO_Open返回的句柄*******/ //打开端口获取句柄;  //Nbr是端口号,从1开始,依次为2/3/4...,最大126 HANDLE WINAPI USB2IO_Open(int Nbr); //关闭端口;在程序退出前再关闭端口; 返回 0: 成功;!0: 失败 int WINAPI USB2IO_Close(HANDLE USB2IO_hdl); //获取设备序列号 //     参数: //         dwp_LenResponse: 设备序列号的长度,取值范围0~256。(单位: 字节) //         ucp_Response: 设备序列号buf(buf由调用该API的应用程序分配) //      返回 0: 成功;!0: 失败 int WINAPI USB2IO_GetDevSn(HANDLE USB2IO_hdl, DWORD *dwp_LenResponse, unsigned char *ucp_Response);
/***********IO操作函数;以下函数中的USB2IO_hdl是指USB2IO_Open返回的句柄*******/ /** 以下所有接口函数                                                       **/ /**  IoNbr: IO口(1~10)                                                     **/ /**  返回值 0: 成功;!0: 失败                                              **/ //设置IO输出方式:IoCfg:0=输入; IoCfg:2=OD+上拉, 3=PushPull推挽输出; int WINAPI USB2IO_SetIoCfg(HANDLE USB2IO_hdl, int IoNbr, int IoCfg); //设置IO输出值:  IoOut:1=输出高, 0=输出低 int WINAPI USB2IO_SetIoOut(HANDLE USB2IO_hdl, int IoNbr, int IoOut); //读取IO输出配置, 读取值存放在IoCfg中 int WINAPI USB2IO_RdIoCfg(HANDLE USB2IO_hdl, int IoNbr, int *IoCfg); //读取IO输出值(这里读取到的是上位机用USB2IO_SetIoOut的设置值), 读取值存放在IoOut中 int WINAPI USB2IO_RdIoOut(HANDLE USB2IO_hdl, int IoNbr, int *IoOut); //读取IO引脚值(这里读取到的是实际引脚的电平值), 读取值存放在PinValue中 //注意:IO输出值是设置IO输出寄存器;IO引脚值是芯片引脚上的实际电平值。 //      两者一般情况下是相等的,但如果该IO受到外围MCU或其他外设影响,两者有可能不相等,此时需要仔细查看外围电路是否有问题 int WINAPI USB2IO_RdPin(HANDLE USB2IO_hdl, int IoNbr, int *PinValue); //读取ClkOut输出: ClkOutCfg: 1=输出Clk, 0=关闭Clk int WINAPI USB2IO_SetClkOut(HANDLE USB2IO_hdl, int ClkOutCfg); //读取ClkOut的输出配置, 读取值存放在ClkOutCfg中 int WINAPI USB2IO_RdClkOutCfg(HANDLE USB2IO_hdl, int *ClkOutCfg);
/***********SPI操作函数;以下函数中的USB2IO_hdl是指USB2IO_Open返回的句柄******/ /** 以下所有接口函数                                                       **/ /**  返回值 0: 成功;!0: 失败                                              **/ /*********标准的SPI MODE 定义如下********************************************/ /**    MODE0 CPOL=0 CPHA=0 SPI_CLK空闲时是低电平; 上升沿采样               **/ /**    MODE1 CPOL=0 CPHA=1 SPI_CLK空闲时是低电平; 下降沿采样               **/ /**    MODE2 CPOL=1 CPHA=0 SPI_CLK空闲时是高电平; 下降沿采样               **/ /**    MODE3 CPOL=1 CPHA=1 SPI_CLK空闲时是高电平; 上升沿采样               **/ /****************************************************************************/ //使能SPI接口,SPI接口的相关IO配置将自动改变 int WINAPI USB2IO_EnableSpi(HANDLE USB2IO_hdl); //SPI写: DataLength:数据长度(1~136); DataBuf:数据buf int WINAPI USB2IO_SpiWrite(HANDLE USB2IO_hdl, int DataLength, char *DataBuf); //SPI读: DataLength:期望读的数据长度(1~136); ; DataBuf:数据buf int WINAPI USB2IO_SpiRead(HANDLE USB2IO_hdl, int DataLength, char *DataBuf); //设置SPI MODE: Mode0~3 int WINAPI USB2IO_SetSpiMode(HANDLE USB2IO_hdl, int SpiMode); //读取SPI MODE: Mode0~3 int WINAPI USB2IO_GetSpiMode(HANDLE USB2IO_hdl, int *SpiMode);
/***********I2C操作函数;以下函数中的USB2IO_hdl是指USB2IO_Open返回的句柄******/ /** 以下所有接口函数                                                       **/ /**  返回值 0: 成功;!0: 失败                                              **/ //使能I2C接口,I2C接口的相关IO配置将自动改变 int WINAPI USB2IO_EnableI2c(HANDLE USB2IO_hdl); //I2C写: //I2cAddr:I2C设备地址; //CmdRegAddr: 命令或寄存器地址, 只有当CmdRegAddrExistFlag!=0时有效; //CmdRegAddrByteCnt: CmdRegAddr的长度(0~4)(单位:字节)  0: 不存在CmdRegAddr //DataLength:数据长度(1~136); //DataBuf:数据buf int WINAPI USB2IO_I2cWrite(HANDLE USB2IO_hdl, int I2cAddr, int CmdRegAddr, int CmdRegAddrByteCnt, int DataLength, char *DataBuf); //I2C读: //I2cAddr:I2C设备地址; //CmdRegAddr: 命令或寄存器地址, 只有当CmdRegAddrExistFlag!=0时有效; //CmdRegAddrByteCnt: CmdRegAddr的长度(0~4)(单位:字节)  0: 不存在CmdRegAddr //DataLength:期望读的数据长度(1~136); //DataBuf:返回数据的数据buf int WINAPI USB2IO_I2cRead(HANDLE USB2IO_hdl, int I2cAddr, int CmdRegAddr, int CmdRegAddrByteCnt, int DataLength, char *DataBuf); //设置I2C速度: 0:80k 1:160k int WINAPI USB2IO_SetI2cSpeed(HANDLE USB2IO_hdl, int I2cSpeed); //读取I2C速度: 0:80k 1:160k int WINAPI USB2IO_GetI2cSpeed(HANDLE USB2IO_hdl, int *I2cSpeed);

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]