DM642作为高性能的视频处理芯片,被广泛应用到视频处理的很多领域,但是DM642的I2C应用容易遇到I2C、VP等死锁,以及SAA7115的从地址不能正确设置的问题。本文主要介绍的就是基于DM642的视频采集处理系统中I2C模块的正确初始化,以及通过I2C总线正确地对视频解码芯片SAA7115的寄存器读/写程序。
1 I2C总线控制器的初始化
I2C总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
为了正确使用DM642内置的I2C模块,首先需要正确的初始化。
1.1 解锁DM642中的I2C模块
在DM642的I2C应用中,容易遇到不能使用初始化I2C模块的问题,原因在于没有先解锁并使能I2C模块。在DM642的数据手册中可以看到,复位后I2C模块是处于锁定禁止状态的。也就是说,在硬件配置寄存器PERCFG中的I2CoEN位为0,所以在初始化前要在配置I2C模块控制寄存器之前,使能I2C模块。但是,如果要修改PERCFG中的内容,就要先向PCFGLOCK中写入0x10C0010C,对PERCFG解锁。通讨加下程序使能I2C模块:
1.2 I2C模块的时钟选择
I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimaSTering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
在使能I2C模块后,就可以对其控制寄存器进行初始化了。CPU时钟频率为600 MHz,I2C模块规定模块时钟频率必须在7~12 MHz中选值,所以设定I2C模块时钟频率为10 MHz。由图1中的计算公式可得:IPSC为OEh。由于DM642和SAA7115都支持I2C总线的400 kbps快速模式,根据IPSC的取值,由图1可知d=5。由此可以设定:ICCL=7,ICCH=8。
1.3 设置从地址时容易遇到的问题
需要注意的是,在DM642的I2C应用中经常会遇到不能正确读/写从设备的问题。这是因为DM642对I2C模块的从地址寄存器设置不同于其他芯片的I2C应用。在标准I2C协议中,器件的7位地址格式要将地址和读/写方向位一同送入从地址寄存器。但是,DM642的I2C的应用中只需要向从地址寄存器中送入7位器件地址,读/写方向位由DM642自动生成。例如,SAA7115的标准I2C写从地址为40H,如图2所示。
标准I2C协议中包括21H的地址信息和最后1位(读/写方向位),DM642只需将21H送入从地址寄存器。如果送入40H,将会导致读/写错误。
2 I2C读/写软件设计
2.1 配置模式寄存器I2CMDR
对SAA7115的每个子地址操作后,其地址指针会自动增加,但是它的可配置寄存器的自地址并不是连续分布的。所以将I2C工作模式寄存器(I2CMDR)配置为计数模式。每次执行I2C_write()只传送一次数据,通过多次调用I2C_write()来完成SAA7115的初始化。先向I2CMDR写入4620H,当读取SAA7115的寄存器时,设置为无重复主接收模式,并向I2CMDR写入4420H。
2.2 配置从地址寄存器I2CDXR
DM642对SAA7115的配置是通过寻址来实现的。当DM642向解码芯片SAA7115写数据时,通过I2C总线发送寻址指令,将右移位后的SAA7115的7位从地址写入I2CDXR寄存器。以下是初始化程序:
2.3 I2C对SAA7115的读/写程序设计
综上所述,图3和图4为DM642对SAA7115的读/写程序流程。
3 结 语
本文设计的程序经过运行证明,通过I2C总线控制寄存器的配置,DM642对视频解码芯片SAA7115读/写正确,完成了对视频信号输入制式、视频信号通道选择、视频数据输出格式、同步信号插入位置、亮度色度及对比度设定、同步信号输入开关、视频采集量化启动和关闭等内部寄存器的设置。
关键字:DM642 I2C总线
引用地址:
解析DM642的I2C总线配置及应用
推荐阅读最新更新时间:2024-05-02 21:36
MAX517与单片机的I2C总线数据通信
摘要:介绍了I2C总线的特点及数据通信的基本协议,并以AT89C51单片机与美国MAXIM公司的8位电压输出DAC数模转换器MAX517之间的通信为例,详细介绍了通过I2C总线进行数据通信的具体硬件电路连接和其通信子程序的编程方法。
关键词:I2C总线;AT89C51;MAX517;数据通信
1 I2C总线的特点及基本通信协议
I2C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线串行数据线和串行时钟线即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。因为总线已集成在片内,所以大大缩短了设计时间,
[单片机]
恩智浦推出业界首款支持全新超快速模式规格的I2C总线控制器
恩智浦半导体 NXP Semiconductors N.V. (Nasdaq : NXPI) 近日推出业界首款高性能 I2C 总线控制器,该控制器可以同时支持快速模式 Plus (Fm+) 和全新的超快速模式 (UFm) 规格,新规格的发送数据传输速率最高可达 5 Mb/s 。 PCx966x 系列产品为每个通道提供 4.25-kB 的超大数据缓存,可以大幅减少主机处理器的中断,并专门针对重复性、数据密集型 LED 控制器和步进马达 ( 如游戏行业 ) 应用中的高效 I2C 设计而优化。
I2C 总线是恩智浦 ( 前身为飞利浦半导体 ) 在 30 多年前发明的,其用一种基于简单双线格式的直观且强大的串行结
[嵌入式]
STM32CubeMX系列 | I2C总线
1. 简介 1.1 I2C总线介绍 I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速I2C总线一般可达400kbps以上。下面从物理层和协议层两方面来了解I2C I2C物理层:可连接多个I2C通讯设备,支持多个通讯主机和从机;每个连接到总线的设备都有一个独立的地址,主机利用这个地址进行不同设备之间的访问;总线通过上拉电阻接到电源,当I2C设备空闲时会输出高阻态;多主机同时使用总线时,利用仲裁方式觉得由哪个设备占用总线;有三种
[单片机]
模拟I2C总线软件包(C51)
/****************************************************************************** I2C.H 标准80C51模拟I2C总线程序头文件 ******************************************************************************/ #ifndef I2C_H #define I2C_H //定义I2C操作模式 #define I2C_RECV 0 /* 接收模式 */ #define I2C_SEND 1 /* 发送模式 */ #define I2C_SrRECV 2
[单片机]
I2C总线信号时序分析
在I2C 总线 通信的过程中,参与通信的双方互相之间所传输的信息种类归纳如下。 主控器向被控器发送的信息种类有:启动信号、停止信号、7位地址码、读/写控制位、10位地址码、数据字节、重启动信号、应答信号、时钟脉冲。 被控器向主控器发送的信息种类有:应答信号、数据字节、时钟低电平。 下面对I2C总线通信过程中出现的几种信号状态和时序进行分析。 ①总线空闲状态。 I2C总线总线的SDA和SCL两条 信号线 同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级 场效应管 均处在截止状态,即释放总线,由两条信号线各自的上拉 电阻 把电平拉高。 ②启动信号。 在时钟线SCL保持高电平期间,
[单片机]
通过MSP430的IO口模拟I2C总线对AT24C25进行读写程序
再通过微处理器I/O口模拟I2C总线对AT24C进行读写之前应注意一下两个问题: 一、微处理器的两个模拟I/O口在和SDA,SCL连接时必须使用上拉电阻。 一、I2C总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上会有耗电。特别是在上电过程中,I/O线上电平也应保持在高电平状态。也就是说:当Master的I2C使用的是I/O软件模拟时,一定要保证该两个I/O上电默认均为输入(或高阻)或者输出高电平,切不可默认为输出低电平。I/O默认为输入时,可以通过外部上拉电阻将I2C信号线拉至高电平。 该程序通过调试,可以直接应用,程序如下: 文 件 名 : AT24C256.S43.C * 功能描述 : I/O模拟I2C时序读
[单片机]
MSP430口线模拟I2C总线
/******************************************************************************************************** * 功能: 实现MSP430口线模拟I2C总线协议与24C04通信. * * 描述: 主系统工作时钟为12MHz,I2C工作时钟频率为1MHz.给某地址写入一个数据 * * 再读出来,如写入前和读出后的数据一致,则P1.0输出高电平,否则输出低电 * * 平.
[单片机]
I2C总线CMOS型PB-0300数字图像传感器
摘要:介绍CMOS型数字图像传感器PB-0300的性能特点、功能设置、与MCS-51系列单片机的接口电路及编程技术。
关键词:I2C总线 数字图像 传感器
1 功能描述
1.1 性能特点
PB-0300系列CMOS型有源像素数字图像传感器,内置模数转换8、位并行数据输出、64个内部寄存器,采用I2C总线控制,可编程控制;可以在彩色和黑白两种模式下工作。当外接24MHz时钟晶振时,可以获得30帧/s的图像输出。在上电期间,自动调入缺省参数设置,包括自动曝光功能,所以可以不编程情况下使用传感器。主要性能指标如表1。
表1 主要性能指标
阵列格局
640%26;#215;487(311 680像素)
VGA参考:64
[应用]