当前位置:网站首页>CP2112使用USB转IIC通信教学示例
CP2112使用USB转IIC通信教学示例
2022-06-30 10:09:00 【优信电子】
CP2112使用USB转IIC通信教学示例
原文链接:https://www.yourcee.com/newsinfo/3026578.html
简介
CP2112是一个高度集成的USB至SMBus桥控制器,是一个标准的HID类设备,因此无需定制驱动程序,芯片产商提供windows端配置工具以便我们快速将需要的功能进行调试,并且另外板载有8个GPIO引脚可配置,今天我们主要对USB转IIC通信的功能进行调试并记录,另外也会简单介绍GPIO引脚如何进行配置。
CP2112模块 & IIC器件LM75
我们USB转IIC调试的话显然是需要一个IIC器件才能进行调试的,这里选择LM75因为其内部寄存器简单,无需在调试前花费大量的时间去研究如何驱动这款温度传感器,我们拿到一款LM75模块如下图所示
LM75简介
模块采用IIC通信,并在温度报警端口有上拉LED灯,仅需配置温度报警寄存器输出的极性即可控制上面的LED亮灭,能正常控制板载LED,那么CP2112从USB转换为IIC的数据就是成功的一次写操作示例。
我们在产品详情页以及手册中可以找到我么需要的几大参数
LM75通信8位IIC写地址:0x90
LM75配置寄存器指针地址:0x01
8位配置寄存器中B2位写0和1为控制OS极性,如下图所示
那么下面我们只需控制CP2112将写地址为0x90(因为后面上位机里面需要填8位写地址,所以这里没有放7位地址)的IIC器件配置其0x01寄存器中的数据分别为0x00和0x04,那么上面的指示灯就会出现亮和灭两种现象,OK,思路清晰下面装好CP2112配置工具看到界面进行配置。
接线不必多说,供电口与IIC通信口接上即可。
需要相关资料的可以在私信或留言邮箱,没有CSDN账号可以查看原文之后再留言!
CP2112参数配置
插上CP2112开发板之后看到下方配置

正确插上模块后点击连接,如果连接不上换根能正常通信的数据线,碰到很多人大概率是这个问题导致的
在配置界面配置上图 3 、4 、 5 几个选项,地址可以随便填,只要和正在通信的器件IIC地址不同即可
填完点击6设置,下方会出现 HID_SMBUS_SUCCESS 提示为设置成功。
保险起见点击 第7个选项 获取一下当前设置 看设置是否改变来判断刚才是否设置成功了。
CP2112数据传输配置
写IIC数据
点击 data Transfer 看到第二页,在下方写数据的区域填写LM75地址0x90,接下来需要往0x01寄存器中写入0x03的数据(0x00也可以,B2位为0现象一样是灯灭),此时灯为灭的状态,虽然正常灯本来就是灭的所以我们啥也看不出来

重新往0x01寄存器中写入数据0x04

此时灯亮,再写入0x00时灯灭,下面也会显示为success提示发送成功,现象正常写入操作正常。
读IIC数据
重新按照上面写的流程往0x01寄存器中写入0x04之后再读出数据,对比是否正确
这里需要注意几个点,需要读取的寄存器是8位的地址,里面的数据也是8位,因此我们请求的时候寄存器应该是1个字节,读取到的数据也是1个字节,如果你驱动的是其他传感器可能会是2字节或更多
那么我们开始填写参数,如下所示
需要注意的几个点是这里的顺序必须要按顺序操作,不然会提示超时通信也会失败。
第一步注意一下寄存器本身的字节数和获取出来的数据的字节数匹配上即可。
第二步这个操作比较迷惑不清楚为什么还要获取一下数据,并且里面的字节数是寄存器和寄存器中的数据加起来的字节,手册没找到为什么只看到说明要这样操作,照抄。
后面数据都填好之后的 4→5→6这三个步骤顺序必须是对的,否则会报超时
这个操作比较疑惑的是在4这里获取完了数据还要在5这里再获取一次,然后6这里才能显示到上位机上面,下面是CP2112在4和5进行IIC通信时逻辑分析仪采集的数据,希望有大佬能够解惑这步操作。

