纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 9098|回复: 5

[FAQ] 如何使用Ginkgo USB-I2C作为slave进行通信

[复制链接]
发表于 2019-11-28 15:19:12 | 显示全部楼层 |阅读模式
我在调试mcu的master和slave功能,想用USB-I2C Classic分别作为slave/master作为对端进行测试,但发现slave模式并不好用,有使用过的大哥帮忙给一下使用流程么,比如能否用Ginkgo USB-I2C进行i2c的master/slave的自发自收测试
回复

使用道具 举报

发表于 2019-12-4 13:41:20 | 显示全部楼层
       你可以使用我们的GinkgoOne软件测试的。应为Classic目前没怎么维护,现在主要使用我们的GingoOne软件的。
      http://www.viewtool.com/demo/Gin ... ne_Setup_v1.0.2.zip
      视频操作:http://www.viewtool.com/index.ph ... 47-ginkgo-usb-i2c-5
回复 支持 反对

使用道具 举报

发表于 2021-1-29 18:04:24 | 显示全部楼层
有两种方式进行操作:
1. 使用Ginkgo I2C classic (http://www.viewtool.com/index.ph ... 2/27-ginkgo-usb-i2c)进行前期测试(由于Ginkgo I2C classic没有人维护,学会slave mode 的基本控制就好)

2. 使用代码控制,可以按照自己的设计流程进行控制。
    vc demo 下载:http://www.viewtool.com/index.ph ... 43-ginkgo-usb-i2c-4    如果对别的语言比较熟悉的话,可以直接使用VC demo里面的DLL/Lib就好。
i2c-slave-mode-fc.jpg
具体接线图:
I2cConnectionMasterSlave.jpg        i2c-slave.jpg

如果没有这个mate板子, 但自己一定要 上拉电阻,切记切记!

代码实现:
从机端发送一个数据到"buffer"里,主机端就可以去读过来。
主机端写一个数据的话,从机端也可以从"buffer"里读出来。
注意:主从读写,不是实时的,是串行的方式(主发->从收,从发->主收)。


特别提醒:
如果作从模式,并且,如果I2C选择 硬件模式不能运行的话,可以切换成 软件模式 来进行,兼容性会好一些。


回复 支持 反对

使用道具 举报

发表于 2021-1-29 18:05:58 | 显示全部楼层
   init adapter:
I2C-slave-init.png


1。 Master side使用Ginkgo USB-Classic app发送:

i2cMasterWrite.png
I2C slave mode control demo(VC).   i2cDataFlow.png


2。Slave side使用demo code发送。

     数据准备:
      i2cSlaveWrite-code.png

     数据发送:

i2cSlaveWrite.png

    Master side使用Ginkgo USB-Classic app接收,点击发送按钮

i2cMasterRead.png






i2c-slave-demo-code.png
回复 支持 反对

使用道具 举报

发表于 2021-2-1 10:18:26 | 显示全部楼层
特别提醒:
linux 运行Ginkgo USB I2C Extend App,要使用用超级权限 来进行。
回复 支持 反对

使用道具 举报

发表于 2021-3-29 16:50:13 | 显示全部楼层
使用Ginkgo mini I2C

进行主从通讯的连接方式,及其数据发送



首先,硬件连接:利用I2C模块(可以购得:http://www.viewtool.com/index.php/2016-09-26-03-57-35



STM32_eeprom_1_1.jpg


mini-connection.jpg


两台计算机,设置如图下:


一端作为从机进行发送,



i2c-slave-tx.png


一端作为主机读取


i2c-master-rx.png


回复 支持 反对

使用道具 举报

发表于 2022-8-24 09:40:52 | 显示全部楼层
I2C 主从通讯是请注意:
由于使用我们的适配器的用户要求不一样(有的设备子地址-寄存器地址,有的是0字节,有的是1到四字节不等),由于主芯片内部的局限,我们折中设定子地址宽度为两个字节,
具体来说就是:
主机读写,从机写,都采用两字节宽度,从机读采用0字节宽度(芯片限制)

补充内容 (2023-9-22 09:31):
固件2.8.54则可以使用字地址宽度为0. 特此提醒。
回复 支持 反对

使用道具 举报

发表于 2023-1-6 11:38:04 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2023-1-6 11:40:06 | 显示全部楼层
经过验证,固件版本:2.8.46

补充内容 (2023-1-6 11:41):
经过验证,固件 :2.8.46 / 硬件 : 2.2.0

补充内容 (2023-2-20 15:25):
使用vc demo 产生的执行文件就可以验证,即使在同一个OS下,使用不同的device Index 就可以验证出来, I2C extend(Master)。
回复 支持 反对

使用道具 举报

发表于 2023-4-3 11:38:27 | 显示全部楼层
主从模式通讯推荐的做法是:采用应答机制
比如:
1. 从机写->主机读->主机回应答->从机读主机的应答->从机下一次写,如此循环。
2. 主机写->从机读->从机写应答->主机读从机的应答->主机下一次写,如此循环。
回复 支持 反对

使用道具 举报

发表于 2024-3-27 11:22:38 | 显示全部楼层
最新固件2.8.60 可以设定子地址(寄存器地址)的宽度
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 18:32 , Processed in 3.222580 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表