欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)驅(qū)動TFT彩屏+攝像頭+有實(shí)用意義的高幀率!原創(chuàng)發(fā)布! [打印本頁]

作者: njzr    時間: 2021-10-23 20:58
標(biāo)題: 51單片機(jī)驅(qū)動TFT彩屏+攝像頭+有實(shí)用意義的高幀率!原創(chuàng)發(fā)布!
      閑來無事逛某一個寶,赫然發(fā)現(xiàn)同尺寸的TFT小屏竟然比單色點(diǎn)陣屏還便宜,頓時萌發(fā)了嘗試一下的念頭,以前需要用到彩屏的時候通常都是選用現(xiàn)成的串口屏,使用串口收發(fā)下數(shù)據(jù)就搞定用戶界面了,但近年來芯片張價潮波及到了幾乎所有電子行業(yè),原來選型時一百多的屏現(xiàn)在要近四百了,當(dāng)然材料成本沒漲那么多,奸商跟風(fēng)漲價罷了。根據(jù)現(xiàn)有手頭項(xiàng)目產(chǎn)品要求選定了一款2.4''彩屏,驅(qū)動ILI9341分辨率320*240,典型的爛大街規(guī)格不愁斷貨,立刻下單!不過考慮到通常TFT驅(qū)動對MCU的需求還是比較高的,如果套用現(xiàn)成方案例程搞個STM32(現(xiàn)在是奢侈品了)做驅(qū)動到也四平八穩(wěn),但是成本就不忍直視了,補(bǔ)充一下F1系列只有100腳以上的帶FSMC接口,所以價格肯定會很感人!再說本來就是為了省錢才干的這事,咱必須不忘初心對吧。    用高射炮打蚊子不算本事,用彈弓打飛機(jī)才是水平,立刻著手查資料算時序,我就不信51搞不定TFT(是指基本流暢播放全屏動畫,而不是慢吞吞刷出幾個字來),一算才發(fā)現(xiàn)這玩意要求還挺高,平時常用的中穎系列主頻最多20冒頭,這速度來刷屏怕是要看著圖片一條線往下跑了,雖然有些STM32開發(fā)板例程也是這個水平但咱自己對覺悟還是有要求的!^_^
      搞到這里有點(diǎn)頭痛,想著不行就換MCU吧,無意間忽然想到電機(jī)控制MCU不是對速度要求挺高的嘛,于是就發(fā)現(xiàn)了這頭怪獸— SH79F3213。32KB的FLASH、1.5KB的RAM、關(guān)鍵是有16KB的程序RAM,只要把前16K的CODE拷貝到里面就能以84M的主頻的跑程序,芯片其它外圍也挺豐富但我暫時用不到就不去管它了,沒有硬件支持下刷屏幕MIPS才是王道!
      芯片選定開始電路方案設(shè)計(jì),彩色圖片的數(shù)據(jù)量對51來說非常可觀的,一幅全屏的RGB565數(shù)據(jù)就是153KB,與用單色屏習(xí)慣把字庫和小圖片防在CODE區(qū)不同,這種應(yīng)用必須外擴(kuò)存儲器了。你沒猜錯,我又選了爛大街的W25Q系列,便宜才是王道嘛,手頭有現(xiàn)成的W25Q16先頂上用吧。這里要吐槽一下MCU硬件SPI口,最快只能8分頻,都什么年代了還這么慢,現(xiàn)在SPI口的FLASH都支持100M以上了。好在內(nèi)核跑得快,我用軟件模擬還不行嘛,最終軟件模擬的SPI口做到20個指令周期取一字節(jié)并放到總線,同樣時間你硬件SPI三位還沒有傳完,在此替中穎汗顏一下。
      言歸正傳,  選P0、P4口做16位數(shù)據(jù)總線,因?yàn)檫@倆口排列規(guī)整方便布線,P2口給W25Q用(實(shí)際只用了6個PIN,為啥這樣用可以想想),留了一個串口做圖象文件下載和顯示控制,其他控制IO就隨便就近分配了。正好某配有免費(fèi)打樣券,PCB圖畫好就去做了。


  板子回來焊接器件沒啥好說的,參照賣家的例程做個驅(qū)動初始化,自己寫了畫點(diǎn)和字庫顯示文字的程序,文字顯示很快是預(yù)料中,因?yàn)榍熬、背景色是相對固定兩色刷就完了,有些賣家例程以單色刷屏速度吹噓就更是糊弄人民群眾了,這個總線數(shù)據(jù)都不用變拼命刷WR線就行了。






