dm642官方的寄存器端口配置寄存器问题

TE原装进口 现货继电器
JL06系列防水压接插头
ABCIRH系列连接器组件 全新原装进口 国际现货
ABCIRH系列连接器组件 全新原装进口 国际现货
ABCIRH系列连接器组件 全新原装进口 国际现货
AB 型连接器 ABCIRP 插头連接器配套插针
ABCIRH系列连接器组件 全新原装进口 现货
 我在用dm642的开发板通过TL16C752B 实现485串口通信,现在需要一个串口中断程序
 自己也做了一些工作,比如asm的端口配置寄存器用的是vector 5 , 
 但是,就是触发不了中断不知道为什么?求幫助
 同时,对如何触发串口中断也存在疑问大家帮我看一下吧,555我实在是没辙了,不知道原因在哪啊

  作为高性能的视频处理芯片被广泛应用到视频处理的很多领域,但是DM642的I2C应用容易遇到I2C、VP等死锁以及SAA7115的从地址不能正确设置的问题。本文主要介绍的就是基于DM642的视頻采集处理系统中I2C模块的正确初始化以及通过I2C总线正确地对视频解码芯片SAA7115的寄存器读/写程序。

  1 I2C总线控制器的初始化

  为了正确使鼡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总线的

  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读/写软件设计

  对SAA7115的每个子地址操作后其地址指针会自动增加,但是它的可端口配置寄存器寄存器的自地址并不是连续汾布的所以将I2C工作模式寄存器(I2CMDR)端口配置寄存器为计数模式。每次执行I2C_write()只传送一次数据通过多次调用I2C_write()来完成SAA7115的初始化。先向I2CMDR写入4620H当读取SAA7115的寄存器时,设置为无重复主接收模式并向I2CMDR写入4420H。

  DM642对SAA7115的端口配置寄存器是通过寻址来实现的当DM642向解码芯片SAA7115写数据时,通过I2C总线發送寻址指令将右移位后的SAA7115的7位从地址写入I2CDXR寄存器。以下是初始化程序:

  综上所述图3和图4为DM642对SAA7115的读/写程序流程。

  本文设计的程序经过运行证明通过I2C总线控制寄存器的端口配置寄存器,DM642对视频解码芯片SAA7115读/写正确完成了对视频信号输入制式、视频信号通道选择、视频数据输出格式、同步信号插入位置、亮度色度及对比度设定、同步信号输入开关、视频采集量化启动和关闭等内部寄存器的设置。

我要回帖

更多关于 端口配置寄存器 的文章

 

随机推荐