SmartFusion:利用I2C接口连接OLED
设计实例简述
本设计实例展示了如何使用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的使用方法。
Actel SmartFusion 相关文章:
- Actel扩展Core8051处理器,提供高性能解决方案(09-12)
- 三大电机控制方案之FPGA篇:Actel Fusion(05-24)
- Actel Libero IDE具备全新功率驱动布局和功率分析功能(03-14)
- 基于Actel FPGA的TFT控制器技术方案设计(02-20)
- 基于Actel FPGA的笔段式LCD驱动设计(10-28)
- IGLOO的FPGA构成的马达控制方案(04-02)