作者: njzr    時間: 2021-10-23 21:32
  重點(diǎn)到了!其實(shí)搞過TFT的(用開發(fā)板移植一下例程在我看來不能算搞過)都知道,刷圖象速度的瓶頸是在取數(shù)據(jù)而不在刷總線,即使你用STM32,用上了DMA、FSMC限制你速度的依然是SPI總線上的存儲器,前面提到了我用20個指令周期取到一字節(jié)數(shù)據(jù)并把它放到總線上,這樣16位總線就需要40周期,再加上8080口的控制和循環(huán)指令,整屏刷下來平均51-52周期/像素,換算成刷新率大約21FPS,這個速度基本可以滿足一般的工業(yè)產(chǎn)品顯示需要了。當(dāng)然最終產(chǎn)品還會有些中斷程序的干擾,但做到18FPS以上應(yīng)該沒有任何難度。https://v.youku.com/v_show/id_XNTgxMDkwNzE3Mg==.html?spm=a2hbt.13141534.1_2.d_4&scm=20140719.manual.114462.video_XNTgxMDkwNzE3Mg==

附上刷圖片的視頻,雖然有20FPS左右但畫面切換時撕裂感還是明顯的,一是屏硬件沒有接出TE腳不能同步,二是幀率還是低了些,理論上如果有ILI9341幀率的一半配合同步刷頻就可以完全無感地切換了。
下面是動態(tài)圖象的效果
https://v.youku.com/v_show/id_XNTgxMzQ5MDE2OA==.html?spm=a2hbt.13141534.1_2.d_3&scm=20140719.manual.114461.video_XNTgxMzQ5MDE2OA==

    因?yàn)榇鎯θ萘坑邢,所以只有十二幅畫面,不過基本還算是播放流暢了。為了能進(jìn)一步提高幀率,此時腦子里已經(jīng)在構(gòu)思第二版了......




作者: njzr    時間: 2021-10-23 21:39
    第二版的做好了,這幾天焊接調(diào)試忙得不亦樂乎,今晚終于基本成型了,雖然最終完全按上篇預(yù)告的內(nèi)容完成目標(biāo)甚至刷新率還遠(yuǎn)超預(yù)計(jì),但期間也遇見了各種奇怪問題,現(xiàn)將過程和心得與大家共享。
    老規(guī)矩,先上裸.................板!第一版因?yàn)橐?yàn)證用595同時驅(qū)動128顆LED,所以板子做得略大,這次版本純粹奔著驗(yàn)證圖形性能去的,所以又緊湊了些。


    焊接完畢,用第一版的程序想稍做修改把屏先搞亮起來,結(jié)果就卡在這了,任你怎么折騰屏幕都是沒有反應(yīng),因?yàn)檫@次使用了8080II的8位總線方式驅(qū)動(第一版是16位方式),設(shè)計(jì)硬件時還特意跟某一個寶屏幕賣家溝通確認(rèn)過想必應(yīng)該沒啥問題了,但屏幕就是沒動靜讀ID也沒反應(yīng),一度我都懷疑新買的這個屏是不是壞的。


下面是賣家提供的原理圖局部,圖中的11腳雖然標(biāo)著NC但每一個毛孔都散發(fā)著IM0的氣息,畫板前與賣家溝通也驗(yàn)證了這個想法。


這一卡就是近一天的時間,不得以我把粘好的屏又從PCB上翹下來,干了快30年的老電工開始懷疑自己的焊接是不是有問題,這也太打擊人了! ^_^
既然把屏翹下來了,順便仔細(xì)檢查一下FPC是不是有折彎損傷吧,這一檢查就發(fā)現(xiàn)問題了,下面是FPC的照片,看看哪個小機(jī)靈鬼能發(fā)現(xiàn)問題。


