全志T507-H技术帖 | 去掉IO扩展芯片后保留扩展引脚功能的实现方法

飞凌嵌入式推出的OKT507-C作为一款广受欢迎的开发板拥有丰富的功能接口,而实际上OKT507-C开发板的CPU引脚资源是比较紧缺的,那么它究竟是如何提供如此丰富的接口资源的呢?答案就是IO扩展芯片——TCA6424A。

这是一个24 位 I2C 和系统管理总线 (SMBus), 输入输出(I/O) 扩展器有中断输出、复位和配置寄存器。为了满足更多客户需求,在降低成本的同时尽可能保留更多功能,飞凌嵌入式为大家提供了OKT507-C去掉IO扩展芯片后保留扩展引脚功能的实现的方法。

在这里插入图片描述

扩展芯片上的IO口被WiFi、蓝牙、MIPI摄像头TP2854、DVP摄像头和line-out口电源使能引脚引用,若想保留这些功能,就要使用核心板其他可复用为这些功能的引脚。

本文将选用OKT507-C开发板的LCD功能引脚来重新复用为这些功能,用户可根据自己的实际功能需求情况选择。方法参考如下:

一、选用引脚:
对应功能引脚如下表所示:

在这里插入图片描述

二、关掉gpio_ext及复用引脚原来功能

修改设备树,将LCD功能关闭后,该组引脚即可用作普通的GPIO。修改路径如下:
vi OKT507-linux-sdk/kernel/linux4.9/arch/arm64/boot/dts/sunxi/OKT507-C Common.dtsi

  1. 关掉IO扩展芯片功能:

在这里插入图片描述

  1. 关闭需要复用引脚功能:
    关闭LCD功能,本文以选用LCD上的引脚用作功能复用,用户需根据实际情况关闭所用引脚功能。
    将lcd_used 改为 0

在这里插入图片描述

lcd0节点添加 status = “disabled”;

在这里插入图片描述

三、更改设备节点中引用的GPIO

  1. MIPI-5640引脚配置:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

在这里插入图片描述

  1. TP2854引脚配置:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common-TP2854M.dtsi

在这里插入图片描述

需要注意的是,MIPI5640和TP2854共用一个MIPI接口,两个功能都用到了MIPI_PWRDN引脚,实际使用时只能选择一种功能,因此本文在两个功能测试时选的同一个引脚。

  1. DVP-5640引脚配置:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

在这里插入图片描述

  1. WiFi引脚配置:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

在这里插入图片描述

  1. 蓝牙引脚配置:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

在这里插入图片描述

  1. 音频引脚:
    路径如下:
    vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

在这里插入图片描述

以上就是OKT507-C开发板去掉IO扩展芯片后保留扩展引脚功能的实现的方法,本文使用的思路和方法仅供参考使用,其它Arm开发板虽然芯片不同,但思路和方法有很多的共性,希望对您在板卡的使用中能够有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/124785.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第三方商城对接项目(202311)

文章目录 1. 项目背景和目标2. 项目成果3. 项目经验总结4. 展望和建议 1. 项目背景和目标 竞标成功接口对接第三方商城,商品,订单,售后尽快完成对接 2. 项目成果 完成整个项目功能流程对接新业务功能移交项目等业务部门使用 3. 项目经验总…

MySQL中表的增删查改(进阶),超详细!

目录 一、数据库的约束 1、约束类型 2、NULL约束 3、UNIQUE:唯一约束 4、DEFAULT:默认值约束 5、PRIMARY KEY:主键约束(主键只能定义一个,NOT NULL 和 UNIQUE 的结合) 6、FOREIGN KEY:外键约…

C++之List容器

1.list容器简介 list是序列容器,允许在序列中的任何位置执行固定O(1)时间复杂度的插入和删除操作,并在两个方向进行迭代。list容器是一个双向循环链表。 list容器与vector容器区别: ①list中空间是随机的,通过指针域保存下一个成员…

【C++】类和对象的关系,对象的存储方式以及对象内存的计算

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Window10安装Docker

文章目录 Window10安装Docker前提条件Hyper -VWSL 2.0 安装包下载执行安装包更新 Window10安装Docker 前提条件 Hyper -V 如何启用 WSL 2.0 安装包下载 官网地址 下载后: 执行安装包 wsl --update等得有点久 重新打开 拉取一个helloworld镜像 说明已经…

【CocosCreator】利用遮罩Mask实现单边开门效果

如果对前端八股文感兴趣,可以留意公重号:码农补给站,总有你要的干货。 实现思路 首先新建一个新的遮罩节点(全部采用默认属性),将其大小设为门的大小,然后将其摆放到门所在的位置,如…

