SPI作为低速串行总线,在嵌入式领域的应用十分广泛。不仅占用的管脚数少,而且支持较高的传输速率(达到10Mmps级别)。
这里使用Verilog编写了一个SPI master,并且配合内部RAM,完成一个0.96寸OLED的驱动。
OLED的驱动分为两个部分,第一部分是OLED的配置,第二部分是数据的刷新。
OLED的配置只需上电后完成一次即可,一共需要配置25个寄存器,通过状态机从头到尾读取一遍即可。
整个屏幕共分成8个Page,每个Page中包含了128个8bit字段,所以需要8*128*8bit的RAM来充当显存。
而屏幕显示的刷新是通过状态机循环遍历整个坐标(Page,字段)来完成显存到SPI的输出完成的。
1
后续会探索如何丰富显存内容,最后附上工程代码。