微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SmartFusion:利用I2C接口连接OLED

SmartFusion:利用I2C接口连接OLED

时间:02-18 来源:电子产品世界 点击:
       本文将阐述如何利用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的使用方法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top