找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4320|回復(fù): 1
收起左側(cè)

stm32示波器程序及硬件電路設(shè)計(jì) 12位1MHz采樣速率

  [復(fù)制鏈接]
ID:556863 發(fā)表于 2020-11-12 20:43 | 顯示全部樓層 |閱讀模式
設(shè)計(jì)指標(biāo):
主控:                    STM32F103ZET6
液晶屏:                  4.3寸TFT480×272  65K彩色LCD顯示屏  FSMC
AD:                      12位1MHz采樣速率
最高實(shí)時(shí)取樣率:        1Msps  8Bits
取樣緩沖器深度:        5K  
垂直靈敏度:            5V,1V,500mV,200mV,100mV,50mV,20mV,10mV;  
水平時(shí)基范圍:2S,1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS
輸入阻抗:                ≥1MΩ
最高輸入電壓:            30Vpp
耦合方式:                AC/DC
觸發(fā)功能:                實(shí)現(xiàn)自動(dòng)、常規(guī)、單次觸發(fā)方式 ,上升或下降邊沿觸發(fā)  
參數(shù)計(jì)算:                頻率、周期、占空比、交流峰-峰值、平均值
觸發(fā)電平:                觸發(fā)電平高低位置可調(diào),觸發(fā)時(shí)基位置可調(diào)
實(shí)現(xiàn)RUN/STOP功能

功能預(yù)留:
1、波形發(fā)生器:使用STM32一路DA實(shí)現(xiàn)正弦,三角波,方波輸出。 任意一種波形幅值在
               0-3.3V任意可調(diào)、頻率在一定范圍任意可調(diào)、方波占空比可調(diào)。調(diào)節(jié)選項(xiàng)
               可以通過(guò)觸摸屏完成設(shè)置。
2、SD卡存儲(chǔ): SD卡波形存儲(chǔ)輸出,能夠?qū)Ξ?dāng)前屏幕截屏,以JPG格式存儲(chǔ)在SD卡上。能夠存儲(chǔ)1S內(nèi)的波形數(shù)據(jù),可以隨時(shí)調(diào)用查看。
3、數(shù)據(jù)傳輸:  用C#編寫(xiě)上位機(jī),通過(guò)串口完成對(duì)下位機(jī)的控制。初步功能為:(1)實(shí)現(xiàn)STOP/RUN功能(2)輸出波形電壓、時(shí)間參數(shù)(3)控制截屏(4)控制波形發(fā)生器(5)其他
4、圖形接口:  完成UCGUI的移植和使用工作。
5、遠(yuǎn)期計(jì)劃:  添加FFT等等
1、采樣速率:600Sa/s,6kSa/s ,60kSa/s,600kSa/s ,3MSa/s,,6MSa/s,30MSa/s ,60MSa/s
2、水平掃速:250 ns*、500ns、1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms
3、垂直電壓靈敏度:10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0,2V/div, 0.5V/div, 1V/div,
2V/div, 5V/div
4、被測(cè)信號(hào)的各種參數(shù)屏幕顯示,包括頻率、電壓峰峰值等。
Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png 51hei.png

電路原理圖如下:
51hei.png
主程序:
#include "stm32f10x.h"
#include "ucos_ii.h"
#include "app.h"
#include "GUI.h"

#include "usart1.h"
#include "pincfg.h"
#include "delay.h"
#include "tft_api.h"
#include "dac.h"
#include "adc.h"
#include "iwdg.h"
#include "timer.h"
#include "EXTI.H"
#include "oscilloscope.h"
#include "indkey.h"
#include "tsc2046.h"

#include "task_rtc.h"
#include "task_gui.h"
#include "task_sd.h"


/*-----------------------------------------
                                聲明起始任務(wù)棧
------------------------------------------*/
OS_STK  Task_Start_Stk[TASK_START_STK_SIZE];

