Ginkgo USB-I2C适配器固件从V2.8.17版本开始支持I2C从机功能,下面就针对这个功能的使用做简单介绍。
实现目的:
1、I2C从机接收数据,也就是接收I2C主机的数据并显示出来;
2、I2C从机发送数据,也就是把数据传输到适配器里面后,主机能将这些数据读出来;
上位机测试软件用Ginkgo_USB-I2C_Classic_Setup_v2.9.1.exe软件,大家可以到我们官方网站下载。
从机接收数据工作流程:
初始化设备为从机模式(需设置从机地址)->自动接收数据->调用VII_SlaveReadBytes()函数返回数据;
现在我们用两个USB-I2C适配器对接,一个当主机,一个当从机,由于适配器内部I2C总线上没上拉电阻,所以需要在SDA和SCL两根信号线上分别接一个4.7K的上拉电阻到3.3V,然后运行USB-I2C Classic软件,由于我们要配置适配器工作在从机模式下,所以在选择设备类型为从机之前需要先设置好相关参数,因为在选择从机模式后会根据界面设置相关参数自动初始化适配器为从机,其设置从机相关参数如下:
注意:Device Addr(Hex)这里就是设置从机地址的参数,主机在读写数据的时候都需要设置从机地址为这个数据,否则读写数据会出错,然后设置好发送周期(根据主机发送数据频率设置,由于我们这里主机是手动发送数据,所以可以把周期设置长一点),点击自动发送,这样软件就会周期性的调用VII_SlaveReadBytes()函数来获取适配器接收到的数据,如果没接收到数据,这个函数会返回0字节数据。
这些都做好后,从机就等待主机发送数据了,如果接收到数据后就在PC调用VII_SlaveReadBytes()函数的时候将数据返回,现在主机做如下设置并点击发送,从机界面就能显示接收到的数据:
从机发送数据工作流程:
从机发送数据需要先将数据写入适配器内部缓冲区中,然后主机产生时钟信号后,从机就会自动把数据发送出去,所以在从机设置设置好相关参数后,设置好要发送的数据,然后点击发送,数据就发送到适配器内部缓冲区了,然后主机就可以将数据从从机读回来。
从机发送数据:
主机读取数据:
后记:
从机模式在协助主机程序开发时有很大的用处,在不确定主机控制对象是否正常工作或者主机控制程序是否正常工作的时候可以利用从机来验证主机控制程序,这样可以加速定位问题所在。
I2C通信的时候,在同一个总线上可以挂多个设备,主机和从机之间的数据传输都是通过地址来寻址的,所以在调试的时候一定要注意主机和从机的地址必须匹配,否则会出现无法正常通信的问题。
共1条
1/1 1 跳转至页
利用USB-I2C实现从机I2C收发数据

只看楼主 1楼
关键词: USB-I2C 适配器
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |