构建系统
赛普拉斯CY8CKIT-048 PSoC?模拟协处理器先锋套件是一个非常有趣的开发板PSoC Creator 综合开发环境(IDE)配合使用方便。
包括与主板通信的工具——Bridge Control Panel。
Bridge Control Panel允许用户使用I2C双向接收/发送协议与相关应用设备之间的数据。数据可用于绘制数据图或存储文件。
该工具的问题在于它仅限于Windows该系统不适用于运行Linux例如,系统设备Raspberry Pi。
下面,我们将创建24小时环境数据监控的应用实例。
试想一下,如果可以用兼容的话Linux / Raspberry Pi替换东西Bridge Control Panel效果如何?
首先,让我们看看I2C如何通过通信协议?USB连接工作。
主板上有两个微控制器:
主芯片是CY8C4A45LQI,用于运行我们的应用程序,例如,收集一些传感器数据并传输到I2C接口上。
CY8C586LTI作为辅助芯片,通过一个USB接口连接到I2C为实现相关数据的获取I2C-USB bridge。
这块主板的USB HID接口有一些专有协议。
幸运的是,协议和Cypress 3240 USB to I2C bridge基本相同,Kevin Kirkup已创建相关库。
https://github.com/kevinkirkup/cy3240-i2c-bridge
淘汰项目libhid迁移到libhidapi,并利用Wireshark检测来自Bridge Control Panel的USB命令:
更新上述设置,使其适用CY8CKIT-048PSoC?模拟协处理器先锋套件。
主要变化如下:调整USB产品及供应商ID
调整协议适用于CY8CKIT-048PSoC?模拟协处理器先锋套件
淘汰项目libhid迁移到libhidapi
确保代码与64位系统兼容
如果你想查询代码,你可以访问我GitHub账户
https://github.com/bluetiger9/cypress-usb-i2c-bridge.git dd
使用方法
在Raspberry Pi / Linux电路板安装在设备上的操作步骤:
需要为CY8CKIT-048PSoC?在模拟协处理器先锋套件的开发板上添加一些udev规则。
这样,即使不是根(non-root)用户也有权访问。
为此,我们创建了49-hid-development.rules文件:
内容如下:
重新启动,使新设置生效:
施工前,首先要安装所需的依赖项:
然后,从我的GitHub资源库克隆:
项目配置:
现在这个代码已经准备好编译和运行make” 程序了。
但是,还需要再等一次。src目录里有一个main.c文件:
因此,我们需要根据应用程序发布的数据类型进行编辑。
例如,我的项目将发布包含四组传感器值的数据结构(Struct),包括:土壤阻力(水分)、温度、湿度和照度:
从你的PSoC Creator如实复制这个项目struct。
我们还需要根据已经获得的字段,编辑打印数据的代码:
现在可以用make编译代码:
接下来,我们将检查该应用程序是否能正常运行:
如果一切正常,我们可以使用它ts指令创建一些时间戳,将输出模式改为输出到文件nohup指令操作应用程序。这样,即使用户从SSH退出后仍能保持运行状态:
输出到文件的状态如下:
至此,这个应用程序即可全天24小时运行。经过一段时间后,就可以对该文件进行处理,比如绘制数据图表。
OK,享受吧!
原理图
将赛普拉斯开发板连接到树莓派
下载
https://halckemy.s3.amazonaws.com/uploads/attachments/258660/cypr_rpi_C2Drgfd4mm.png
可利用USB连接两者Micro USB电缆为树莓派供电。
代码
Cypress USB-I2C bridgebluetiger9
https://github.com/bluetiger9
cypress-usb-i2c-bridge
https://github.com/bluetiger9/cypress-usb-i2c-bridge
获得赛普拉斯USB到I2C bridge请访问以下链接:
https://github.com/bluetiger9/cypress-usb-i2c-bridge#readme