91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用FPGA驅(qū)動SPI屏幕

FPGA研究院 ? 來源:FPGA之旅 ? 2023-08-23 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一. 簡介

相信大家都玩過屏幕,在FPGA上使用最多的就是VGA/HDMI接口的顯示器了,這兩種顯示器的優(yōu)點(diǎn)就不用說了,缺點(diǎn)就是體積比較大,而且價格比較貴,對于追求便攜/價格低的我來說,SPI接口的屏幕才是我的首要選擇,而且一般是可以帶觸摸的哦。

此為圖像處理的基礎(chǔ),后面圖像處理相關(guān)的代碼都會基于此屏幕哦!

二. SPI屏幕驅(qū)動(驅(qū)動芯片ST7789V)

1. SPI模式

SPI時序就不介紹了,很重要且必須要掌握的協(xié)議。要想驅(qū)動屏幕,最關(guān)系的肯定是使用那種模式來驅(qū)動了,答案就在這里,數(shù)據(jù)在SCL時鐘的上升沿被采樣,數(shù)據(jù)在SCL時鐘的下降沿切換(空閑的時候?qū)CL的電平不作要求),對應(yīng)的模式為0和3。

64dc1e58-4144-11ee-a2ef-92fbcf53809c.png

2. 初始化

摸清楚SPI的模式之后,就可以開始初始化屏幕了,最簡單高效的方法當(dāng)然是參考C語言的現(xiàn)實。

可以看出,初始化的過程就是依次發(fā)送命令和數(shù)據(jù)即可。那么如何辨別命令和數(shù)據(jù)呢?

64f3f6a4-4144-11ee-a2ef-92fbcf53809c.png

通過下圖可以清楚的知道,是通過DC信號線的電平來區(qū)別的(低電平表示當(dāng)前發(fā)送的數(shù)據(jù)為命令)。

6509b610-4144-11ee-a2ef-92fbcf53809c.png

弄懂了上述問題之后,就可以按照C語言實現(xiàn)依葫蘆畫瓢,依次將命令和數(shù)據(jù)發(fā)送出去即可。另外有兩點(diǎn)需要注意的是:

兩條命令不能連續(xù)發(fā)送,中間需要停頓數(shù)個時鐘周期;而數(shù)據(jù)則不需要。

命令到數(shù)據(jù),或者數(shù)據(jù)到命令,是不能連續(xù),中間需要停頓數(shù)個時鐘周期。

6522bb06-4144-11ee-a2ef-92fbcf53809c.png

另外這三個命令需要注意一下0x36,0x2A,0x2B,它們分別是設(shè)置顯示的方向(還有就是數(shù)據(jù)是RGB還是BGR)、列地址和行地址。0x36涉及到的東西比較多,需要詳細(xì)了解的可以自行去翻閱數(shù)據(jù)手冊。

經(jīng)過上面的初始化,如果成功了,屏幕上顯示出雜亂無章的圖案。

3. 顯示數(shù)據(jù)

C語言的實現(xiàn)如下,設(shè)置要顯示X,Y的范圍,也就是矩形的左上角和右下角的值,然后發(fā)送要顯示的數(shù)據(jù)即可。非常簡單。

654142a6-4144-11ee-a2ef-92fbcf53809c.png

三. FPGA實現(xiàn)

有了C語言作為參考,F(xiàn)PGA端的實現(xiàn)那還不是小菜一碟,總共只需要分為如下的三個模塊:

SPI主機(jī)模塊: 用來和屏幕進(jìn)行數(shù)據(jù)交互

屏幕初始化模塊: 將初始化數(shù)據(jù)依次通過SPI主機(jī)模塊發(fā)送給模塊

屏幕刷新模塊: 將顯示數(shù)據(jù)依次通過SPI主機(jī)模塊發(fā)送給模塊

模塊框圖如下,有點(diǎn)小哈()

656517da-4144-11ee-a2ef-92fbcf53809c.png

SPI主機(jī)模塊和初始化模塊非常簡單,就不作說明啦!重點(diǎn)來說說刷新模塊。

刷新模塊不會像單片機(jī)中那樣,調(diào)用的時候才會進(jìn)行刷新,而且在初始化完成之后,就一直在對整個屏幕進(jìn)行刷新了,

1. 模塊狀態(tài)跳轉(zhuǎn)

