查看: 3779|回复: 3

RIoTboard连载九 I2C驱动通信调试

[复制链接]
  • TA的每日心情
    开心
    2018-10-12 13:33
  • 签到天数: 183 天

    连续签到: 3 天

    [LV.7]常住居民III

    发表于 2014-5-24 23:59:36 | 显示全部楼层 |阅读模式
    分享到:
    本来以为I2C是比较简单的linux驱动,但是看了linux下的I2C驱动程序框架确实不是一般的麻烦,在这里简单的描述下使用RIoTboard上的I2C接口的I2C通信问题。
    首先实验环境,是使用RIoTboard的I2C3接口,即miniHDMI上的I2C接口,连接7寸LCD的触摸屏芯片TSC2007(I2C接口).
    通信调试简单步骤:
    1.配置menuconfig选项,选在tsc2007驱动,现在想想当时触摸屏芯片选择TSC2007芯片真是幸运,源代码中就用这个芯片的驱动文件,这样就少了很多工作。
    2.驱动文件有了,就是tsc2007.c,现在就是配置RIoTboard的I2C通信接口的问题了。
    我们在源代码中做如下修改:
    添加I2C platform_data:
    struct tsc2007_platform_data  tsc2007_data = {
    .model = 2007,
    .x_plate_ohms = 180,       
    .fuzzx = 0,       
    .fuzzy = 0,       
    .fuzzz = 0,       
    .init_platform_hw = tsc2007_init_hw,       
    .exit_platform_hw = tsc2007_exit_hw,       
    .get_pendown_state = tsc2007_state_hw,       
    .irq_pin = RIOT_Touch_Int,
    };

    添加I2C board_info:
    static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
           
                    {
                    I2C_BOARD_INFO("tsc2007", (0x90>>1)),
                    .platform_data = &tsc2007_data,
                    },
    };
    //tsc2007 i2c client
    tsc2007的I2C地址配置为0x90
    接下来就实现tsc2007的三个硬件函数
    .init_platform_hw = tsc2007_init_hw,       
    .exit_platform_hw = tsc2007_exit_hw,       
    .get_pendown_state = tsc2007_state_hw,       
    具体实现大家可以根据自己需要,来具体实现。
    在tsc2007.c文件中添加读取触摸坐标的打印信息:
    /* Prepare for next touch reading - power down ADC, enable PENIRQ */
            tsc2007_xfer(tsc, PWRDOWN);
            printk("zfm read the x is %d,y is %d z1 is %d z2 is %d /n",tc->x,tc->y,tc->z1,tc->z2);
    这样我们编译uImage,下载,查看串口终端:
    i2c.PNG
    由此可见我们的I2C和tsc2007的通信已经建立并能读取数据。
    但是看来要使用ubuntu的触屏功能还有一段距离,后面还有很多工作要做,OPENCV也要提上实验日程了,实在不行就直接用鼠标了先。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-12 10:32
  • 签到天数: 295 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-5-25 18:52:21 | 显示全部楼层
    给力,顶一个~~~~~~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2022-4-28 09:50
  • 签到天数: 443 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-5-27 15:01:54 | 显示全部楼层
    现在开始研究linux源码 感觉是有压力的!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-12 13:33
  • 签到天数: 183 天

    连续签到: 3 天

    [LV.7]常住居民III

     楼主| 发表于 2014-5-27 17:44:32 | 显示全部楼层
    是的,真是同感,越看东西越多,越看越迷糊。不过熬过了总会好起来的,不经历风雨,如何见彩虹。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 06:55 , Processed in 0.154052 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.