• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

【RT-Thread作品秀】EE-Lab

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

代碼地址.txt

共2個文件

【RT-Thread作品秀】EE-Lab

作者:卿俊成

 

 

概述

隨著集成電路的不斷發(fā)展,電子測量儀器分別向著高性能和微型化不斷發(fā)展。本作品基于微型化便攜式需求,設計一個集成數字電源信號發(fā)生器、示波器的便攜式電子測量儀器。

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

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

 

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

 

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

RT-Thread使用情況概述

本應用使用Nano版RT-Thread,因此只使用了內核部分。

本應用使用信號量作為DMA分批通過SPI刷屏的屏幕數據,在中斷中釋放信號量,用于分批刷屏的同步。

本應用使用Finsh組件作為無GUI情況下的數據查看方式,及命令行方式對AD9833模塊及定時器的操作方式。

硬件框架

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

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

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

信號測試夾用于外部電壓輸入,作為示波器的源信號。

 

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

軟件框架說明

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

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

軟件模塊說明

DMA傳輸ADC數據框圖

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

SPI通過DMA方式刷屏功能框圖

理想情況下的刷屏方式

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

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

演示效果

演示視頻: 

比賽感悟

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

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

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

相關推薦