IIC驱动FPGA-----oled

简介: 笔记

一. 简介


最近在弄oled显示屏的FPGA驱动,该显示屏是IIC接口的,随便可以深入学习一下IIC协议,以及如何用它来驱动oled显示。


由于在驱动oled的时候,是不需要对其进行读取的,因而只需要读数据的部分,减轻一些工作量。


二.IIC协议


IIC总共由两根数据线组成,一个为时钟线scl,另外一个为数据线sda。其设备也分为主机和从机,时钟线由主机提供,数据线根据需要看是主机控制,还是从机控制。


IIC协议主要包括以下部分:


空闲

开始信号

数据传输

应答信号

停止信号

空闲:空闲的时候,时钟线scl和数据线sda都为高电平。


开始信号:当时钟线scl为高电平的时候,数据线sda变为低电平。这里要注意的是,这是一个跳变,sda是由高跳变为低,不是一直为低电平,这是一个需要注意的点。

1.png

数据传输:在开始信号之后,时钟信号每一个高电平传输一位信 号,数据在scl低电平的时候跳变,在scl高电平的时候需要保持不 变,传输的时候,先发送高位,然后再发送低位。

2.png

应答信号: 在数据信号发送完成之后,主机需要等待从机的一个应答信 号,这时候主机释放对数据线的控制。从机会给出一个低位的应答信 号。

3.png

  1. 停止信号: 在应答信号之后,可以给出一个停止信号,在时钟线为 高电平的时候,需要有一个数据线由低到高的跳变,这里非常需要注 意的是是跳变。
  2. 4.png
  3. 其具体过程主要如下

5.png

三. 具体实现


先参考一下C语言驱动oled的代码,可以看出每次需要传输三个数据,第一个器件地址,第二个是写数据还是写命令选择,第三个是具体的数据或命令。然后根据这个,来写verilog代码。

6.png

下面给出具体的仿真图



7.png

公众号:FPGA之旅

目录
相关文章
|
4月前
|
异构计算
FPGA强化(9):TFT_LCD液晶屏驱动
FPGA强化(9):TFT_LCD液晶屏驱动
53 0
|
6月前
|
传感器 存储 缓存
STM32--MPU6050与I2C外设
STM32--MPU6050与I2C外设
145 1
|
存储 芯片
51单片机--LCD1602
51单片机--LCD1602
332 1
|
6月前
STM32F103驱动oled显示屏
STM32F103驱动oled显示屏
86 0
|
传感器 算法 Linux
总线驱动---IIC驱动(上)
总线驱动---IIC驱动
147 0
|
传感器 Linux
总线驱动---IIC驱动(下)
总线驱动---IIC驱动
90 0