DM642的I2C息线配置与应用

本文主要介绍的就是基于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读/写正确,完成了对视频信号输入制式、视频信号通道选择、视频数据输出格式、同步信号插入位置、亮度色度及对比度设定、同步信号输入开关、视频采集量化启动和关闭等内部寄存器的设置。

剖析精密电流泵的LTspice性能
触动的灵感 智能家居引爆触摸开关市场
缓冲器,缓冲器基本原理是什么?
搭载win10的MagicBook Pro将推出
催化诱导硫化锂的电子结构转变研究取得进展!
DM642的I2C息线配置与应用
逆变器寿命怎么测算,公式仍然有效
3C行业全自动装配流水线解决方案
运放电路的分析和选型
高清视频监控技术的现状及发展趋势
小米和汉朔借助微软商业应用高效转型
全球已有56个运营商实现了5G网络部署40个运营商正式推出了5G服务
智能语音控制的护眼灯,喊话自动开关
usb术语和缩略词
专家:智慧城市应充分利用现有技术和基础设施
高质蓝牙BlueTunes音乐方案解决蓝牙立体声耳机4个难题
人工智能时代的数据分析有什么作用
带你学习光缆故障主要产生原因-科兰
plc的基本结构及原理
西林瓶密封检漏仪及方法验证