各位大侠, 本人在调试dm8127 的 RDK 3.5 平台 IPNC 系统, 原来 sensor是 mt9j003, 使用 i2c 通讯, 现在换成了 ad9923a , 变成 spi 通讯,
我在 kernel 中成功实现了 spi 与 ad9923a 的通讯, 但是在 iss 中无法调用上层 的 kernel 接口, 也无法 调用 类似 " echo xxx > yyy " 等系统命令, 所以我想只能在 iss 中实现 spi 功能, 不知道哪位大侠能指点两招给小弟, 谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
各位大侠, 本人在调试dm8127 的 RDK 3.5 平台 IPNC 系统, 原来 sensor是 mt9j003, 使用 i2c 通讯, 现在换成了 ad9923a , 变成 spi 通讯,
我在 kernel 中成功实现了 spi 与 ad9923a 的通讯, 但是在 iss 中无法调用上层 的 kernel 接口, 也无法 调用 类似 " echo xxx > yyy " 等系统命令, 所以我想只能在 iss 中实现 spi 功能, 不知道哪位大侠能指点两招给小弟, 谢谢!
不会那么落后吧, 有现成的 SPI 控制, 还另外用GPIO模拟?
我觉得 正确使用 SPI 寄存器, 利用硬件控制完成 SPI 功能才是正确的做法....
刚才验证了一下, 确实M3无法访问 SPI 寄存器, 只能访问 I2c 寄存器.......... 访问 地址超过 0x4803 0000 代码会 停止运行.....
我想另外的办法是 M3 能不能往上面 APP 层发消息, 让 APP 层 调用 linux 命令, (如 " echo " ) ?
上层是可以 poll 的方式 获取 M3 层数据的, 但是让 M3 层主动发消息会更好些.
我是不想在M3层把 SPI 配置成 GPIO, 否则 linux 层又不能使用 SPI 了.
实在没办法, 只好用GPIO 模拟 SPI 了, 现在已经弄好了, 数据波型弄得跟 SPI 控制器的波型一样, 通讯也正常...
PS: 在M3在调试这个 GPIO SPI 不方便, 可以先在内核中调, 成功后再移到 M3中, 地址一样的, 只是内核使用 omap_writel, M3直接 是 REG32 这个宏...
图方便的话就直接拿IMX136下GPIO模拟SPI的代码来用,稍稍改东西就行。