電阻R1、R2字符旁邊多了8和16兩個數(shù)字,莫非.....難道.....?插上烙鐵立刻開動把零歐電阻換到8那邊去,再上電瞬間圖象它出來了,這時內(nèi)心激動程度絲毫不亞于第一版屏幕出圖象的時候,并且有種想把賣家ko的沖動!實(shí)踐證明這款屏的IM0端口根本沒有引出,而是直接在FPC上完成不同通訊接口的設(shè)置。



作者: njzr    時間: 2021-10-23 22:10
屏幕亮了就好辦,字符顯示一切正常,但顯示圖片又出問題了,屏幕是花的!首先就懷疑自己寫的PC端圖片處理程序和BIN文件合并、拆分程序的問題,可檢查了半天沒問題啊,用示波器一看FLASH芯片只有一個腳在出數(shù)據(jù)可我用的是4I/O模式,難道芯片QE=0?(JV版本的應(yīng)該出廠QE=1),找來幾片同次買的芯片上編程器讀狀態(tài)字節(jié),果然有部分QE=0的,甚至還有幾片被燒了加密位,看來是又遇見奸商了,說是全新原裝但就算是用拆機(jī)貨也要正規(guī)點(diǎn)吧,好歹恢復(fù)到出廠狀態(tài)算是拆機(jī)貨的良心和底線了吧!也怪自己貪便宜,省錢辦大事才是硬道理!
修改過QE狀態(tài)后4I/O數(shù)據(jù)可以源源不斷地輸出了,按即定思路修改程序,一切順利達(dá)到了42FPS刷新率,接下來繼續(xù)優(yōu)化刷屏循環(huán),一條條指令一個個周期的摳,最終達(dá)到了71FPS的水平,連我自己也有些意外,當(dāng)然此時MCU除了刷屏基本干不了其它大事了,下面是實(shí)測FLASH的片選引腳波形


上圖中一個低電平周期刷一幀圖象時間大約是14mS,每秒10幀圖象,也就是每幅圖象后有八十多毫秒可以做其它任何事,當(dāng)然快速的即時性中斷任務(wù)也可以隨時執(zhí)行,包括在刷屏期間對刷屏也基本沒影響。這也驗(yàn)證了速度就是王道,什么同步也不用,刷屏期間中斷也沒事,只要你夠快對顯示就沒有肉眼可見的影響。這次的動態(tài)圖視頻就不發(fā)了,大家也不想看廣告對吧^_^


作者: njzr    時間: 2021-10-23 22:19
為什么看不見自己的帖子?暈了
作者: njzr    時間: 2021-10-23 23:11
竟然被吃掉了一貼,碼字實(shí)在是辛苦啊!那就過程不表直接來結(jié)果吧
第二版準(zhǔn)備動手的時候已經(jīng)計(jì)劃要接攝像頭了,網(wǎng)上的主流說法是51接攝像頭必須要用FIFO存下以后慢慢去讀,就算STM32F1系列也推薦用帶FIFO的,直接驅(qū)動速度不夠,刷新率只有幾fps甚至不到1fps。但咱就是明知山有虎偏向虎山行的主,經(jīng)過充分計(jì)算和評估后認(rèn)定可以做到10幀以上!百密一疏的是我簡單認(rèn)為攝像頭的水平方向是排針方向,結(jié)果就是攝像頭與顯示圖象差了90度,作為技術(shù)驗(yàn)證的東西應(yīng)該屬于可接受缺陷吧。
你在看自己的波型,看波形的人在背后看你
選用了6.6包郵(符合我的風(fēng)格)的OV7670攝像頭,使用直接驅(qū)動的方式進(jìn)行圖象采集,攝像頭的時鐘由MCU提供,平均大約在10M多一點(diǎn)滿足攝像頭標(biāo)稱工作最低頻率要求。直接驅(qū)動攝像頭的關(guān)鍵點(diǎn)在時鐘的穩(wěn)定和時序,而時序的正確又很大程度上取決于時鐘的穩(wěn)定,為了綜合考慮各項(xiàng)要求在能夠正確出圖后我又花了兩天時間細(xì)調(diào)時序和時鐘占空比,最終性能確定在14.6fps,其實(shí)可以做到接近18fps但穩(wěn)定性會有明顯下降,時序容易出錯。



