海思3518E开发笔记4.3——sensor接口引脚复用设置

为什么要引脚复用

CPU的引脚数量有限,但外设所需要的引脚非常多。不管是简单的单片机还是复杂的CPU,引脚的复用都是不可避免的。

复用需要用软件去设置,让复用工作在某种特定的条件下,一般是有一些寄存器。

每个平台的复用方法不尽相同,本片分析海思平台的复用方法

但复用的思路都是一样的

  • 查看引脚对应框图
  • 找到相应设置的寄存器
  • himm工具

如果引脚较少,四五个功能都复用在同一个引脚上,这个时候就会很麻烦。

这个时候就需要去查看引脚定义的框图,CPU的定义手册里都会给出这么一张图。这样就能知道设计的功能和物理的引脚是怎么对应的。
比如能够了解,谁和谁是兼容,谁和谁是抵触的。

看完之后,就去找控制引脚复用的寄存器,比如一些三星的板子,设计是在ctl寄存器里放几个位来进行复用;而海思有一个专门的控制复用的寄存器。各个平台有差异,需要看手册

找到对应寄存器后,需要有读写的方法去配置寄存器。如何读取寄存器,不同平台也是不一样的。有的是用C写代码,有的可能是配置脚本,海思的平台提供了一个himm的工具来进行操作。

查看引脚定义框图

有的平台会把引脚定义框图放在data sheet里边,海思放在了IP Camera Soc用户指南.pdf当中
在这里插入图片描述
先查看芯片手册
在这里插入图片描述
比如R5是引脚的物理名称,MIPI_CKM/VI_DATA3是会被复用的网络名称

再看复用图
C4是被用作JTAG_TDO,当然也会有其他功能,写在了其他地方
有些其他平台的复用图写的很清晰,将一个引脚的复用写的很清晰,海思写的不是特别好
在这里插入图片描述

找到相应设置寄存器

在这里插入图片描述
海思的文档在这一方面写的不是很清晰
在上面比较难看出一个引脚一共复用了哪些功能

用寄存器控制复用功能,无非就是先找到寄存器,再找到寄存器的位定义
在这里插入图片描述
就以这个首地址为例,控制SENSOR_CLK的复用
在这里插入图片描述
可以看到只有1位有用,其他都作为保留
说明这个引脚只有两个功能

这里可以看出海思的逻辑是先给管脚起一个名字,比如这个管脚的名字是SENSOR_CLK
在这里插入图片描述
然后再查看其对应寄存器,才能知道其他复用的功能

海思这样的设计是因为,海思是一个专用性非常强的平台,每个管脚怎么用都是设计好的,在设计的时候就已经决定了用什么功能。

himm

himm工具在sdk编译的时候就已经生成了,生成之后会cp到我们的根文件系统的环境中

load3518e中就已经调用himm做了很多事情
在这里插入图片描述
这个工具一看就知道很好用
第一个参数是寄存器地址,第二个参数是要写的值

load3518e中,比较重要的是insert_sns函数,sns就是sensors
如上图,这些配置寄存器的操作就是对引脚的配置,#后面的注释都可以在对应sensor的原理图中找到相应的引脚,如下图
在这里插入图片描述
下图是hi3518E的引脚图,如果接入的sensor是MIPI接口,那么就需要把它设置为MIPI
在这里插入图片描述
这里就可以看出,如果使用的是一个新的sensor,那么还是有很多事情要做的。

以AR0130分析sensor引脚复用

在这里插入图片描述
再以这张图为例进行分析
第一个配置的寄存器基地址为0x200f0040
在这里插入图片描述
查看相关手册
在这里插入图片描述
我们将0x2写入寄存器,让其工作在I2C状态下
在这里插入图片描述

再来分析一组
007c,用于配置VI_DATA13

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值