/*-----------------------------------------
因?yàn)樯婕暗綄?duì)共享資源的訪問(wèn),創(chuàng)建互斥信號(hào)量
------------------------------------------*/
OS_EVENT *LCD_Buffer_MUTEX;
OS_EVENT *USART_Buffer_MUTEX;
OS_EVENT *SDtoRAM_Buffer_MUTEX;
/*-----------------------------------------
                                主 函 數(shù)
------------------------------------------*/   
int main(void)   
{   
         INT8U err;
     SystemInit();                 //初始化RCC時(shí)鐘
         OSInit();
                           
         LCD_Buffer_MUTEX     = OSMutexCreate(4,&err);        //創(chuàng)建3個(gè)共享資源互斥信號(hào)量
         USART_Buffer_MUTEX   = OSMutexCreate(4,&err);
         SDtoRAM_Buffer_MUTEX = OSMutexCreate(4,&err);
            
     OSTaskCreate(Task_Start,(void *)0,&Task_Start_Stk[TASK_START_STK_SIZE-1],TASK_START_PRIO); //起始任務(wù)   
         
         OSStart();      
}
/*-------------------------------------------------------------------------------
函數(shù)功能:初始化各種外設(shè)
說(shuō)    明:因?yàn)榕懿僮飨到y(tǒng),所以外設(shè)的初始化應(yīng)該放在操作系統(tǒng)的初始任務(wù)中完成,不能
          在while(1)循環(huán)外部完成外設(shè)的初始化工作,否則操作系統(tǒng)可能無(wú)法啟動(dòng).
                  本函數(shù)在app.c中被調(diào)用
-------------------------------------------------------------------------------*/
void BSP_Init(void)
{
        OS_CPU_SR  cpu_sr = 0u;
        OS_ENTER_CRITICAL();
        DelayInit();                 //初始化延時(shí)
        PinCfg();                         //外部器件控制配置
        FSMC_LCD_Init();         //FSMC總線配置                  
        GUI_Init();                         //初始化UCGUI界面
        TSC2046_Config();         //初始化觸摸控制器
        USART1_Config();         //初始化串口
        DAC_Config();                 //初始化DAC1
        ADC1_Init();                 //初始化ADC1
        EXTI_Config();                 //初始化外部中斷
        Key_EXTI_Config();         //初始化按鍵中斷
        TIM5_Config(1999,71);  //TIM5以1MHz頻率計(jì)數(shù),每2ms溢出中斷
//        TIM4_Config(59999,71); //TIM4以1MHz頻率計(jì)數(shù),每60ms溢出中斷
        RTC_Init();                            //初始化RTC
//        SD_Init();
        JDQ_ACDC = 1;                  //交流耦合
        ManualGainScan(3);    //調(diào)試用
        IWDG_Init(4,625);     //喂狗時(shí)間為1000ms
        OS_EXIT_CRITICAL();         
}
設(shè)計(jì)文檔:
設(shè)計(jì)指標(biāo):
主控:                                      STM32F103ZET6
液晶屏:                                    4.3TFT480×272  65K彩色LCD顯示屏  FSMC
AD:                                       121MHz采樣速率
最高實(shí)時(shí)取樣率:                 1Msps  8Bits
取樣緩沖器深度:                 5K  
垂直靈敏度:                          5V,1V,500mV,200mV,100mV,50mV,20mV,10mV;
水平時(shí)基范圍:2S,1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS
輸入阻抗:                              1MΩ
最高輸入電壓:                     30Vpp
耦合方式:                              AC/DC
觸發(fā)功能:                              實(shí)現(xiàn)自動(dòng)、常規(guī)、單次觸發(fā)方式 ,上升或下降邊沿觸發(fā)
參數(shù)計(jì)算:                              頻率、周期、占空比、交流峰-峰值、平均值
觸發(fā)電平:                              觸發(fā)電平高低位置可調(diào),觸發(fā)時(shí)基位置可調(diào)
實(shí)現(xiàn)RUN/STOP功能

功能預(yù)留:
1、波形發(fā)生器:使用STM32一路DA實(shí)現(xiàn)正弦,三角波,方波輸出。任意一種波形幅值在
               0-3.3V任意可調(diào)、頻率在一定范圍任意可調(diào)、方波占空比可調(diào)。調(diào)節(jié)選項(xiàng)
                             可以通過(guò)觸摸屏完成設(shè)置。
2、SD卡存儲(chǔ):SD卡波形存儲(chǔ)輸出,能夠?qū)Ξ?dāng)前屏幕截屏,以JPG格式存儲(chǔ)在SD卡上。能夠存儲(chǔ)1S內(nèi)的波形數(shù)據(jù),可以隨時(shí)調(diào)用查看。
3、數(shù)據(jù)傳輸: 用C#編寫(xiě)上位機(jī),通過(guò)串口完成對(duì)下位機(jī)的控制。初步功能為:(1)實(shí)現(xiàn)STOP/RUN功能(2)輸出波形電壓、時(shí)間參數(shù)(3)控制截屏(4)控制波形發(fā)生器(5)其他
4、圖形接口: 完成UCGUI的移植和使用工作。
5、遠(yuǎn)期計(jì)劃: 添加FFT等等
1、采樣速率:600Sa/s,6kSa/s ,60kSa/s600kSa/s ,3MSa/s,,6MSa/s,30MSa/s 60MSa/s
2、水平掃速:250 ns*、500ns1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms
3、垂直電壓靈敏度:10mV/div, 20mV/div, 50mV/div,0.1V/div, 0,2V/div, 0.5V/div, 1V/div,
2V/div,5V/div
4、被測(cè)信號(hào)的各種參數(shù)屏幕顯示,包括頻率、電壓峰峰值等。

硬件電路

51hei.png

全部資料51hei下載地址(資料為網(wǎng)上轉(zhuǎn)載,PCB還未布線,還有一些不完善,望大家一起來(lái)完善):
硬件設(shè)計(jì).zip (2.65 MB, 下載次數(shù): 82)
設(shè)計(jì)文檔.zip (60.19 KB, 下載次數(shù): 67)
源代碼.7z (1.29 MB, 下載次數(shù): 88)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:883177 發(fā)表于 2021-2-7 16:06 | 顯示全部樓層
好的論壇,好的學(xué)習(xí)資源,學(xué)習(xí),學(xué)習(xí)這個(gè)春節(jié)加強(qiáng)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表