[经验] 【NanoPi M2试用体验】逗逼准备结项——ad转换,I2c

[复制链接]

技术员

发表于 2016-5-26 19:01:08   1531 查看 8 回复 显示全部楼层 倒序浏览
分享
本帖最后由 kidsure 于 2016-5-26 19:01 编辑

      俗话说的好,自己挖的坑,跪着也得填。。这话还得从申请开发板说起啊,当时脑袋一热啊,就寻思做一个智能医疗的什么,板子拿到手之后啊,查遍了引脚图,没有ad转换的引脚,当时啊,我抱着芯片手册在厕所里哭晕了一次又一次啊。还好有大神提点啊,这里鸣谢一下小狂同学@3guoyangyang7 ,对嘛,片上没有ad可以外挂嘛。。所以,无尽折磨刚刚开始了。
        嗯。。从哪里说起呢,应该是从心率传感器说起吧,当时觉得自己学校有这玩意,可以直接从老师那里磨叽一个拿来玩耍,查了好多的芯片手册,还看了看各种例程,总而言之,就是没看懂,最后看了看引脚图,一个电源一个GND,一个ADC,一种得了,先把ad读出来再说的感觉油然而生。
IMG_20160521_120915.jpg IMG_20160526_114755.jpg
然后就到了,怎么外挂AD芯片的问题,手上呢有两种解决方案,一个是ADC0809,一个是51单片机开发板上面的AD转换模块(偷的学弟的开发板,嘿嘿)。像我这种焊东西全靠杵的人啊,查了一下adc0809的东西,感觉难度好大的,另外最主要的是占用IO口资源太多了,一共没几个I/O口还让拿出7个引脚来读ad,而且精度不高,怎么想都很亏啊,所以啊。。最后还是选择51开发板上的东西吧,I2C虽然驱动程序写的费劲,但是用的资源少么,所以啊,这样吧。
IMG_20160526_113344.jpg IMG_20160526_113537.jpg
看着这些东西,不管哪个都好不想整啊。
这篇帖子还是写一半吧。先把I2C的驱动框架和这个东西的驱动加进去,复习一下吧。。之前也没认真写过I2C的驱动

又到了我们最不喜欢的看内核环节,从我开始时候的2440到现在的4418。。真是天差地别啊。
我们先来看看简单易懂的2440的I2C驱动的初始化程序
static int __init i2c_adap_s3c_init(void)
{
        int ret;

        ret = platform_driver_register(&s3c2410_i2c_driver);
        if (ret == 0) {
                ret = platform_driver_register(&s3c2440_i2c_driver);
                if (ret)
                        platform_driver_unregister(&s3c2410_i2c_driver);
        }

        return ret;
}

这个看起来容易很多的样子,基本就是一个platform_driver_register(&s3c2440_i2c_driver);这个函数的事,注册一个平台设备驱动。。然后我们再看看4418(我要哭了)


CBOOL   NX_I2C_Initialize( void )
{
    //  @modified Gamza static variable(__g_ModuleVariables) is automatically filled by '0'
    //                  父距 檬扁拳 苞沥俊 傈开函荐甫 0栏肺 檬扁拳 窍绰 累诀 捞寇狼 老阑
    //                  秦具茄促搁 bInit 蔼阑 CFALSE肺 荐沥秦具茄促.
    static CBOOL bInit = CTRUE;
    U32 i;

    if( CFALSE == bInit )
    {
        for( i=0; i < NUMBER_OF_I2C_MODULE; i++ )
        {
            __g_ModuleVariables.pRegister = CNULL;
        }

        bInit = CTRUE;
    }

    return CTRUE;
}

整个人都思密达了。。但是__g_ModuleVariables.pRegister结构体 最后无非也就是注册这个驱动各个参数
    struct  NX_I2C_RegisterSet
    {
        volatile U32 ICCR;                  ///< 0x00 : I2C Control Register
        volatile U32 ICSR;                  ///< 0x04 : I2C Status Register
        volatile U32 IAR;                   ///< 0x08 : I2C Address Register
        volatile U32 IDSR;                  ///< 0x0C : I2C Data Register
        volatile U32 ICLC;                       ///< 0x10 : I2C Line Control Register
    };
好像更复杂一些,但是似乎还是差不多的了。好吧 ,这只是个初始化,似乎难的在后面呢。


写的有点乱,这个是三星给的驱动程序,内核里还有总线的驱动程序。我也不知道怎么分开来说,算了,还是先说低版本内核的东西吧,等我把新内核整明白了再来改。。。大家仅仅做个参考就好。下面是我韦东山大神画的。。我的笔记大家可以忽略。。
KSA~VF4S@MI4Q_40]5F(C%P.png IMG_20160526_183313.jpg
艾玛,这篇帖子我从早晨9点开始写的。。一直写到晚上6点了。。我的天哪,菜鸟就是菜鸟,明天或者今天晚上,把新内核和4418的驱动研究明白一些之后和大家分享,有驱动方面的大神的话,小弟在这里求教了,自己整好费劲啊,在这里献丑了。
本来输入子系统就整得我头大了,现在这个I2C简直不要太凶残,大家给我点时间,我相信会更好的。算是开始结项的第一个帖子,磕磕绊绊,真的很难,今天就到这。。有想交流的,请加我的QQ:504777097

IMG_20160526_113603.jpg

评分

参与人数 1积分 +10 收起 理由
elecfans跑堂 + 10 楼主写的字 哈哈 我就不吐槽了 和我差不.

查看全部评分

实习版主

发表于 2016-5-26 20:06:47  
哈哈,加油,你会成功的,坚持就会成功
回复

点赞

技术员

发表于 2016-5-26 20:38:44    楼主|

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
3guoyangyang7 发表于 2016-5-26 20:06
哈哈,加油,你会成功的,坚持就会成功

多谢                                
回复

点赞

技术员

发表于 2016-5-27 15:49:32  
我是看着标题进来的,逗逼这是完成了试用项目了吗?
回复

点赞

技术员

发表于 2016-5-27 15:51:00  
磕磕碰碰才会有成长哦!楼主加油!
回复

点赞

技术员

发表于 2016-6-14 09:21:18    楼主|
新疆切糕 发表于 2016-5-27 15:49
我是看着标题进来的,逗逼这是完成了试用项目了吗?

没呢。。。                              
回复

点赞

助理工程师

发表于 2016-6-20 06:53:19  
谢谢分享,好东西一起来分享!
回复

点赞

技术员

发表于 2016-7-24 20:35:11  
亲 数据手册上AD转换对应的io引脚是的多少啊 我为什么没找到
回复

点赞

技术员

发表于 2016-12-30 15:02:56    楼主|
吴迪963 发表于 2016-7-24 20:35
亲 数据手册上AD转换对应的io引脚是的多少啊 我为什么没找到

没有。。需要外挂
回复

点赞

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

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

小黑屋|手机版|Archiver| 电子发烧友 ( 粤ICP备14022951号-2 )     

GMT+8, 2017-7-25 06:38 , Processed in 0.109105 second(s), 18 queries , Memcache On.

微信扫描
快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

DFRobot专区

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区