微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 基于Microblaze的PmodOLED驱动设计

基于Microblaze的PmodOLED驱动设计

时间:10-02 整理:3721RD 点击:

设计目的:PmodOLED是一个基于Solomon Systech SSD1306的128*32像素的OLED模块,SPI通信接口,内屏缓冲。

据说,OLED是智能手机屏幕未来的选择趋势,同时苹果MAC Book笔记已经使用OLED做触控了,非常酷炫。


硬件准备:

       CMODA7-35 开发板,

       PmodOLED,

       USB下载线。

软件环境:

       VIVADO2015.2 / SDK 2015.2

       PmodOLEDIP:https://github.com/Digilent/vivado-library/tree/master/ip/Pmods

       如何使用IP配合Microblaze开发请看下面的连接:

https://reference.digilentinc.com/learn/programmable-logic/tutorials/pmod-ips/start



添加IP PmodOLED(这个IP库需要从刚刚给的链接中下载),USB UART(调试使用),Cell RAM,Connector JA(PmodOLED直接插在JA口即可) 。

同时,Microblaze的配置:

       32KB Local Memory;

       32KB Configuration Cache(Based on SRAM);

       Others Default。

……进入SDK界面之后,


可容易发现 IP库中包含了示例驱动,将该mian.c文件复制到新建的PmodOLED APP工程src文件夹下,保存编译 -->>Program FPGA -->>Run as  Launch on Hardware。


即可实现上图中的效果,本人将程序改写并给予一定的注释。

int main()

{

    u8 *pat;

   Xil_ICacheEnable(); //使能指令缓存

   Xil_DCacheEnable(); //使能数据缓存

   OLED_Begin(&myDevice, XPAR_PMODOLED_0_AXI_LITE_GPIO_BASEADDR,

        XPAR_PMODOLED_0_AXI_LITE_SPI_BASEADDR);//初始化OLED 以及SPI

    pat= OLED_GetStdPattern(0);

    OLED_SetFillPattern(&myDevice,pat);   

    OLED_SetCharUpdate(&myDevice,1);//设置OLED为自动刷新

    OLED_ClearBuffer(&myDevice);     //清除显示缓存数据

        OLED_SetCursor(&myDevice,0, 0);//设置第一行数据

        OLED_PutString(&myDevice,"Hello Digilent");

        OLED_SetCursor(&myDevice,0, 1);//128*32 可以显示4行,行高8个像素

        OLED_PutString(&myDevice,"By Master Xu");

        OLED_SetCursor(&myDevice,0, 2);

        OLED_PutString(&myDevice,"2016/11/26");

        OLED_SetCursor(&myDevice,0, 3);

        OLED_PutString(&myDevice,"From Soochow");

    //  OLED_Delay(10000);

//  DemoCleanup();

    return 0;

}

效果图:


在以后的设计中,如果需要实时显示某些数据,用Pmod_OLED的会方便许多。并且128*32也足够显示很多内容了。

同时,OLED显示效果确实比LCD出彩很多,大家可以自行感受。

注:使用IP库配合Microblaze开发在第一次使用时难免遇到很多问题,请耐心参考之前提供的连接,不懂可以回复留言。

工程文件:  https://pan.baidu.com/s/1nuGKEWL


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

网站地图

Top