TI中文支持网
TI专业的中文技术问题搜集分享网站

dm8127 中 如何在 iss 中实现 SPI 通讯功能?

各位大侠,  本人在调试dm8127 的 RDK 3.5 平台 IPNC 系统, 原来 sensor是 mt9j003, 使用 i2c 通讯, 现在换成了 ad9923a , 变成 spi 通讯, 

   我在 kernel 中成功实现了  spi 与 ad9923a 的通讯,  但是在 iss 中无法调用上层 的 kernel 接口,  也无法 调用 类似 " echo xxx > yyy " 等系统命令, 所以我想只能在 iss 中实现 spi  功能, 不知道哪位大侠能指点两招给小弟,  谢谢!

Robin Edson:

ISS中SPI是通过GPIO模拟得到的,可以参考IMX136中spi的实现。

zhanfei huang:

回复 Robin Edson:

不会那么落后吧, 有现成的 SPI 控制, 还另外用GPIO模拟?

    我觉得 正确使用 SPI 寄存器, 利用硬件控制完成 SPI 功能才是正确的做法….

Robin Edson:

回复 zhanfei huang:

M3核无法访问SPI控制器的寄存器。

zhanfei huang:

回复 Robin Edson:

刚才验证了一下, 确实M3无法访问 SPI 寄存器, 只能访问 I2c 寄存器………. 访问 地址超过 0x4803 0000 代码会 停止运行…..

    我想另外的办法是 M3 能不能往上面 APP 层发消息,    让 APP 层 调用 linux 命令, (如 " echo " ) ?  

   上层是可以 poll 的方式 获取 M3 层数据的,  但是让 M3 层主动发消息会更好些.

   我是不想在M3层把 SPI 配置成 GPIO,  否则 linux 层又不能使用 SPI 了.

   

zhanfei huang:

回复 zhanfei huang:

实在没办法, 只好用GPIO 模拟 SPI 了, 现在已经弄好了,  数据波型弄得跟 SPI 控制器的波型一样, 通讯也正常…

PS: 在M3在调试这个 GPIO SPI 不方便, 可以先在内核中调, 成功后再移到 M3中,  地址一样的, 只是内核使用 omap_writel,  M3直接 是 REG32 这个宏…

Robin Edson:

回复 zhanfei huang:

图方便的话就直接拿IMX136下GPIO模拟SPI的代码来用,稍稍改东西就行。

zhanfei huang:

回复 Robin Edson:

IMX136 在哪里, 我没有

赞(0)
未经允许不得转载:TI中文支持网 » dm8127 中 如何在 iss 中实现 SPI 通讯功能?
分享到: 更多 (0)