模塊由如下四個在狀態(tài)組成,在發(fā)送前11個數(shù)據(jù)的時候,需要進(jìn)入打啊奧延時狀態(tài),原因是這11個數(shù)據(jù)中既有命令也有數(shù)據(jù)(此數(shù)據(jù),懂?), 后面則一直在DATA態(tài),它只包括顯示數(shù)據(jù),所以不需要延時。最后一個顯示數(shù)據(jù)發(fā)送完成后,就進(jìn)入幀同步狀態(tài),表示一幀數(shù)據(jù)發(fā)送完成。

658be3ec-4144-11ee-a2ef-92fbcf53809c.png

65b67350-4144-11ee-a2ef-92fbcf53809c.png

2. 圖像顯示數(shù)據(jù)

很easy!發(fā)送完前面的命令和數(shù)據(jù)后,剩下的全部都是顯示數(shù)據(jù)了,都丟在default里面就可以了。這里暫時寫死了(后面會將顯示的數(shù)據(jù)修改為模塊輸入的數(shù)據(jù))。

65e40568-4144-11ee-a2ef-92fbcf53809c.png

3. 模塊端口

端口信號如下,著重關(guān)注用戶接口的三個信號即可,非常easy!

65fa2168-4144-11ee-a2ef-92fbcf53809c.png

四. 模塊封裝

spi模塊top模塊的接口如下,很明顯不夠完美,無法知道當(dāng)前顯示的像素坐標(biāo),而且圖像數(shù)據(jù)一般為16bit的,而這個模塊的輸入為8bit的數(shù)據(jù),另外在替換VGA接口的屏幕時候,也不能簡單高效的替換下來,所以需要經(jīng)過一次封裝,將其與外部進(jìn)行交互的端口信號封裝為VGA接口的信號(近似)。

6613b0ba-4144-11ee-a2ef-92fbcf53809c.png

封裝后的模塊端口信號如下,其內(nèi)部實現(xiàn)類似于VGA驅(qū)動。

663c66b8-4144-11ee-a2ef-92fbcf53809c.png

五. 上板測試

測試代碼如下,顯示四個方塊,是不是感覺so easy!。

66575856-4144-11ee-a2ef-92fbcf53809c.png

測試圖片如下,顯示效果完美!?。?!

6674ee48-4144-11ee-a2ef-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22408

    瀏覽量

    636227
  • 顯示器
    +關(guān)注

    關(guān)注

    22

    文章

    5146

    瀏覽量

    144376
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1885

    瀏覽量

    101214
  • 驅(qū)動芯片
    +關(guān)注

    關(guān)注

    14

    文章

    1643

    瀏覽量

    57954

