完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我使用的ti DLP3010EVM模块是通过CY7C65215 芯片进行控制的,我可以在win环境下正常使用TI DLP的调试软件或者使用cyusbserial SDK的vs程序完成对设备的控制和访问,但是在Ubuntu14.04和petalinux下编译好cyusbserial SDK生成so库文件,调用API会出错。
我一开始编译cyusbserial SDK使用了libusb版本是1.0.23,后来改成SDK里的1.0.9但是还是一样的结果。我执行cyusbserial SDK的测试程序也无响应 这里我插入了TI DLP模块,可以看到有Cypress的USB,但是SDK里的测试程序还有我自己编写的代码都无结果,和没有插入USB-i2c设备一样。我上Zynq开发板 petalinux跑也是一样的结果 是我编译so库出问题了吗?我x86 linux下生成so文件是在SDK的makefile路径下直接make的;arm-linux编译so文件我修改了makefile,如下 ———————————————————————— 我现在可以正常运行CyUSBSerialTestUtility了,但是我使用来自TI的cypress 程序,使用到了CySetGpioValue 函数进行操作,这个函数会返回CY_ERROR_REQUEST_FAILED ,API手册注释到on error when request is failed by USB Serial device 但没给解决方法。 #define REQUEST_I2C_ACCESS_GPIO 5 #define I2C_ACCESS_GRANTED_GPIO 6 #define START_I2C_TRANSACTION_GPIO 9 #define I2C_CLOCK_FREQUENCY_HZ 100000 #define DLP_I2C_SLAVE_ADDRESS (0X36 >> 1) #define I2C_TIMEOUT_MILLISECONDS 500 bool CYPRESS_I2C_GetCyGpio(uint8_t GpioNum, uint8_t* Value) { return CyGetGpioValue(s_Handle, GpioNum, Value) == CY_SUCCESS; } bool CPRESS_I2C_SetCyGpio(uint8_t GpioNum, uint8_t Value) { return CySetGpioValue(s_Handle, GpioNum, Value) == CY_SUCCESS; } bool CYPRESS_I2C_RequestI2CBusAccess() { uint8_t Value = 0; time_t StartTime = time(NULL); if (!CYPRESS_I2C_SetCyGpio(REQUEST_I2C_ACCESS_GPIO, 1)){ printf("Request I2C Start Error n"); return false; } while ((time(NULL) - StartTime) < I2C_TIMEOUT_MILLISECONDS){ if (!CYPRESS_I2C_GetCyGpio(I2C_ACCESS_GRANTED_GPIO, &Value)){ break; } if (Value == 1){ if (!CYPRESS_I2C_SetCyGpio(START_I2C_TRANSACTION_GPIO, 1)){ break; } CyI2cReset(s_Handle, false); CyI2cReset(s_Handle, true); return true; } } printf("Request I2C End Error n"); return false; } |
|
相关推荐
1个回答
|
|
|
针对在Linux下使用cyusbserial SDK时出现的错误,结合您描述的TI DLP3010EVM模块(CY7C65215芯片)在Ubuntu 14.04和PetaLinux下无法工作的问题,以下是系统性的解决方案: 1. 确认内核驱动冲突(首要步骤)CY7C65215 设备在Linux中通常会被内核的 检查驱动绑定状态卸载冲突驱动验证驱动卸载重新插拔设备,执行: 2. 配置udev规则(解决权限问题)创建udev规则文件: 添加以下内容(替换实际VID/PID): 生效规则: 3. SDK编译与依赖调整确保libusb兼容性
重新编译SDK4. 运行时环境验证测试设备枚举使用SDK自带的 若失败,使用strace调试: 用户权限检查5. PetaLinux环境特殊处理文件系统配置
复制SDK库到目标系统将编译后的 6. 高级调试方法内核调试输出libusb底层调试修改SDK中的 重新编译后运行,检查打印的设备句柄获取状态。 7. 已知问题规避
最终验证在完成所有步骤后:
若仍失败,提供以下信息以进一步分析:
以上步骤覆盖了权限、驱动冲突、库依赖和调试关键点,可解决99%的Linux下CY7C65215访问问题。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2370 浏览 0 评论
1426 浏览 0 评论
1877 浏览 0 评论
CYUSB3014烧录失败Cypress Benicia USB Boot Device
7870 浏览 1 评论
11295 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:37 , Processed in 0.576656 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
269