虽然不清楚这里为什么,但是似乎不影响正常获取数据到上位机,这个步骤也是官方手册中说明得来的问题不大。
OK,到这里就把IIC的读取和写入搞定的话基本IIC通信就不会有问题了。
GPIO输入输出配置
点击 Pin Configration 来到引脚配置界面,如下图所示可以看到有两大部分,左侧为引脚的模式配置,右侧为引脚的值(也就是高低电平还是开漏)

CP2112板子上稍微看一下LED灯连接的芯片引脚对下芯片手册可以知道两个LED是上拉到GPIO0和GPIO1的,默认状态下引脚处于输入模式,我们点击配置为输出,灰色部分的Open-Drain会亮起,再点击选择为Push-Pull(推挽) ,第二步将模式设置进芯片

这个时候灯仍然不会亮起,因为默认输出的值为高电平,上拉LED需要低电平才会亮起,设置为低电平之后如果灯亮起则设置成功,没有亮说明有问题没有配置好

灯亮起,GPIO操作成功!
总结
本次对CP2112功能调试过程较为顺利,虽然中间碰到一些比较疑惑的问题,相信经过后续的研究努力能够分析出原因。
本期文章希望能给到大家帮助,也希望优信能够一直陪伴大家共同学习共同进步,欢迎一键三连,感谢各位大佬!
边栏推荐
- Leetcode question brushing (IV) -- greedy thought (go Implementation)
- 敏捷开发: 超级易用水桶估计系统
- Use keil5 software to simulate and debug gd32f305 from 0
- 小程序中读取腾讯文档的表格数据
- Skill combing [email protected] voice module +stm32+nfc
- ArcGIS Pro scripting tool (6) -- repairing CAD layer data sources
- 记一次实习的经历,趟坑必备(一)
- From introduction to mastery of MySQL 50 lectures (32) -scylladb production environment cluster building
- & and - > priority
- Circuit breaker hystrixcircuitbreaker
猜你喜欢

LVGL 8.2 Image

苹果高管公然“开怼”:三星抄袭 iPhone,只加了个大屏

最新SCI影响因子公布:国产期刊最高破46分!网友:算是把IF玩明白了

pytorch 笔记 torch.nn.BatchNorm1d

Pytorch Notebook. Nn. Batchnorm1d

吴恩达2022机器学习专项课测评来了!

Dow Jones Industrial Average

Anhui "requirements for design depth of Hefei fabricated building construction drawing review" was printed and distributed; Hebei Hengshui city adjusts the pre-sale license standard for prefabricated

RobotFramework学习笔记:环境安装以及robotframework-browser插件的安装

The latest SCI impact factor release: the highest score of domestic journals is 46! Netizen: I understand if
随机推荐
Sarsa笔记
CSDN博客运营团队2022年H1总结
历史上的今天:微软收购 PowerPoint 开发商;SGI 和 MIPS 合并
Qt之实现动效导航栏
六月集训(第30天) —— 拓扑排序
前嗅ForeSpider教程:抽取数据
Skill combing [email protected] control a dog's running on OLED
技能梳理[email protected]基于51系列单片机的智能仪器教具
内存逃逸分析
About Library (function library), dynamic library and static library
Gd32 RT thread PWM drive function
Google 辟谣放弃 TensorFlow,它还活着!
Memory escape analysis
Implementation of iterative method for linear equations
那个程序员,被打了。
【Proteus仿真】Arduino UNO LED模拟交通灯
RobotFramework学习笔记:环境安装以及robotframework-browser插件的安装
Criu enables hot migration
CSDN blog operation team 2022 H1 summary
TypeScript–es5中的类,继承,静态方法

