【经验】 USB转UART芯片CP2102N识别信息的修改配置方法
SILICON LABS 的USB转UART芯片CP2102N,当我们把CP2102N芯片连接到电脑上自动识别的是"CP2102N USB to UART Bridge Controller"这个信息。如下图1所示:
但有些客户想识别出自己公司的信息不想使用默认识别信息,如下图显示"Sekorm"公司信息。
我们有两种形式可以实现:
第一种,我们的可以用Silicon Labs 的Simplicity Studio 软件直接配置:
在这里配置我们只要修改 Product String 里面的信息,要注意"Use Internal Serial Number"这个选项不能选。如果选上我们的信息修改是不成功的,会一直提示厂商出厂的信息。
第二种,如果用户想把CP2102N修改信息打包到自己产品的软件里面需要调用API函数方式,使用最新的CP210xManufacturingDLL_v6.7.5软件包里面的CP210xManufacturing.dll,CP210xManufacturing.lib,CP210xManufacturingDLL.h三个文件。
现在针对CP2102N应该调用CP210X_GetConfig 和 CP210X_SetConfig。
厂商提供了一个configStruct.xlsx电子表格,里面描述了所有CP2102N bytefields信息,用户必须先通过CP210X_GetConfig获取整个cp2102n配置内容,然后指定要改修改地址,把要修改的信息进行填写,然后将这些数据整体通过调用cp210x_setconfig函数把整体信息再写进去,完成对CP2102N信息的配置。
通过在configStruct.xlsx这个点子表格里面我们查到cp2102N 全部bytefields 是678 字节,"product String"偏移量为193,大小为256 byte(s);"Serial String"偏移量为452,大小为128 byte(s);"Use Internal Serial"偏移量为449,大小为1 byte(s); "Fletcher Checksum "偏移量为676,大小为2 byte(s),对这几个部分进行配置就可以实现信息的修改。
下面是测试通过的代码可以参考。
// test1.cpp : 定义控制台应用程序的入口点。
//
#include <windows.h>
#include "CP210xManufacturingDLL.h"
#include <stdint.h>
#include <stdio.h>
uint16_t fletcher16(uint8_t *dataIn, uint16_t bytes)
{
uint16_t sum1 = 0xff, sum2 = 0xff;
uint16_t tlen;
while (bytes) {
tlen = bytes >= 20 ? 20 : bytes;
bytes -= tlen;
do {
sum2 += sum1 += *dataIn++;
} while (--tlen);
sum1 = (sum1 & 0xff) + (sum1 >> 8);
sum2 = (sum2 & 0xff) + (sum2 >> 8);
}
/* Second reduction step to reduce sums to 8 bits */
sum1 = (sum1 & 0xff) + (sum1 >> 8);
sum2 = (sum2 & 0xff) + (sum2 >> 8);
return sum2 << 8 | sum1;
}
#define TOTAL_SIZE 678
//#define TOTAL_SIZE 1016
int main()
{
DWORD num;
CP210x_STATUS status = CP210x_GetNumDevices(&num);
HANDLE h;
status = CP210x_Open(0, &h);
if (status == 0)
{
char buffEntire[TOTAL_SIZE];
status = CP210x_GetConfig(h, (BYTE*)buffEntire, TOTAL_SIZE);
if (status != 0)
{
printf("read data error 2");
}
char buff2[1024];
memset(buff2, 0, 1024);
strcpy(buff2, "Sekorm");
int towrite = strlen(buff2)+1;
//product string
memcpy(buffEntire + 193, (char*)buff2, towrite);
//serial string
memcpy(buffEntire + 452, (char*)buff2, towrite);
//use serial internals
unsigned char c = 0x0;
memcpy(buffEntire + 449, &c, 1);
//sum
uint16_t sum = fletcher16((uint8_t*)buffEntire, TOTAL_SIZE - 2);
memcpy(buffEntire + TOTAL_SIZE - 2, &sum, 2);
buffEntire[TOTAL_SIZE - 1] = (BYTE)sum;
buffEntire[TOTAL_SIZE - 2] = (BYTE)(sum>>8);
status = CP210x_SetConfig(h, (BYTE*)buffEntire, TOTAL_SIZE);
if (status != 0)
{
printf("write data error ");
CP210x_Close(h);
return 0;
}
}
if (status == 0)
{
char buffEntire[TOTAL_SIZE];
status = CP210x_GetConfig(h, (BYTE*)buffEntire, TOTAL_SIZE);
if (status != 0)
{
printf("read data error 2");
}
char* productstring = (char*)(buffEntire + 193);
char* serialstring = (char*)(buffEntire + 452);
char* use = (char*)(buffEntire + 449);
uint16_t sum = fletcher16((uint8_t*)buffEntire, TOTAL_SIZE - 2);
int stop = 1;
}
CP210x_Close(h);
return 0;
}
相关资料链接如下:
Silicon labs CP210x USB-UART API规范说明(AN978):
https://www.sekorm.com/doc/49408.html
Silicon LabsCP2102N SetConfig GetConfig Array Structure:
https://www.sekorm.com/doc/118834.html
CP210x适用于Windows的驱动程序:
https://www.sekorm.com/doc/118835.html
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 3
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】USB转串接口芯片CP2102N的硬件电路设计注意事项
Silicon Labs推出的USB转串口芯片CP2102N具备功能强大、无需固件开发、简单易用等显著特点,深受广大工程师喜爱。被广泛用于医疗设备、手持设备、测试设备等。但CP2102N在硬件设计中,会有诸多注意事项,为避免工程师少走弯路,本文做了详细整理,供大家参考。
【经验】USB转UART接口芯片CP2102N替换CP2102的注意事项
本文介绍Silicon Labs最新USB转UART器件CP2102N与CP2102的区别及替换的注意事项。
【经验】USB转UART接口芯片CP2102N使用命令行软件设置方法
Silicon Labs USB转UART接口芯片CP2102N,这是一款高集成度的桥接芯片,开发不需要其他外部USB组件,可使用GUI软件对芯片进行简单的自定义和配置选项,简单易用。本文介绍Silicon Labs USB转UART芯片CP2102N使用命令行软件设置方法。
CP2102单芯片USB转UART桥
描述- CP2102是一款高度集成的USB到UART桥接控制器,用于将RS-232设计升级到USB,具有最小组件和PCB空间。它包含USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和异步串行数据总线(UART),所有这些都在紧凑的5 x 5 mm QFN-28封装中。CP2102支持多种数据格式和波特率,并具有虚拟COM端口设备驱动程序,允许其作为COM端口出现在PC应用程序中。
型号- CP2102-GM,CP2102EK,CP2102
Silicon Labs(芯科科技)CP2112 USB转I2CSMBUS windows调试助手
描述- 本资料以压缩包的形式呈现,包内附有Silicon Labs(芯科科技)CP2112的USB转I2CSMBUS windows调试助手安装包。
型号- CP2112
CP2102单芯片USB转UART B桥
描述- CP2102是一款高度集成的USB到UART桥接控制器,用于将RS-232设计升级为USB,具有最小组件和PCB空间。它包含USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和异步串行数据总线(UART),所有这些都在紧凑的5 x 5 mm QFN-28封装内。该芯片无需外部USB元件,并支持多种数据格式和波特率。
型号- CP2102-GM,CP2102EK,CP2102
【经验】CP2102N驱动安装失败问题的分析与解决
在不重新安装Windows的情况下,讨论分析和解决Silicon Labs的USB-to-UART桥接器芯片CP2102N驱动安装失败的问题。
【经验】USB转UART桥接芯片CP2102与CP2110的编程区别
Silicon Labs的CP21XX系列芯片是USB转UART功能的桥接芯片,这个系列的芯片可实现即插即用接口解决方案,可方便的实现产品的USB通信功能,芯片内部集成有振荡器,封装最小只有4mm*4mm,同时内部有可编程存储器,可以极大的降低产品的成本,简化产品设计并缩短产品的开发时间。CP21XX系列的主要有CP2102及CP2110两个产品,本文介绍这两个产品的编程区别。
CP2102N在PLC应用中的卓越表现与优势分析
在实现PLC与其他系统或设备高效通信的过程中,一款优秀的接口转换芯片显得尤为重要。Silicon Labs的CP2102N USB-UART桥接芯片,凭借其出色性能和高度集成性,正在成为PLC应用领域的一颗璀璨明星。
【选型】接口芯片CP2102N可P2P替换CP2104,最快速率3Mbps,功能更丰富
Silicon Labs推出的USB转UART接口器件CP2102N可以P2P替换CP2104,速率更快功能更丰富。本文将详细说明替换的可行性及优势。
【经验】单芯片USB转UART桥接器CP2105用于USB转双路485协议的操作步骤
CP2105是Silicon Labs的一款方便、高性价比的单芯片USB转UART桥接器,其实CP2105不仅仅只支持串口,CP2105还支持USB转485/232。本文主要针对CP2105的USB转485的相关操作进行介绍,让各位读者熟悉整个配置过程。
【产品】低成本USB桥接芯片,即连即用的接口管家-Silicon labs CP2104,CP2105,CP2110
Silicon labs CP21xx USB桥接系列产品共有四种USB转串口的解决方案:包括USB转UART接口芯片CP2104、USB转双UART接口芯片CP2105、HID-USB转UART接口芯片CP2110和HID-USB转SMBus及I2C接口芯片CP2112。该系列芯片能够广泛应用于个人医疗设备、手机、智能卡和存储卡阅读器、无线调制解调器等系统中。
【选型】USB-to-UART桥接芯片CP2102N可替代和升级现有的单接口CP210x系列芯片
芯科科技推出的CP2102N USB-to-UART桥接芯片,旨在替代和升级现有的单接口CP210x USB-to-UART芯片。对于某些芯片,例如CP2102和CP2104,CP2102N实际上是可以直接替代的产品。 除了增加两个电阻外,在现有设计中使用CP2102N不需要其他硬件或软件更改。 对于其他芯片,封装或功能差异可能需要对硬件或主机软件进行较小程度的更改。
【应用】芯科USB转UART单芯片桥接器助力一拖四烧录器,最高可提供4个独立UART接口
烧录器系统使用的USB转UART单芯片桥接器为:CP2108-B03-GM,包括一个USB 2.0全速功能控制器,USB收发器,振荡器,EEPROM和四个异步串行数据总线,在一个紧凑的9毫米x 9毫米64引脚QFN包中具有完整的调制解调器控制信号。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 102,628
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
深圳市启威测实验室,面向所有企业提供信号完整性测试服务,主要包括USB、HDMI 、DP、MIPI、PCIe 、SD/EMMC、DDR接口信号测试。测试手段有波形测试、眼图测试、抖动测试等。
提交需求>
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
查看全部2条回复