特权同学

例说FPGA连载92:多分辨率HDMI显示驱动设计之iic_avl_driver.v模块代码解析

0
阅读(1797)

例说FPGA连载92:多分辨率HDMI显示驱动设计之iic_avl_driver.v模块代码解析

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1c0nf6Qc

1.jpg

 

         该模块实现Avalon-MM总线的从机接口,该模块的内部功能框图如图18.8所示。Avalon-MM总线从机逻辑详解可以参考工程实例4例程的“flash_avalon.v模块代码解析”。

2.jpg

18.8 Avalon-MM总线从机接口模块功能框图

         NIOS II处理器可以读写该模块定义的4个寄存器,实现ADV7513IIC寄存器读写操作。该Avalon-MM总线从机有4个可用寄存器,其功能定义如表18.1所示。

18.1 IIC读写控制寄存器定义

功能

偏移地址(10进制)

描述/备注

IIC地址寄存器

0

只写。ADV7513芯片的IIC寄存器地址。

IIC数据寄存器

1

可读可写。读写IIC寄存器的数据。

IIC读写使能操作寄存器

2

只写。该寄存器写入0xaa,将执行IIC写操作;写入0x55,执行IIC读操作。

IIC忙标志寄存器

3

只读。返回 0xff,表示IIC总线当前处于忙状态;返回0x00,表示IIC总线当前处于空闲标志。

 

         要实现IIC总线的读写操作,需要按照以下步骤操作Avalon-MM总线的寄存器。

执行一次IIC写入操作:

  写地址0x00,设置IIC地址;

  写地址0x01,设置IIC数据;

  写地址0x02,写入数据为0xaa

  读地址0x03,返回0xff则继续等待的,返回0x00表示操作完成。

执行一次IIC读出操作:

  写地址0x00,设置IIC地址;

  写地址0x02,写入数据为0x55

  读地址0x03,返回0xff则继续等待,返回0x00表示操作完成;

  读地址0x01,读出IIC数据。