• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【RT-Thread作品秀】EE-Lab

2020/12/20
311
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

代碼地址.txt

共2個(gè)文件

【RT-Thread作品秀】EE-Lab

作者:卿俊成

 

 

概述

隨著集成電路的不斷發(fā)展,電子測(cè)量?jī)x器分別向著高性能和微型化不斷發(fā)展。本作品基于微型化便攜式需求,設(shè)計(jì)一個(gè)集成數(shù)字電源信號(hào)發(fā)生器、示波器的便攜式電子測(cè)量?jī)x器。

開發(fā)環(huán)境

硬件:ART-Pi開發(fā)板、2.8‘SPI TFT屏幕(ILI9341)、AD9833模塊、自制擴(kuò)展板(由于設(shè)計(jì)失誤,無(wú)法使用)

 

RT-Thread版本: RT-Thread Nano(V3.1.3)

 

開發(fā)工具及版本:STM32CubeMX(V6.1.0)、HAL庫(kù)(H7_V1.8.0)、Keil/MDK(V5.33.0.0)

RT-Thread使用情況概述

本應(yīng)用使用Nano版RT-Thread,因此只使用了內(nèi)核部分。

本應(yīng)用使用信號(hào)量作為DMA分批通過(guò)SPI刷屏的屏幕數(shù)據(jù),在中斷中釋放信號(hào)量,用于分批刷屏的同步。

本應(yīng)用使用Finsh組件作為無(wú)GUI情況下的數(shù)據(jù)查看方式,及命令行方式對(duì)AD9833模塊及定時(shí)器的操作方式。

硬件框架

電腦端通過(guò)Putty軟件與ART-Pi開發(fā)板的Finsh組件通信,實(shí)現(xiàn)控制功能。

SPI TFT屏幕模塊由開發(fā)板的SPI4總線控制,作為波形顯示界面。

AD9833信號(hào)發(fā)生模塊由開發(fā)板通過(guò)模擬SPI控制,作為信號(hào)發(fā)生器。

信號(hào)測(cè)試夾用于外部電壓輸入,作為示波器的源信號(hào)。

 

由于自制擴(kuò)展板存在問(wèn)題,不在此介紹,但附上立創(chuàng)eda工程的在線鏈接: https://oshwhub.com/OneToken/art-pi-ee-tools

軟件框架說(shuō)明

Finsh組件通過(guò)與電腦端交互,控制TIM15的預(yù)裝載值,達(dá)到通過(guò)控制TIM15觸發(fā)DMA_ADC轉(zhuǎn)換的采樣頻率,并在顯存對(duì)應(yīng)位置打點(diǎn),實(shí)現(xiàn)示波器功能。同時(shí)還可以控制AD9833產(chǎn)生頻率不同的三角波、正弦、方波。

屏幕的刷新,由DMA1通道0將內(nèi)部預(yù)先分配好的顯存數(shù)據(jù)搬運(yùn)至SPI移位寄存器,從而發(fā)送至ILI9341,實(shí)測(cè)頻率60Mbit的情況下可以完美刷新,實(shí)現(xiàn)了高速刷屏的功能。

軟件模塊說(shuō)明

DMA傳輸ADC數(shù)據(jù)框圖

通過(guò)定時(shí)器15觸發(fā)DMA1通道1將ADC數(shù)據(jù)循環(huán)采集至指定內(nèi)存處,實(shí)現(xiàn)示波器數(shù)據(jù)采集功能。

SPI通過(guò)DMA方式刷屏功能框圖

理想情況下的刷屏方式

受到DMA一次傳輸數(shù)據(jù)數(shù)目uint16_t也就是65535的限制,無(wú)法一次性完成顯存刷新至屏幕,因此分成三個(gè)數(shù)據(jù)包,依次順序傳輸,使用信號(hào)量作為同步信號(hào)。

最終實(shí)現(xiàn)的刷屏方式

演示效果

演示視頻: 

比賽感悟

通過(guò)本次比賽,極大程度上熟悉了H7系列開發(fā)板,特別是大量參考了安富萊提供的教程,了解了H7的多域設(shè)計(jì),RAM的分布式設(shè)計(jì)以及指定存儲(chǔ)位置,DMA通信只能用于特定的RAM區(qū)和特定的外設(shè)之間,若RAM區(qū)域使用最高性能的DTM區(qū),則大部分DMA通信都無(wú)法使用。在決定使用RT-Thread Nano之前,嘗試使用RT-Thread完整版,按照完整版的流程注冊(cè)SPI設(shè)備并且使用時(shí),發(fā)現(xiàn)無(wú)法驅(qū)動(dòng)SPI液晶屏,使用邏輯分析儀抓取信號(hào)也沒(méi)啥問(wèn)題,因此才換成RT-Thread Nano。

通過(guò)本次的小作品,比較深入的理解了RTOS的作用,特別是用于線程同步時(shí),阻塞下來(lái),等待中斷釋放信號(hào)量的方式,使得分段DMA SPI刷屏也能毫無(wú)感知延時(shí)的連續(xù)刷新。

  • 代碼地址.txt
    下載
  • RT-Thread作品.pdf
    下載
    描述:ART-Pi

相關(guān)推薦

  • 以RT-Thread 為例,分享一下我的學(xué)習(xí)方法
  • 玩轉(zhuǎn)RT-Thread之消息隊(duì)列的應(yīng)用
    文章
    1810
    2024/07/23
  • RT-Thread零基礎(chǔ)快速入門第9講——串口(UART/RS485)
    文章
    6867
    2024/07/11