TDA4VM-LINUX-CSI-9296-9295-camera架构驱动分析和详细使用

前言

TI在LINUX-SDK-8.01版本后才开始支持Linux V4L2接入CSI2,所以在使用前尽量先用RTOS-SDK接入CSI2的接口camera,正常工作后开始进行Linux V4L2的开发。
LINUX-SDK的安装使用,参考另一篇文档《优雅的玩转TDA4VM》
在TDA4VM中,一个CSI接口是默认启动16个虚拟通道的。

硬件架构

系统 硬件架构
Linux CSI2RX子系统由3个IP组成:Cadence DPHY,Cadence CSI2RX桥接, TI CSI2RX DMA 封装器
RTOS CSI2RX子系统由2个IP组成:Cadence DPHY,CSI2RX_drive

image.png
CSI2RX 子系统支持以下功能:

  • 符合 MIPI CSI v1.3 标准
  • 每个输入最多支持 16 个虚拟通道(部分 MIPI CSI v2.0 功能)。
  • 每通道数据速率高达 2.5 Gbps(线速)。
  • 支持 1、2、3 或 4 条数据通道连接到DPHY_RX。
  • 可编程格式包括 YUV420、YUV422、RGB、Raw 等。

驱动程序

该驱动程序基于 Video 4 Linux 2 (V4L2) API。它已实现 根据捕获设备的 V4L2 标准。司机只是 负责对用于捕获的SoC组件进行编程,例如DPHY,CSI-Bridge,DMA。对于相机传感器等外部设备,单独的 V4L2 子设备需要驱动程序。

link_freq计算

V4L2_CID_LINK_FREQ

数据总线频率。数据总线频率与媒体总线像素代码、总线类型(每个样本的时钟周期)一起定义了像素阵列中的像素速率(V4L2_CID_PIXEL_RATE),如果设备不是图像传感器,则可能定义其他像素速率()。帧速率可以通过像素时钟、图像宽度和高度以及水平和垂直消隐来计算。虽然像素速率控制可以在包含像素数组的子开发中以外的其他位置定义,但无法从该信息中获取帧速率。这是因为只有在像素阵列上,才能假设垂直和水平消隐信息是精确的:像素数组中不允许其他消隐。通过选择所需的水平和垂直消隐来选择帧速率。此控件的单位是 Hz。

V4L2_CID_PIXEL_RATE

子开发源垫中的像素率。此控件是只读的,其单位为像素/秒。Ex mipi 总线:pixel_rate = link_freq * 2 * nr_of_lanes / bits_per_sample位深
mipi_link_freq = wh * fps * bits_per_sample / nr_of_lanes / 2
pixel_clk_rate = w
h * fps

CSI2RX寄存器调试

使用devmem2工具依次查看对应CSI2RX的寄存器,从而判断硬件是否有数据输入。

DPHY正常状态

0x04590B00(DPHY_RX_VBUS2APB_PCS_TX_DIG_TBIT0) = 0x000001ef
0x04504040(CSI_RX_IF_VBUS2APB_DPHY_LANE_CONTROL) = 0x0001F01F
0x04504048(CSI_RX_IF_VBUS2APB_DPHY_STATUS) = 0x00333306/0x00222206
0x04504060(CSI_RX_IF_VBUS2APB_INTEGRATION_DEBUG) = 0x10000000 // WAIT_FOR_PACKET
0x04504100(CSI_RX_IF_VBUS2APB_STREAM0_CTRL) = 0x00000001
0x04504104(CSI_RX_IF_VBUS2APB_STREAM0_STATUS) = 0x80000111
0x04580C10 ( DPHY_RX_VBUS2APB_ISO_PHY_ISO_CL_CNTRL_L ) = 0x00000029 //normal

寄存器配置

max9296

//使能
max9296_write(priv, 0x0313, 0x02);
//关闭
max9296_write(priv, 0x0313, 0x00);
    max9296_write(priv, 0x0010, 0x31);
    msleep(100);
    max9296_write(priv, 0x0313, 0x00);
    msleep(1);
    max9296_write(priv, 0x048B, 0x07);
    msleep(1);
    max9296_write(priv, 0x048D, 0x1E);
    msleep(1);
    max9296_write(priv, 0x048E, 0x1E);
    
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
TDA4-VH是一款高级驾驶员辅助系统 (ADAS) 平台的芯片。该芯片是德州仪器 (TI) 公司推出的一款强大的处理器。TDA4-VH芯片集成了多核 ARM Cortex-A72 和 ARM Cortex-R5F 处理器,以及一块高性能的 3D 图像处理单元 (IMGPU)。该芯片的强大处理能力和功能架构使其成为实现先进驾驶员辅助功能的理想选择。 具体而言,TDA4-VH芯片具备以下主要特性: 1. 处理能力强大:芯片内部集成的多核 ARM Cortex-A72 和 Cortex-R5F 处理器可提供高性能和低延迟的计算能力,以满足实时辅助驾驶系统对于处理速度的需求。 2. 图像处理能力卓越:芯片内置的 3D 图像处理单元 (IMGPU) 可以进行实时的图像处理和计算,支持复杂的视觉算法和图像检测技术。这使得TDA4-VH芯片在感知和识别车辆和行人等目标方面具有出色的性能。 3. 多种外设接口:芯片还集成了多种外设接口,例如Ethernet、CAN和PCIe等,以便与其他系统组件进行高效连接和通信。 4. 安全和可靠性:TDA4-VH芯片具备先进的安全和可靠性功能,可以保护驾驶员和乘客的安全。它支持硬件加密和身份验证功能,以及故障检测和恢复机制,提供高度安全和可靠的ADAS解决方案。 综上所述,TDA4-VH芯片是一款功能强大、处理能力和图像处理性能卓越的ADAS平台芯片。它的优秀特性使其成为实现先进驾驶员辅助系统的首选,有助于提升驾驶安全性,并为汽车制造商和技术开发者带来更多的创新和应用机会。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

踏马潜行

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

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

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

打赏作者

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

抵扣说明:

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

余额充值