首页 > 其他分享 >基于I.MX6UL平台的ADS1256驱动开发二.硬件连接及设备树

基于I.MX6UL平台的ADS1256驱动开发二.硬件连接及设备树

时间:2022-12-05 22:11:09浏览次数:42  
标签:pinctrl 接口 ads1256 硬件 MX6UL GPIO ADS1256 设备

在前面一章我们了解了ADS1256在通讯中的时钟要求和指令,我们这一章结合主机部分完成Linux下的设备树信息,然后完成硬件的连接。

硬件连接

在上一章我们说过,ADS1256作为SPI通讯的从机部分,在完成基础功能的条件下和主机之间有5条接口需要连接,然后有些接口需要保持高电平

这里我们通过软件模拟SPI接口的形式,将IO复用为GPIO,主要使用GPIO1组的5个IO口,后面的括号里是开发板的IO接口

 

上面的图中左边为接口的原理图,右边是实际开发板上的接口。

 设备树信息

在完成硬件连接以后,我们要根据实际接口使用情况来更新设备树信息

GPIO节点

首先是GPIO的复用节点

 1 &iomuxc {
 2     pinctrl-names = "default";
 3     pinctrl-0 = <&pinctrl_hog_1>;
 4     imx6ul-evk {
 5         pinctrl_enet1_reset: enet1resetgrp {
 6             fsl,pins = <
 7                 /*下面的设备信息会和LED的GPIO冲突*/
 8                 /*MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0 */
 9             >;
10         };
11 
12         pinctrl_enet2_reset: enet2resetgrp {
13             fsl,pins = <
14                 MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x10B0  
15             >;
16         };
17 
18         pinctrl_hog_1: hoggrp-1 {
19             fsl,pins = <
20                 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19    0x17059 /* SD1 CD */
21                 MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT    0x17059 /* SD1 VSELECT */
22             >;
23         };
24 
25         /*ads1256软件SPI*/
26         pinctrl_ads1256: ads1256grp{
27             fsl,pins = <
28                 /*3个输出功能引脚*/
29                 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x10B0        /*CS*/ 
30                 MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21     0x10B0        /*CLK*/
31                 MX6UL_PAD_UART2_CTS_B__GPIO1_IO22       0x10B0        /*MOSI*/
32                 /*2个输入功能引脚*/
33                 MX6UL_PAD_UART2_RTS_B__GPIO1_IO23         0xF080        /*MISO*/
34                 MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24        0xF080        /*DRDY*/
35             >;
36         };
37 ........
38 ........
39 ........
40 ........

因为我们使用的是Soc上4组GPIO的GPIO1组,设备树中GPIO复用信息应该在IOMUX下完成。新添加的信息从26行开始,将3组GPIO接口复用为IO,注意的是29~31行引脚为输出功能,33、34两行为输入引脚,IO不同的工作方向对应的值是不同的。

ADS1256节点

ADS1256的设备节点直接放在开发板设备树根节点下

 1     /*ads1256软件模拟SPI*/
 2     ads1256{
 3         compatible = "ads1256";
 4         pinctrl-name = "pinctrl_ads1256";
 5         ads1256-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH        /*CS*/
 6                         &gpio1 21 GPIO_ACTIVE_HIGH        /*CLK*/
 7                         &gpio1 22 GPIO_ACTIVE_HIGH        /*MOSI*/
 8                         &gpio1 23 GPIO_ACTIVE_HIGH        /*MISO*/
 9                         &gpio1 24 GPIO_ACTIVE_HIGH>;    /*DADR*/
10         status = "okay";
11     };

设备数信息没什么可说的,首先是compatible用来匹配驱动

pinctrl-name是和GPIO配置的信息进行匹配。

后面的ads1256-gpios是gpio子系统的配置信息

这样就完成了采集卡的外设信息在设备树文件中的更新。这些工作完成后要查看一下有没有哪个设备使用了这些GPIO接口,比如CS功能是用到GPIO1的IO03,我们需要在整个设备树中查一下

MX6UL_PAD_GPIO1_IO03

 以及

&gpio1 3

就像这样

 或者

这种情况说明有些设备已经占用了这个接口,查下这个设备是什么,如果是不重要的外设的话把这条命令屏蔽掉。 (我用到这几个接口都是不重要的,直接屏蔽就可以了)

完成设备树信息以后make一下设备树

make dtbs

使用新的设备树文件启动系统,可以查看一下设备

 

 打印一下name属性,看看和设备树节点里定义的是否相同。

上面的工作完成后,我们就可以开始移植驱动了!

 

标签:pinctrl,接口,ads1256,硬件,MX6UL,GPIO,ADS1256,设备
From: https://www.cnblogs.com/yinsedeyinse/p/16951274.html

相关文章

  • TMC4671+TMC6200---Trinamic直流无刷(BLDC)硬件FOC解决方案
    1、正压呼吸机解决方案呼吸机的通气舒适度及静音性能是其重要指标。另外,睡眠呼吸机的功能之一是在系统发生异常时,能及时发现并立即采取适合的保护措施,其核心要点即是呼吸......
  • 服务器硬件配置
    7.2.2硬件7.2.2.1小规模并发场景² 并发环境说明中小企业小规模使用U8产品,总并发人数在10人左右,最多不超过15人。² 推荐硬件配置在此中情况下数据库服务器和应用服务器......
  • Linux下查看电脑硬件及系统信息
    一、查看CPU信息1.查看CPU的统计信息:       lscpu2.查看CPU的详细信息:       cat/proc/cpuinfo二、内存信息1.查看内存使用情况:       ......
  • 一根串口线畅玩imx6ul开发板
    Linux最近在学习正点原子IMX6ULL开发板,非常想跨入Linux开发的行列。学习知道如何搭建开发环境,也知道了原来交叉编译是在x86上进行arm架构程序的编译(原本都是在ide中开发m......
  • 利尔达UIS8811模组硬件
    1. 支持的BAND是5和8  最大耦合损耗MCL为164dB,什么意思2.模组硬件简单,主要是串口,ADC,GPIO,I2C,唤醒引脚,SIM卡 3. PSM功能主要是T3324定时器,和T......
  • 硬件路灯第一期CPU篇
    CPU,centralprocessingunit,也就是中央处理器,如果计算机是一个人的话,CPU就是他的大脑我们近下来会科普CPU的几大参数1.主频假设CPU是建筑工地的话,主频相当于工人们搬砖的......
  • 人工智能如何让硬件发展的更好
    多年来,计算机硬件一直是一个不太活跃的市场。占主导地位的x86微处理器架构已经达到了通过小型化可以实现的性能增益的极限,因此制造商主要关注将更多的内核封装到芯片中。对......
  • python基础:计算机五大组成部分详解、计算机三大核心硬件、操作系统、编程与编程语言
    目录计算机五大组成部分详解计算机三大核心硬件操作系统编程与编程语言编程语言发展史编程语言的分类python解释器环境变量运行python程序的三种方式计算机五大组成部分详......
  • Centos常用硬件查看命令
    1、查看硬盘信息查看磁盘使用情况可以使用【lsblk】【fdisk-l】【df-h】等命令进行查看,每个命令有多种使用方法,这里只介绍最基本的使用方法。查看磁盘和分区分布,可以......
  • 电梯物联网网关软硬件一体化解决方案
    电梯物联网监测平台,基于边缘计算智能监测设备全天候、全自动监测电梯的运行。通过采集电梯实时运行传感数据,建立运行状态关键数据标准,基于AI机器学习算法,采用大数据分析计算......