dm642作为高性能的视频处理芯片,被广泛应用到视频处理的很多领域,但是dm642的i2c应用容易遇到i2c、vp等死锁,以及saa7115的从地址不能正确设置的问题。本文主要介绍的就是基于dm642的视频采集处理系统中i2c模块的正确初始化,以及通过i2c总线正确地对视频解码芯片saa7115的寄存器读/写程序。
1 i2c总线控制器的初始化
为了正确使用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模块后,就可以对其控制寄存器进行初始化了。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的读/写程序流程。
结 语
本文设计的程序经过运行证明,通过i2c总线控制寄存器的配置,dm642对视频解码芯片saa7115读/写正确,完成了对视频信号输入制式、视频信号通道选择、视频数据输出格式、同步信号插入位置、亮度色度及对比度设定、同步信号输入开关、视频采集量化启动和关闭等内部寄存器的设置。
电池过冲保护电路解析
浅谈WiFi蓝牙数据透传中的优劣
磁带机的倒带速度/读带速度
基于视觉的驾驶员监控系统获得关注
安森美推出5款新的CMOS线性稳压器NCP69x系列产品
基于DM642的I2C模块的正确初始化
AI技术可利用眼动追踪来识别人格特质
一款煤气灶点火器电路
Chrome 86新特性:改进地址栏隐藏/显示完整 URL 功能
高性能便携式矢量信号源
iQOO Z1x 5G流畅先锋燃爆今夏,航海王定制礼盒7月22日开抢
国产存储技术发展迅速实现2.0突破
一种新型无孔Nafion基复合离子交换膜
荣耀9什么时候上市?目标小米6?荣耀9渲染图和配置曝光:荣耀9或将提前发布
走出音箱的误区
Redmi8A将于9月25日发布
苹果自主研发GPU?下一代iphone会更强大?
Molex 和 Microchip Technology Inc合作开发汽车信息娱乐系统
永磁电机退磁的原因_如何预防永磁电机的退磁
央视点名APP“大数据杀熟”现象,将在10月1日起明令禁止