×
嵌入式 > 嵌入式开发 > 详情

SmartFusion:利用I2C接口连接OLED

发布时间:2020-05-22 发布时间:
|
本文将阐述如何利用SmartFusion上的I2C接口在RiTdisplay 96x16 OLED模块显示文字。这种OLED模块包含了96x16 OLED 面板和带控制器的OLED驱动器(Solomon Systech公司的SSD0300)。

  设计实例简述

  本设计实例展示了如何使用SmartFusion开发工具套件和SmartFusion评测工具套件上的I2C OLED模块。这两个工具套件都带有一个OLED模块— RiTdisplay PMO13701,而二者都是与I2C_0连接。图1所示为本设计实例中采用的顶层接口信号。MSS中的URAT作为用于超级终端(HyperTerminal)显示选项的用户接口。SmartFusion微控制器子系统(MSS)

  主PC

  MAINXIN

  MSS_RESET

  UART_0_RXD

  UART_0_TXD

  I2C_0_SDA

  I2C_0_SCL

  OLED模块

  设计实例描述

  MSS可配置为使用一个I2C 接口 (I2C_0) 和一个UART 接口 (UART_0)。I2C_0 和 UART_0由 APB bus 0上的PCLK0 提供时钟。PCLK0则是由MSS中的时钟调节电路(CCC)生成的 80 MHz 频率时钟产生出来。

  MSS中的I2C 外设可配置为工作在快速模式下的主设备。APB总线时钟(PCLK0) 分频器设置为256,产生312.5 KHz 的串行时钟频率(I2C_0_SCL)。

  当总线空闲时,I2C主设备就通过发送一个START位(bit)发起一个写入事务(write transaction)。紧跟着START位的是从设备的7位串行地址以及write位。而从设备通过一个应答(acknowledge)位来告知地址接收情况。本设计实例采用96x16 OLED 模块作为从设备,其串行地址设置为0x78。

  本设计实例把UART作为用户接口用于HyperTerminal的OLED显示选项。用户可以进入通过HyperTerminal在OLED面板上显示的下列选项。

  1. 纯文本显示。

  2. 垂直滚动。

  3. 水平滚动 。

  4. 正弦波。

  本设计实例附带的设计文件里提供有Verilog和VHDL Libero项目及SoftConsole项目。

  接口描述

  表1 所示为顶层接口信号描述

软件实现

  软件设计(main.c)主要包括两个部分,简释如下:

  1. UART的初始化与配置:将UART初始化。

  这一部分在HyperTerminal列出下列OLED显示选项:

  – 纯文本显示

  – 垂直滚动

  – 水平滚动

  – 正弦波

  2. OLED驱动API:这个部分执行基于各种OLED API的用户显示选项输入。

  表2描述的OLED驱动API在本实例设计中是用来在I2C OLED模块上显示文本。

  运行设计

  利用FlashPro编程器把生成的/提供的PDB文件对SmartFusion开发板进行编程,然后重新启动开发板。

  调用SoftConsole IDE,浏览SoftConsole项目文件夹,并启动调试器。启动HyperTerminal:波特率为57600,带8位数据位、1位停止位,无奇偶校验,无流程控制。若电脑没有HyperTerminal 程序,可以使用任何免费的串行终端仿真程序,如 PuTTY或Tera Term。

  当运行SoftConsole中的调试器时,HyperTerminal窗口会提示进入OLED文本显示选项。一旦进入选项,应用程序就在OLED上显示文本(以固定文本、垂直滚动、水平滚动,或正弦波的形式)。图2所示为带I2C OLED显示选项的HyperTerminal的屏幕截图。总结

  本文着重介绍SmartFusion智能化混合信号FPGA的特性,以及I2C外设的详细特性;描述了如何通过样本软件,利用SmartFusion上的 I2C 接口在RiTdisplay 96x16 OLED模块上显示文本。它还解释了I2C OLED驱动API的使用方法。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
智能化系统工程设计中的若干技术问题