MATLAB_5MW风电永磁直驱发电机-1200V直流并网MATLAB仿真模型

仿真软件:matlab2016b 风机传动模块、PMSG模块、蓄电池模块、超级电容模块、无穷大电源、蓄电池控制、风机控制、逆变器控制等模块。 逆变器输出电压: 混合储能系统SOC: 威♥关注“电击小子程高兴的MATLAB小屋”获取更多精彩资料&#xff0…

单调栈【2023年最新】

做题的时候看到了单调栈,但是不知道是个什么玩意,记录一下吧。 单调栈含义 单调栈是一种特殊的数据结构,用于解决一些与单调性相关的问题。它的基本含义是在栈的基础上,维护一个单调递增或单调递减的栈。 在单调递增栈中&#…

SpringCloud-Gateway无法使用Feign服务(2021.X版本)

Spring Cloud Gateway 2021.x版本,无法使用Feign调用其他服务接口。 问题原因: 在官网的 issue 里面找到了相关的问题。 How to call another micro-service on GatewayFilterFactory ? Issue #1090 spring-cloud/spring-cloud-gateway GitHubHel…

QT QSplitter

分裂器QSplitter类提供了一个分裂器部件。和QBoxLayout类似,可以完成布局管理器的功能,但是包含在它里面的部件,默认是可以随着分裂器的大小变化而变化的。 比如一个按钮放在布局管理器中,它的垂直方向默认是不会被拉伸的,但是放到分裂器中就可以被拉伸。还有一点不…

OV5640的参数与配置方法

分辨率和速率(FPS) 寄存器配置 I/O 板的驱动能力和方向控制 system clock control OV5640 PLL 允许输入时钟频率范围为 6~27 MHz,最大 VCO 频率为 800 MHz。 MipiClk 用于 MIPI,SysClk 用于图像信号处理 (ISP) 模块的内部时钟。 …

TensorFlow(1):深度学习的介绍

1 深度学习与机器学习的区别 学习目标:知道深度学习与机器学习的区别 区别:深度学习没有特征提取 1.1 特征提取方面 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识深度学习通常由多个层组成,它们通常将更简…

Redis系列之实现分布式自增主键

软件环境 JDK 1.8 SpringBoot 2.2.1 Maven 3.2 Mysql 8.0.26 redis 6.2.14 Mybatis Plus 3.4.3.4 开发工具 IntelliJ IDEA smartGit 一、实现原理 使用Redis来实现分布式的主键自增主要是依赖于Redis的INCR命令,调用INCR命令的对应key,其数值…

centos7部署Canal与Canal集成使用

1、简介 canal [kə’nl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigge…

Flink架构

1、Apache Flink集群的核心架构: 1、client(作业客户端):提交任务的地方叫做客户端 2、JobManager(作业管理器):作用是用于管理集群中任务 3、TaskManager(任务管理器)&a…

k8s 1.28安装

容器运行时,containerd 按照官方的指导,需要安装runc和cni插件,提示的安装方式,有三种: 二进制安装包源码apt-get 或 dnf安装 我们这里选用第三种,找到docker官方提供的安装方式 ubuntu-containerd # A…

Elasticsearch:使用你的 RAG 来进行聊天

什么是人工智能中的检索增强生成(RAG)? 检索增强生成 (RAG),与你的文档聊天的超级英雄,架起信息检索和文本生成世界的桥梁! 这就像福尔摩斯和莎士比亚联手解决需要大量知识的复杂任务。 RAG 突然介入&…

网络编程套接字(3)——协议定制 | 序列化与反序列化

文章目录 一.认识“协议”1.协议的概念2.结构化数据的传输3.序列化和反序列化 二. 网络版计算器1.服务端2.协议定制(1) 网络发送和读取的正确理解(2) 协议定制的问题 3.客户端4.代码 三.Json实现序列化反序列化1.简单介绍2.使用 一.认识“协议” 1.协议的概念 协议&#xff0c…

Pytest插件

官方文档:API Reference — pytest documentation BaseReport 定义Case结果输出 >>> from _pytest.reports import TestReport >>> test TestReport(1,1,1,pass,,running) >>> print(dir(test)) [__annotations__, __class__, __delatt…

02-MySQL-基础-增删改查

一、DDL 定义数据库对象(数据库,表,字段) ①:数据库操作 01. 查询 1. 查询所有数据库 show databases;2. 查询当前使用的数据库 SELECT database();02. 使用 USE sys;03. 创建 CREATE DATABASE [IF NOT EXISTS]数据…