基于Mcrosemi M2S090T FPGA 的 imx991 SWIR的SLVS解码(一)

news2024/11/15 11:02:37

目录

一、平台介绍

二、器件的简介

1、imx991 SWIR Image Sensor

2、M2S090T

三、工程

1、imx991寄存器配置


一、平台介绍

工程开发平台:Libero Version:20231.0.6 Release:v2023.1

文本编辑器:Sublime text3 

二、器件的简介

1、imx991 SWIR Image Sensor

  • Description :

The IMX991-AABA-C is a diagonal 4.1 mm (Type 1 / 4) CMOS active pixel type solid-state image sensor with a square pixel array and 0.33 M effective pixels. This chip features a global shutter with variable charge-integration time. This chip has a wide waveband (0.4 μm to 1.7 μm) with high sensitivity, high resolution, low dark current and low power consumption.   

  • Features 

◆ CMOS active pixel type dots 
◆ Visible + SWIR wideband sensor (0.4 μm to 1.7 μm) 
◆ Built-in timing adjustment circuit, H/V driver and serial communication circuit 
◆ Global shutter function 
◆ Input frequency 
37.125 MHz / 74.25 MHz / 54 MHz 
◆ Number of recommended recording pixels: 640 (H) × 512 (V) approx. 0.33 M pixels 
Readout mode 
All - pixel scan mode   
Vertical / Horizontal 1 / 2 Subsampling mode 
ROI mode 
Vertical / Horizontal‐Normal / Inverted readout mode 
◆ 8-bit / 10-bit / 12-bit A/D converter 
◆ Readout rate 
Maximum frame rate in 
All - pixel scan mode: 8bit : 258.80 frame/s, 10 bit: 240.61 frame/s, 12bit: 137.39 frame/s 
◆ Variable-speed shutter function (resolution 1 H units) 
◆ PGA function 
        0 dB to 18 dB: Analog Gain (0.1 dB step) 
        18.1 dB to 42 dB: Analog Gain: 18 dB + Digital Gain: 0.1 dB to 24 dB (0.1 dB step) 
◆ I/O interface 
SLVS (2 ch / 4 ch switching) output 
◆ Recommended exit pupil distance: –100 mm to –∞ 
◆ Built-in digital thermometer 
◆ Built-in thermoelectoric cooler 
 

2、M2S090T

M2S090T是Microsemi公司Smartfusion系统的带SOC的FPGA,其架构如下图所示。

        M2S090 内部包括主要分两部分,MSS和fabric,其中MSS即为一个cortext M3 ARM核和一些外围接口,fabric部分即为FPGA的逻辑部分。两部分之间可以通过AHB、APB进行通信,另外还有相互的中断信号可用。

        下面就是Cache Controller Interfaces to Cortex-M3 Processor, AHB Bus Matrix, and MDDR Bridge

三、工程

本工程配置imx991 sensor 为主模式,SLVS 4channel,8bit数据,all scan,656*545分辨率

1、imx991寄存器配置

This sensor has a total of 5376 bytes of registers, composed of registers with address 00h to FFh that correspond to Chip ID = 02h to 0Ch, 10h to 19h. Use the initial values for empty address. Some registers must be change from the initial values, so the sensor control side should be capable of setting 5376 bytes.

配置寄存有两种总线:IIC和SPI,任选其一,本工程使用IIC总线,上图为寄存器说明的一部分,IIC总线和SPI总线操作地址有所不同。SPI总线时需要先chip ID然后再address;IIC总线就直接address。

工程里定义寄存器值取一部分,如下图所示

顶层接口的定义如下图所示

以下是IIC接口的例化

//====================================================================================
//
//-----接口总线
//
// IIC or SPI;  
//
//通过宏定义文件define.v内的宏变量来控制,当前使用IIC
//

	wire [1:0] isStart;
	wire [15:0] iic_rAddr;
	wire [7:0]  iic_WrData;
	assign isStart    = (sen_reg_sta==4'h0 || sen_reg_sta==4'h2 )? ( (Start_Sig == 1)? ((r_rw==1)?2'b10 : 2'b01) : 2'b00 ) : ((Start_Sig2 == 1)? ((r_rw2==1)?2'b10 : 2'b01) : 2'b00 );
	assign iic_rAddr  = (sen_reg_sta==4'h0 || sen_reg_sta==4'h2 )? rAddr   : conf_addr ;
	assign iic_WrData = (sen_reg_sta==4'h0 || sen_reg_sta==4'h2 )? WrData  : conf_data ;

	iic_bus U_iic
	 (
	      .CLK      ( i_clk      ),
		  .RSTn     ( i_rst_n    ),
		  .Start_Sig( isStart    ),
		  .Addr_Sig ( iic_rAddr  ),
		  .WrData   ( iic_WrData ),
		  .RdData   ( RdData     ),
		  .Done_Sig ( Done_Sig   ),
	      .SCL      ( o_i2c_scl  ),
		  .SDA      ( io_i2c_sdi )
	 );


	assign o_spi_cs   = 1;

-----------------------------------------------------------------------------------------------------------------

凡有FPGA方面开发需求的朋友,欢迎发信息联系交流合作!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8s调试积累

文章目录 一、K8S 集群服务访问失败?二、K8S 集群服务访问失败?三、K8S 集群服务暴露失败?四、外网无法访问 K8S 集群提供的服务?五、pod 状态为 ErrImagePull?六、探测存活 pod 状态为 CrashLoopBackOff?七…

postman导入https证书

进入setting配置中Certificates配置项 点击“Add Certificate”,然后配置相关信息 以上配置完毕,如果测试出现“SSL Error:Self signed certificate” 则将“SSL certificate verification”取消勾选

【车载开发系列】Autosar DCM诊断管理模块