原文標(biāo)題:FPGA驅(qū)動SPI屏幕

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用FPGA驅(qū)動OLED屏幕

    這是FPGA之旅設(shè)計的第九例啦?。?!本例將介紹如何使用FPGA驅(qū)動OLED屏幕,并在接下來的幾例中,配合其它模塊,進(jìn)行一些有趣的綜合實驗。由于使用的OLED屏是IIC接口的,對IIC接
    發(fā)表于 09-01 10:51 ?4153次閱讀

    RA MCU眾測寶典 | SPI驅(qū)動TFT屏幕

    “RAMCU眾測寶典”SPI專題來啦!這次我們聚焦【RA-Eco-RA4E2】開發(fā)板,一步步用SPI驅(qū)動1.8寸TFT屏幕。開啟寶典前言本次實驗使用的是1.8寸TFT
    的頭像 發(fā)表于 02-03 17:02 ?7480次閱讀
    RA MCU眾測寶典 | <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動</b>TFT<b class='flag-5'>屏幕</b>

    SPI驅(qū)動屏幕移植LVGL軟件包具體流程

    一、spi驅(qū)動屏幕,我使用的屏幕為1.8寸spi屏幕 驅(qū)動
    發(fā)表于 07-08 15:09

    SPI驅(qū)動TFTLCD屏幕相關(guān)資料推薦

    1、SPI驅(qū)動TFTLCD屏幕簡析  本文實現(xiàn)了使用GD32FF427V-START板子的SPI1驅(qū)動TFTLCD,LCD是2.2寸的ILI
    發(fā)表于 12-21 15:19

    SPI方式FPGA配置和SPI flash編程

    SPI方式FPGA配置和SPI flash編程
    發(fā)表于 05-16 18:01 ?166次下載
    <b class='flag-5'>SPI</b>方式<b class='flag-5'>FPGA</b>配置和<b class='flag-5'>SPI</b> flash編程

    SPI接口的應(yīng)用與基于FPGASPI自動發(fā)送模塊設(shè)計

    一種基于FPGA 的將并行數(shù)據(jù)以SPI 串行方式自動發(fā)送出去的方法。 二、關(guān)鍵字: VHDL、FPGASPI、串行數(shù)據(jù)輸出選擇模塊、移位脈沖產(chǎn)生模塊、
    發(fā)表于 10-19 10:33 ?19次下載
    <b class='flag-5'>SPI</b>接口的應(yīng)用與基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>自動發(fā)送模塊設(shè)計

    基于FPGASPI協(xié)議及設(shè)計實現(xiàn)

    基于FPGASPI協(xié)議及設(shè)計實現(xiàn)博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨詢,歡迎大家前來投稿,謝謝!引言介紹在電子通信領(lǐng)域里采用的通信協(xié)議有IIC,SPI,UART
    發(fā)表于 11-05 19:05 ?24次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>協(xié)議及設(shè)計實現(xiàn)

    STC8的硬件SPI驅(qū)動ST7735彩色TFT屏幕

    20200719STC8的屏幕驅(qū)動摸了,不會用markdown。放上代碼完事代碼是基于中景園的軟件SPI屏幕驅(qū)動的,僅僅是改成了硬件
    發(fā)表于 12-22 19:17 ?46次下載
    STC8的硬件<b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動</b>ST7735彩色TFT<b class='flag-5'>屏幕</b>

    FPGA實現(xiàn)的SPI協(xié)議(二)----基于SPI接口的FLASH芯片M25P16的使用

    寫在前面SPI協(xié)議系列文章:FPGA實現(xiàn)的SPI協(xié)議(一)----SPI驅(qū)動 在上篇文章,簡要介紹了
    發(fā)表于 12-22 19:25 ?19次下載
    <b class='flag-5'>FPGA</b>實現(xiàn)的<b class='flag-5'>SPI</b>協(xié)議(二)----基于<b class='flag-5'>SPI</b>接口的FLASH芯片M25P16的使用

    STM32L4 模擬SPI 驅(qū)動LCD 240*240屏幕

    第一次寫博客,寫的可能很亂,各位看客可能費(fèi)點(diǎn)精神。因為不能保證打樣的板子沒那么快到手上,所以在開發(fā)板上先進(jìn)行了模擬SPI驅(qū)動屏幕。在開發(fā)板上開發(fā)主要器件:TFTLCD屏幕240*240
    發(fā)表于 12-22 19:29 ?22次下載
    STM32L4  模擬<b class='flag-5'>SPI</b> <b class='flag-5'>驅(qū)動</b>LCD 240*240<b class='flag-5'>屏幕</b>

    FPGA實現(xiàn)SPI

    FPGA實現(xiàn)SPI協(xié)議
    發(fā)表于 03-20 10:35 ?2次下載

    FPGA中關(guān)于SPI的使用

    FPGA中關(guān)于SPI的使用
    的頭像 發(fā)表于 04-12 10:13 ?1597次閱讀

    R128實現(xiàn)SPI驅(qū)動TFT LCD屏教程

    同時,提供了SPILCD驅(qū)動框架以供 SPI 屏幕使用,本次使用的是 Dshan_Display Module。
    的頭像 發(fā)表于 10-21 16:31 ?3074次閱讀
    R128實現(xiàn)<b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動</b>TFT LCD屏教程

    DS1302芯片與FPGA之間SPI通信原理

    本文通過以DS1302芯片為基礎(chǔ),介紹該芯片與FPGA之間SPI通信原理,詳細(xì)描述硬件設(shè)計原理及FPGA SPI接口驅(qū)動設(shè)計。
    的頭像 發(fā)表于 10-24 14:16 ?2716次閱讀
    DS1302芯片與<b class='flag-5'>FPGA</b>之間<b class='flag-5'>SPI</b>通信原理

    ESP32-C5迷你開發(fā)板上手指南!輕松驅(qū)動SPI屏幕!

    本文將帶你一步步完成WT9932C5-TINY開發(fā)板的燒錄與SPI屏幕驅(qū)動,從硬件連接到軟件燒錄,直至最終的效果演示。無需復(fù)雜的前期準(zhǔn)備,跟著教程操作即可快速上手。硬件連接1準(zhǔn)備材料1
    的頭像 發(fā)表于 01-19 18:04 ?672次閱讀
    ESP32-C5迷你開發(fā)板上手指南!輕松<b class='flag-5'>驅(qū)動</b><b class='flag-5'>SPI</b><b class='flag-5'>屏幕</b>!