求大神指点:
最近在进行HMC5883L数值指南针的驱动的编写,该传感器是支持I2C驱动的,但是在linux 2.6.38的内核上已经写好了I2C的驱动,但是却不能进行在内核中进行注册,内核输出信息是“不能创建这个设备”,但不知38内核与32内核,以及更低版本的内核之间的I2C驱动的框架有何区别,请指教?
又没有哪位大神已经给予38内核开发出了这款驱动程序,或者成功的进行其他的I2C类传感器的驱动开发,求指教?
若有什么好的资料请发送邮箱 : [email protected] 谢谢打家了!!!!!
------解决方案--------------------
修改IIC:删除IIC相关内容
如果采用内核默认的IIC,友善提供的EEPROM读写程序将不能执行,只有去除IIC相关内容或将24c08的地址改为0xA0后才能使用.
linux-2.6.38.7移植到mini2440/micro2440(一)——基本系统
------解决方案--------------------
我们公司的IIC都是模拟的 从来不用自带的IIC模块 不知为何
------解决方案--------------------
1:“不能创建这个设备”
你得弄清楚为什么不能创建这个设备,这个应该是可以良好解决的问题。
2:但不知38内核与32内核,以及更低版本的内核之间的I2C驱动的框架有何区别 I2C框架没有多大变化
3:你可以参考你的开发板的其他I2C器件驱动程序。比如加速度传感、光距离传感器、触摸屏。
------解决方案--------------------
确实不行了就用GPIO模拟呗。
模拟也就是用gpio来输出IIC协议的电平时序,这个其实不是很难,找份IIC的时序,注意读写时机和间隔时间就行,但前提是这个总线上没有接多个IIC外设,因为多个外设就需要IIC的仲裁,这个需要硬件来做,软件做不了。不过一般很少用到,你这个应该是不会接很多IIC到这个同一个管脚上的,另外也能好好学一下IIC协议,不错哦。