這是幀同步信號,最終性能定格在14.6Hz
拍攝一段小豬佩奇看看效果
https://v.youku.com/v_show/id_XNTgxNTAwMDIzMg==.html


作者: njzr    時間: 2021-10-23 23:51
總結(jié)篇
    這次的兩版技術(shù)驗(yàn)證性制作充分證明了現(xiàn)在高性能的51內(nèi)核可以有效驅(qū)動小型TFT和直接驅(qū)動低分辨率攝像頭,如果用STC的新款產(chǎn)品性能應(yīng)該會更好一些,因?yàn)橹蟹f這款MCU雖然主頻高的變態(tài)但受制于中穎內(nèi)核比較老,多周期指令還是很多的,所以最終執(zhí)行效率反而不如其它新廠主頻四十M以上的產(chǎn)品。其實(shí)我本來是打算用STC做的,但STC的端口規(guī)劃太凌亂了而且仿真方面是弱項(xiàng)所以還是選了中穎的MCU,畢竟用了十幾年輕車熟路。
    雖然最終性能指標(biāo)相當(dāng)突出但也還是為了驅(qū)動而驅(qū)動(主要是指攝像頭方面),51內(nèi)核的主流配置對于圖象數(shù)據(jù)量來說太可憐了,只能做個數(shù)據(jù)的搬運(yùn)工,基本不用想做什么處理了,從內(nèi)核運(yùn)算來看還是能夠擠出點(diǎn)時間做簡單處理的無奈RAM太小,即使做完二值化后再存儲也要十幾K容量了,對于51內(nèi)核的MCU基本找不到符合要求的。
    對于中低分辨率TFT屏幕現(xiàn)在的高性能51是可以輕松驅(qū)動的,這完全可以進(jìn)一步應(yīng)用在產(chǎn)品中。
所有程序都是匯編語言寫的,這里就不公開了,有興趣探討的朋友可以就技術(shù)細(xì)節(jié)展開討論。

作者: xjx51    時間: 2021-10-31 11:54
TFT驅(qū)動都用匯編,牛!為你點(diǎn)贊!
作者: hhdsdy    時間: 2021-10-31 13:20
看到此帖我只能膜拜,真的是牛!
作者: Dxiaofeng    時間: 2022-3-4 06:45
找到組織了,我想利用緩存來全屏顯示,可以指教一下不
作者: xa3952163    時間: 2022-3-19 11:01
我用51也是匯編編程,四十年了,輕車熟路。
作者: Chenzy123    時間: 2022-3-24 16:28
還以為是我也能學(xué)的事,,往后一看,,這調(diào)試我都搞不定
作者: zpxm01    時間: 2022-6-25 10:50
工程有點(diǎn)大,一般愛好者難于實(shí)施
作者: wwgk    時間: 2022-6-26 11:44
正想搞個便宜的視頻采集方案,感謝樓主分享
作者: youlinys    時間: 2022-7-7 11:37
資料開源嗎?
作者: llionwang    時間: 2022-12-29 18:15
我用STC16位驅(qū)動LCD,感覺比SPI快不了多少,感覺瓶頸還是在W25Q讀取速度,,,樓主能分享下思路不?
作者: Su_xin    時間: 2023-2-6 08:26
求資料開源
作者: wangwenhai8    時間: 2023-2-7 10:09
老江湖不錯,值得學(xué)習(xí)。
作者: 你個豬頭g    時間: 2023-3-15 13:01
樓主好,能不能分享一下你這個原理圖哈,我想學(xué)習(xí)一下。感激不盡!
作者: joyb    時間: 2023-8-30 09:25
原來是大師級別的
作者: powerdruy    時間: 2023-10-25 17:17
51刷屏,不用匯編做基本難做到流暢,我曾經(jīng)在C8051F340上跑100M主頻刷攝像頭+屏,容易出現(xiàn)畫面出錯,穩(wěn)定性還是不行,但是幀率還可以,要我用匯編寫一遍,那是萬萬干不來了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1