Jetson-nano ADS1015驱动

1,硬件介绍

硬件环境:jetson nano 

硬件外设:ti-ads1015

连接方式:

ADS1015 连接nano
ALERT中断引脚------J41 Header Pin 7
SDA IIC数据线------J41 Header Pin 3
SCL IIC时钟线 ------J41 Header Pin 5

2,ADS1015简介

ADS1015是TI公司生产的一款AD转换芯片,采用IIC串口协议通信,4个转换通道,12位转换精度,最大转换速度为3.3kSPS,内置增益放大器,用户可以根据自己所需设置增益。

寄存器介绍


ADS101x有四个寄存器,可以使用地址指针寄存器通过I2C接口访问它们。Conversion寄存器包含最后一次转换的结果。Config寄存器用于修改ADS101x的工作模式和查询设备状态。另外两个寄存器Lo_thresh和Hi_thresh用于设置比较器函数的阈值,在ADS1013中不可用。

Conversion寄存器

Config寄存器

ADS1015的I2C连接原理如下图所示:

3,驱动修改

3.1,nano 资源路径

资源地址:https://developer.nvidia.com/embedded/linux-tegra-r3274

3.2,修改设备树

hardware\nvidia\platform\t210\porg\kernel-dts\tegra210-p3448-0002-p3449-0000-b00.dts

配置说明:通道根据具体需求选配,引脚根据实际修改,此处使用J41Pin7

   i2c@7000c400 {
        status = "okay";
        ads1015@48 {
            compatible = "ti,ads1015";
            reg = <0x48>;
            reset-gpio = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
            //reset-active-low;
            //reset-delays-us = <0 50000 50000>;
            #address-cells = <1>;
            #size-cells = <0>;
            status = "okay";
            ti,gain = <1>;
            ti,datarate = <4>;
            //channel@0 {
            //    reg = <0>;
            //    ti,gain = <1>;
            //    ti,datarate = <4>;
            //};

            //channel@1 {
            //    reg = <1>;
            //    ti,gain = <1>;
            //    ti,datarate = <4>;
            //};

            //channel@2 {
            //    reg = <2>;
            //    ti,gain = <1>;
            //    ti,datarate = <4>;
            //};

            //channel@3 {
            //    reg = <3>;
            //    ti,gain = <1>;
            //    ti,datarate = <4>;
            //};
        };
    };

3.3, 驱动添加

修改.config

CONFIG_TI_ADS1015=y

3.4,驱动编译

jetson nano 的内核编译踩了不少坑,记录一下:

步骤如下:

1.下载交叉编译工具

这里的网址来自官网,可以会更新,如果下载不了,需要去官网下载。

​test@ubuntu:~$ wget http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

2.解压工具

可以放在其他位置,现放在home目录下:

test@ubuntu:~$ tar -xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

3.下载源码

test@ubuntu:~$ wget https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.4/sources/t210/public_sources.tbz2


4.解压源码

test@ubuntu:~$ tar -xjf public_sources.tbz2

5.进入源码目录

test@ubuntu:~$ cd Linux_for_Tegra/source/public/

6.解压kernel

/home/Linux_for_Tegra/source/public$ tar -xjf kernel_src.tbz2

7.安装工具

test@ubuntu:~$ sudo apt install build-essential bc

8.设置内核输出目录

test@ubuntu:~$ export TEGRA_KERNEL_OUT=/home/clb/Linux_for_Tegra/source/public/kernel/kernel-4.9/output

9.设置交叉编译工具的环境变量

test@ubuntu:~$ export CROSS_COMPILE=/home/test/pro/cross_compile/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

10.设置环境变量

这一步必须加

test@ubuntu:~$ export LOCALVERSION=-tegra

11.进入内核目录

test@ubuntu:~$ cd kernel/kernel-4.9/

12.新建内核输出目录

/home/test/Linux_for_Tegra/source/public/kernel/kernel-4.9$ mkdir -p $TEGRA_KERNEL_OUT

13.生成config文件

/home/test/Linux_for_Tegra/source/public/kernel/kernel-4.9$ make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig

14.编译内核

/home/test/Linux_for_Tegra/source/public/kernel/kernel-4.9$ make ARCH=arm64 O=$TEGRA_KERNEL_OUT

内核编译完成以后会在设置的输出目录下生成Image文件TEGRA_KERNEL_OUT/arch/arm64/boot/Image以及DTB TEGRA_KERNEL_OUT/arch/arm64/boot/dts/

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值