查看: 1285|回复: 3

[原创] RIoTboard连载九 I2C驱动通信调试

[复制链接]

15

主题

4

好友

903

积分

举人

Rank: 4

  • TA的每日心情
    开心
    2016-9-29 15:49
  • 签到天数: 113 天

    [LV.6]常住居民II

    爱板会员勋章 活跃会员勋章

    发表于 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也要提上实验日程了,实在不行就直接用鼠标了先。

    回复

    使用道具 举报

    59

    主题

    18

    好友

    2977

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    2016-9-9 09:13
  • 签到天数: 293 天

    [LV.8]以坛为家I

    爱板会员勋章 活跃会员勋章

    发表于 2014-5-25 18:52:21 |显示全部楼层
    给力,顶一个~~~~~~~~~~~~~~~~~
    第五年了,这次一定要坚持到底,不留遗憾!!!
    回复

    使用道具 举报

    33

    主题

    10

    好友

    2412

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    无聊
    2016-11-9 20:46
  • 签到天数: 229 天

    [LV.7]常住居民III

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

    使用道具 举报

    15

    主题

    4

    好友

    903

    积分

    举人

    Rank: 4

  • TA的每日心情
    开心
    2016-9-29 15:49
  • 签到天数: 113 天

    [LV.6]常住居民II

    爱板会员勋章 活跃会员勋章

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

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-3 14:47 , Processed in 0.097002 second(s), 13 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部