开发环境
- 软件:Quartus II 64-Bit
在 FPGA 中使用 IIC 协议驱动 0.96 寸 OLED 屏幕的方法。内容包括 IIC 协议基础时序、物理层特性、状态机设计,以及将 SPI 接口 OLED 改造为 IIC 接口的硬件修改方案。此外,文章提供了完整的 Verilog 代码实现,涵盖 IIC 驱动模块、DHT11 温湿度传感器数据采集模块、字模生成及显示刷新逻辑,实现了在 OLED 上实时显示温湿度数据的功能。

通过状态机划分 IIC 操作阶段,典型状态包括:空闲态(IDLE)、起始态(START)、写数据(WR_DATA)、读数据(RD_DATA)、应答(ACK)、停止态(STOP)。
将 FPGA 系统时钟(如 50MHz)分频至 IIC 速率(如 100kHz 或 400kHz),需计算分频参数。在 SCL 低电平中点更新 SDA 数据,确保时序稳定。
示例状态机跳转逻辑:
case(state)
IDLE: if(读写请求) next_state <= START;
START: next_state <= WR_DATA;
WR_DATA:next_state <= ACK;
ACK: if(操作类型) next_state <= STOP else next_state <= RD_DATA;
STOP: next_state <= IDLE;
endcase
I2C 通讯协议(Inter-Integrated Circuit)是由 Philips 公司开发的一种简单、双向二线同步串行总线,只需要两根线就可以在连接于总线上的器件之间传送信息。
优点:
缺点:
**应用案例:**小型传感器、LCD 屏幕、RTC(实时时钟)模块等。
包含 4 个状态:总线空闲状态、起始信号、数据读写状态、停止信号。
在 SCL 为高电平的时候进行数据的写入,低电平的时候进行数据的更新。当从机设备正确接受到信号时,会把 SDA 数据线拉低,称为响应位(ACK)。
关于器件的地址: 器件地址被定义为 7Bit 的数据,厂商出厂设置。部分引脚允许用户自行设置。最后一位为读写控制位,0 表示写入,1 表示读取。
默认使用 SPI 协议驱动,改为 IIC 协议需修改电路:
改造后需连接 7 个管脚:
IIC 数据格式:OLED 地址 + 命令/数据 + 值。
初始化代码示例:
always@(*) begin
case(Init_index)
'd0: Init_data_reg <= {8'h78, 8'h00, 8'hAE}; // 关闭显示
'd1: Init_data_reg <= {8'h78, 8'h00, 8'h00};
// ... 其他初始化命令
default: Init_data_reg <= {8'h78, 8'h00, 8'hAE};
endcase
end
需根据字体大小(如 1616 数字字母,816 汉字)生成对应的点阵数据。
module main(
input sys_clk,
input rst_n,
inout dht11,
output OLED_SCL,
inout OLED_SDA
);
wire dht11_done;
reg dht11_req;
wire[7:0] tempH, tempL, humidityH, humidityL;
// ... 实例化 DHT11 和 OLED_Top 模块
endmodule
实现了 IIC 通信的状态机,包含空闲、起始、写数据、读数据、应答、停止等状态。支持分频计数、字节计数及 ACK/NACK 检测。
负责采集温湿度数据,包含时序控制、数据解析及校验逻辑。
以上模块协同工作,实现 FPGA 通过 IIC 协议驱动 OLED 屏幕,并实时显示 DHT11 采集的温湿度数据。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online