【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块一. DCM模块概念二. DCM模块与Autosar其他模块关系1)Dcm和PduR的交互2)Dcm和ComM模块的交互3)Dcm和Dem的交互4&a…

Maven(五)如何只打包项目某个模块及其依赖模块?

目录 一、背景二、解决方案三、补充3.1 提出疑问3.2 解答 一、背景 在 SpringCloud 微服务框架下,会存在多个模块。当我们需要对其中某一个服务打包的时候,需要将该服务依赖的模块一起打包更新,如果项目比较小的话我们可以直接将项目中的所有…

C++ memmove 学习

memmove&#xff0c;将num字节的值从源指向的位置复制到目标指向的内存块。 允许目标和源有重叠。 当目标区域与源区域没有重叠则和memcpy函数功能相同。 宽字符版本是wmemmove&#xff0c;安全版本加_s&#xff1b; #include "stdafx.h" #include<iostream&g…

Addressables(2) ResourceLocation和AssetReference

IResourceLocation var op Addressables.LoadResourceLocationsAsync(key); var result op.WaitForCompletion(); 把加载的Key塞进去&#xff0c;不难看出&#xff0c;IResourceLocation可以用来获得资源的详细信息 很适合用于更新分析&#xff0c;或者一些检查工具 AssetR…

three.js从入门到精通系列教程002 - three.js正交相机OrthographicCamera

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程002 - three.js正交相机OrthographicCamera</title><script src"ThreeJS/three.js"></script><script src&qu…

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介、安装、使用方法之详细攻略

LLMs之Vanna&#xff1a;Vanna(利用自然语言查询数据库的SQL工具底层基于RAG)的简介、安装、使用方法之详细攻略 目录 Vanna的简介 1、用户界面 2、RAG vs. Fine-Tuning 3、为什么选择Vanna&#xff1f; 4、扩展Vanna Vanna的安装和使用方法 1、安装 2、训练 (1)、使用…

IPv6--ACL6(IPv6访问控制列表--基本ACL6配置)

ACL基本原理 ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。 ACL的组成 ACL编号: 在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。 规则: 前面提到了,一个AC…

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。

选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。点击黑色小圆点,小圆点变绿,表示打断点成功。此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。点…

C语言之编译和链接

C语言之编译和链接 文章目录 C语言之编译和链接翻译环境和运行环境1 翻译环境编译1.1.1 预处理&#xff08;预编译&#xff09;1.1.2 编译第一步&#xff1a;词法分析第二步&#xff1a;语法分析第三步&#xff1a;语义分析 1.1.3 汇编 链接 2. 运行环境 翻译环境和运行环境 在…

Autosar信息安全入门系列01-SecOC基础介绍

本文框架 1. 概述2. SecOC基本概念2.1 SecOC是什么&#xff1f;2.2 新鲜度值与MAC值2.3 SecOC报文格式 3. SecOC报文发送及接收逻辑3.1 SecOC报文的发送3.2 SecOC报文的接收 1. 概述 本文为Autosar通信入门系列介绍&#xff0c;如您对AutosarMCAL配置&#xff0c;通信&#xf…

Vue中的日历组件 Calendar 实现 考勤打卡记录

日历组件 Calendar 可以自定义在页面添加内容。 实现效果图 1.由于Calendar没有右上角月份切换的API事件&#xff0c;可以给组件源码添加自定义添加一个事件 2.也可以通过自带的input事件来获取日历 3.vue页面完整代码 注释&#xff1a;this.$m(this.beginTime).format(…

linux C语言socket函数recv

recv 函数是在 Linux C 语言网络编程中用于从已连接的套接字接收数据的函数。它通常与 TCP 连接一起使用&#xff0c;但也可以用于 UDP&#xff08;尽管对于 UDP&#xff0c;更常使用 recvfrom&#xff0c;因为它还可以接收发送方的地址信息&#xff09;。 函数原型 recv 函数…

【漏洞复现】Hikvision SPON IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 Hikvision Intercom Broadcasting System是中国海康威视&#xff08;Hikvision&#xff09;公司的一个对讲广播系统。 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播…

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter 0. 背景1. 安装 docker-ce2. 安装 NVIDIA Container Toolkit3. 使用 nvidia-ctk 命令配置容器运行4. 通过 docker 运行 nvidia-smi5. 运行 gpu-jupyter6. 访问 gpu-jupyter7. 测试 gpu-jupyter 是否可以访问 cuda 0. 背景 今天突…

每日OJ题_算法_滑动窗口⑤_力扣904水果成篮

目录 力扣904. 水果成篮 解析及代码1&#xff08;使用容器&#xff09; 解析及代码2&#xff08;开数组&#xff09; 力扣904. 水果成篮 904. 水果成篮 - 力扣&#xff08;LeetCode&#xff09; 难度 中等 你正在探访一家农场&#xff0c;农场从左到右种植了一排果树。这…

stable-diffusion-webui 安装与运行

大家好&#xff0c;我是水滴~~ 本文主要介绍在各种显卡环境中&#xff0c;如何安装和运行 stable-diffusion-webui&#xff0c;包括&#xff1a;在 NVIDIA 显卡环境上安装、在 AMD 显卡环境上安装、在集显或小于 4G 显卡环境上安装。 文章目录 在 NVIDIA 显卡环境上安装下载配…

如何在业务代码中优雅使用责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中&#xff0c;通常每个接收者都包含对另一个接收者…

LLM:RoPE位置编码

论文&#xff1a;https://arxiv.org/pdf/2104.09864.pdf 代码&#xff1a;https://github.com/ZhuiyiTechnology/roformer 发表&#xff1a;2021 绝对位置编码&#xff1a;其常规做法是将位置信息直接加入到输入中&#xff08;在x中注入绝对位置信息&#xff09;。即在计算 q…