王鵬舉,何 豐,陳國(guó)平,管 春,張 祥
(重慶郵電大學(xué) 光電工程學(xué)院,重慶400065)
近年來(lái),電子設(shè)備飛速發(fā)展,關(guān)于人機(jī)界面顯示的開發(fā)也越來(lái)越多。因?yàn)楸∧ぞw管液晶顯示屏(TFT-LCD)性價(jià)比高,所以在嵌入式系統(tǒng)顯示應(yīng)用中占了主要部分[1]。在電源領(lǐng)域也不例外,但是目前市面上絕大部分的臺(tái)式電源的人機(jī)交互都采用LCD顯示輸出加機(jī)械按鍵輸入的形式,如文獻(xiàn)[2]利用AT89C51單片機(jī)設(shè)計(jì)了一款簡(jiǎn)單靈活、經(jīng)濟(jì)、攜帶方便的數(shù)字穩(wěn)壓電源,但其機(jī)械按鍵的設(shè)計(jì)存在按鍵易磨損、不易調(diào)準(zhǔn)、電路構(gòu)成復(fù)雜等缺點(diǎn)。
針對(duì)上述問(wèn)題,本文設(shè)計(jì)了一種TFT液晶屏觸摸顯示系統(tǒng),采用480×272分辨率TFT觸摸彩屏作為電源系統(tǒng)的人機(jī)交互部分,實(shí)現(xiàn)對(duì)電源系統(tǒng)的觸摸控制。并利用STM32的可變存儲(chǔ)控制器(FMC)擴(kuò)展外部同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)作為顯存,同時(shí)用其顯示控制器(LTDC)直接驅(qū)動(dòng)液晶顯示面板,簡(jiǎn)化了系統(tǒng)電路結(jié)構(gòu)。提出了一種基于STM32的可編程電源人機(jī)交互新方案,滿足了數(shù)字電源系統(tǒng)高可靠性要求。此外,通過(guò)移植STemWin縮短和降低了界面設(shè)計(jì)的過(guò)程和難度。通過(guò)嵌入FreeRTOS實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)系統(tǒng)任務(wù)的穩(wěn)定運(yùn)行。擴(kuò)展了TFT液晶屏的適應(yīng)性和使用范圍[3]。
數(shù)字電源系統(tǒng)如圖1所示??删幊坦β瘦敵霾糠钟砷_關(guān)預(yù)調(diào)節(jié)模塊和線性后穩(wěn)壓模塊構(gòu)成,前級(jí)預(yù)調(diào)節(jié)模塊采用降壓Buck拓?fù)?,高效地降低電壓,減少整個(gè)系統(tǒng)的損耗。線性后調(diào)節(jié)模塊采用基于線性穩(wěn)壓芯片LT3081的穩(wěn)壓結(jié)構(gòu),極大地抑制由前級(jí)開關(guān)帶來(lái)的噪音和干擾,實(shí)現(xiàn)精準(zhǔn)低紋波輸出。線性后穩(wěn)壓的輸出電壓由DAC通過(guò)放大電路進(jìn)行控制。輸出電壓通過(guò)跟蹤電路反饋給前級(jí)開關(guān)預(yù)調(diào)節(jié)模塊,通過(guò)調(diào)節(jié)控制開關(guān)導(dǎo)通信號(hào)的占空比大小,實(shí)現(xiàn)前級(jí)輸出跟隨的目的。讓前級(jí)的輸出電壓始終比后級(jí)只高2 V左右,以此來(lái)減小線性后穩(wěn)壓部分的壓降損耗,提高效率。
圖1 電源系統(tǒng)總體框圖Fig.1 General block diagram of power supply system
可編程電壓的實(shí)現(xiàn)過(guò)程為:控制器接收處理來(lái)自觸摸顯示屏的用戶操作,通過(guò)SPI通信控制調(diào)節(jié)監(jiān)控芯片AD7292的DAC電壓的輸出大小,DAC的輸出通過(guò)放大電路控制線性調(diào)節(jié)的輸出。
如圖2所示,顯示部分大致可以分為5部分,微控制器(MCU)、TFT液晶顯示屏、SDRAM模塊、SD卡的讀寫模塊和其他外設(shè)。微控制器接收來(lái)自觸摸控制模塊的信息并加以處理,LCD屏作為主要輸出設(shè)備用以顯示圖像信息,SDRAM主要作為L(zhǎng)CD屏的顯存及動(dòng)態(tài)內(nèi)存設(shè)備,為L(zhǎng)CD顯示提供支持,SD卡讀寫模塊存儲(chǔ)圖片等作為外部存儲(chǔ)設(shè)備為界面設(shè)計(jì)提供資源。
圖2 系統(tǒng)總體架構(gòu)圖Fig.2 System architecture diagram
FMC可以驅(qū)動(dòng)包括SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器)、SDRAM(同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)、NOR FLASH 以及NAND FLSAH 類型的存儲(chǔ)器[4]。因FMC將外部存儲(chǔ)單元直接映射到STM32內(nèi)部尋址空間,所以可以直接通過(guò)訪問(wèn)地址來(lái)讀寫數(shù)據(jù),只需在程序中定義指向該地址的指針,完成FMC_SDCR 控制寄存器和FMC_SDTR 時(shí)序寄存器的配置后就可由FMC自動(dòng)完成數(shù)據(jù)訪問(wèn)。
圖3所示為處理器內(nèi)核的存儲(chǔ)空間與STM32 FMC 外設(shè)地址的映射關(guān)系。SDRAM 的存儲(chǔ)區(qū)域被分成了兩塊:Bank1 和Bank2,由FMC_SDCKE 時(shí)鐘使能信號(hào)線和FMC_SDCLK 信號(hào)線決定存儲(chǔ)區(qū)域,選擇FMC_SDCKE0 和FMC_SDCLK0,地址范圍是0xC0000000-0xCFFFFFFF,而選擇FMC_SDCKE1 和FMC_SDCLK1,地址范圍是0xD0000000-0xDFFFFFFF。
圖3 FMC 的地址映射Fig.3 Address mapping for the FMC
SDRAM和內(nèi)部SRAM功能一樣[5],但SDRAM容量較大,價(jià)格卻很便宜,所以使用SDRAM能很大程度降低外擴(kuò)內(nèi)存的成本且較好地支持GUI的開發(fā)。本次設(shè)計(jì)選用的芯片是IS42S16400J-7TL,內(nèi)存大小為8 M,支持FMC接口。
SDRAM與MCU的連接如圖4所示,相連的引腳主要為地址線和數(shù)據(jù)線,還有一些具有特定功能的引腳。設(shè)計(jì)使用的存儲(chǔ)區(qū)域?yàn)锽ank2,需要選擇FMC_SDCKE1 和FMC_SDCLK1,地址線為12根,地址范圍為0xD0000000-0xD0FFFFFF,有16根數(shù)據(jù)線。
圖4 SDRAM 硬件連接圖Fig.4 SDRAM hardware connection diagram
在STM32F7系列微處理器中,內(nèi)部自帶一個(gè)LTDC 液晶控制器,將帶有LTDC功能的引腳連接至LCD-TFT面板,就可通過(guò)處理器直接控制面板顯示圖像。
圖5所示為L(zhǎng)TDC控制器內(nèi)部結(jié)構(gòu)和外部與TFT液晶屏的連線圖。LTDC內(nèi)部有圖像處理單元、寄存器及時(shí)鐘信號(hào)。圖像處理單元可處理兩層圖像。外部通過(guò)信號(hào)線與顯示屏連接,用以驅(qū)動(dòng)液晶顯示面板。此外,由于顯示的數(shù)據(jù)容量非常大,ST公司為提高芯片的圖像處理能力設(shè)計(jì)了一款圖形專用DMA,即DMA2D,用于對(duì)圖像進(jìn)行填充和搬運(yùn)而完全不用CPU干預(yù),它可以快速繪制矩形、直線,進(jìn)行分層數(shù)據(jù)混合、數(shù)據(jù)復(fù)制以及圖像數(shù)據(jù)格式轉(zhuǎn)換。
圖5 LTDC硬件連接圖Fig.5 Diagram of LTDC hardware connection
圖6所示為液晶屏背光電源模塊,選擇TPS61169芯片為液晶屏背光提供18 V的電源電壓。TPS61169 是一款升壓轉(zhuǎn)換器,配有額定電壓為40 V的集成開關(guān)場(chǎng)效應(yīng)晶體管(FET),可驅(qū)動(dòng)LED串。升壓轉(zhuǎn)換器內(nèi)部具有一個(gè)40 V、1.8 A的金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管(MOSFET),電流下限為1.2 A,可針對(duì)小型或大型面板背光照明驅(qū)動(dòng)單個(gè)LED或LED串。運(yùn)行期間,LED電流可通過(guò)施加到CTRL引腳上的脈寬調(diào)制(PWM)信號(hào)加以控制,該信號(hào)占空比的大小決定了反饋引腳(FB)電壓的大小。因此,可以通過(guò)控制CTRL引腳的PWM達(dá)到控制液晶屏亮度的效果。
圖6 電源電路原理圖Fig.6 Schematic diagram of power supply circuit
圖7所示為控制器與數(shù)字電源系統(tǒng)的SPI接口設(shè)計(jì)圖。選擇控制器的第5組SPI接口與監(jiān)控芯片AD7292相應(yīng)引腳進(jìn)行連接,實(shí)現(xiàn)通信功能,控制器通過(guò)AD7292實(shí)現(xiàn)對(duì)電源系統(tǒng)的控制和監(jiān)測(cè)。AD7292是一款集通用模擬信號(hào)監(jiān)控和控制所需功能于一體的單芯片,具有一個(gè)8通道10位ADC、4個(gè)10位DAC、一個(gè)精度為±1 ℃的內(nèi)部溫度傳感器以及12個(gè)GPIO,可協(xié)助系統(tǒng)監(jiān)控和控制。其中,10位高速低功耗逐次逼近型(SAR)ADC專為監(jiān)控多種單端輸入信號(hào)而設(shè)計(jì)。AD7292提供寄存器可編程ADC序列器,可選擇用于轉(zhuǎn)換的可編程通道序列。
圖7 SPI通信接口連接圖Fig.7 Diagram of SPI communication interface connection
系統(tǒng)的軟件編譯環(huán)境是Keil MDK,程序初始化配置使用STM32CubeMX軟件。因?yàn)樵撥浖贑ube庫(kù),所以它能夠調(diào)用完整的HAL庫(kù)進(jìn)行開發(fā),而它具備的圖形向?qū)匦阅軌蚝艽蟪潭葴p少開發(fā)工作量,其支持全系列的STM32芯片。所以對(duì)于STM32單片機(jī)開發(fā)者來(lái)說(shuō),只需簡(jiǎn)單地根據(jù)圖形界面向?qū)?lái)配置參數(shù),就能夠很方便地初始化程序代碼。FreeRTOS和STemwin的移植也可直接在CubeMX進(jìn)行配置完成。FreeRTOS有諸多優(yōu)點(diǎn),可以滿足中小型嵌入式系統(tǒng)對(duì)RTOS的需求。用戶可根據(jù)需求配置任務(wù)管理、內(nèi)存管理、時(shí)間管理、通訊管理等基本管理功能[6]。
數(shù)字電源系統(tǒng)的任務(wù)劃分如表1所示,單獨(dú)用一個(gè)任務(wù)實(shí)現(xiàn)人機(jī)交互功能,即GUI任務(wù)。GUI任務(wù)是除了空閑任務(wù)以外優(yōu)先級(jí)最低的任務(wù),因?yàn)閑mWin極占用系統(tǒng)資源而且時(shí)間較長(zhǎng),如果這個(gè)任務(wù)設(shè)置為高優(yōu)先級(jí),會(huì)直接影響低優(yōu)先級(jí)任務(wù)的執(zhí)行。電源系統(tǒng)任務(wù)是優(yōu)先級(jí)最高的,因?yàn)槠淙蝿?wù)是實(shí)現(xiàn)電源系統(tǒng)主要功能且需要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。
表1 系統(tǒng)任務(wù)劃分Tab.1 System task division
SDRAM初始化流程與讀寫流程如圖8、圖9所示,其中tRP、tRFC、tMRD為SDRAM中很重要的參數(shù),需要根據(jù)具體的芯片進(jìn)行配置。具體配置如下:由硬件連接決定選擇存儲(chǔ)區(qū)域SDRAM bank2,列數(shù)為8位2進(jìn)制數(shù),行數(shù)則為12位,CAS潛伏期根據(jù)時(shí)鐘定為2個(gè)周期,寫保護(hù)一般配置為無(wú),SDRAM 時(shí)鐘配置為2分頻,即108 MHz,每個(gè)周期時(shí)間為9.25 ns,CAS潛伏期后直接讀取數(shù)據(jù)。加載模式寄存器命令和激活或刷新命令之間的延遲為2個(gè)周期。發(fā)出自刷新命令到發(fā)出激活命令之間的延遲設(shè)為7個(gè)時(shí)鐘周期,即7×9.25 ns=64.75 ns。最短自刷新周期設(shè)為5個(gè)時(shí)鐘周期,即5×9.25=46.25 ns,約大于最小值42 ns。刷新命令和激活命令之間的延遲設(shè)為7個(gè)時(shí)鐘周期,即7×9.25=64.75 ns,約大于最小值63 ns。寫命令和預(yù)充電命令之間的延遲設(shè)為2個(gè)時(shí)鐘周期。預(yù)充電命令與其他命令之間的延遲設(shè)為2個(gè)時(shí)鐘周期,即2×9.25=18.5 ns,約大于最小值15 ns。激活命令與讀/寫命令之間的延遲設(shè)為2個(gè)時(shí)鐘周期。
圖8 SDRAM初始化流程Fig.8 SDRAM initialization process
圖9 SDRAM讀寫流程Fig.9 SDRAM read-write flow
對(duì)應(yīng)代碼如下:
void MX_FMC_Init(void){
FMC_SDRAM_TimingTypeDef SdramTiming={0};
hsdram1.Instance=FMC_SDRAM_DEVICE;
/* SDRAM初始化配置 */
hsdram1.Init.SDBank=FMC_SDRAM_BANK2;//使用BANK2
hsdram1.Init.ColumnBitsNumber=FMC_SDRAM_COLUMN_BITS_NUM_8;
hsdram1.Init.RowBitsNumber=FMC_SDRAM_ROW_BITS_NUM_12;
hsdram1.Init.MemoryDataWidth=FMC_SDRAM_MEM_BUS_WIDTH_16;
hsdram1.Init.InternalBankNumber=FMC_SDRAM_INTERN_BANKS_NUM_4;
hsdram1.Init.CASLatency=FMC_SDRAM_CAS_LATENCY_3;
hsdram1.Init.WriteProtection=FMC_SDRAM_WRITE_PROTECTION_DISABLE;
hsdram1.Init.SDClockPeriod=FMC_SDRAM_CLOCK_PERIOD_2;
hsdram1.Init.ReadBurst=FMC_SDRAM_RBURST_DISABLE;
hsdram1.Init.ReadPipeDelay=FMC_SDRAM_RPIPE_DELAY_1;
/* SDRAM時(shí)序參數(shù)配置 */
SdramTiming.LoadToActiveDelay=2;//加載延時(shí)2個(gè)時(shí)鐘周期
SdramTiming.ExitSelfRefreshDelay=7;
SdramTiming.SelfRefreshTime=4; //自刷新時(shí)間4個(gè)時(shí)鐘周期
SdramTiming.RowCycleDelay=6;
SdramTiming.WriteRecoveryTime=2;
SdramTiming.RPDelay=2;
SdramTiming.RCDDelay=2;}
本文介紹的是通過(guò)LDTC控制RGB接口的屏幕,即屏幕是不帶控制器的,與帶控制芯片的8080系列接口的屏幕不同。RGB時(shí)序圖如圖10所示,RGB接口的屏幕是通過(guò)MCU不斷發(fā)送顯示數(shù)據(jù)到屏幕,逐行掃描顯示。
圖10 RGB時(shí)序圖Fig.10 Diagram of RGB sequence
其中VSYNC表示垂直同步信號(hào),當(dāng)LCD屏一幀的數(shù)據(jù)傳輸結(jié)束時(shí),該信號(hào)線電平跳變。HSYNC表示水平同步信號(hào),當(dāng)某一行數(shù)據(jù)傳輸完畢,該信號(hào)線會(huì)發(fā)生電平跳變。VDEN是數(shù)據(jù)使能信號(hào)。對(duì)應(yīng)參數(shù)配置代碼如下:
void MX_LCD_Init(void){
/*配置LTDC */
hltdc.Instance=LTDC;
hltdc.Init.HSPolarity=LTDC_HSPOLARITY_
AL;
hltdc.Init.VSPolarity=LTDC_VSPOLARITY_
AL;
hltdc.Init.DEPolarity=LTDC_DEPOLARITY_
AL;
hltdc.Init.PCPolarity=LTDC_PCPOLARITY_
IPC;
hltdc.Init.HorizontalSync=19;//配置水平刷新時(shí)間
hltdc.Init.VerticalSync=2; //配置垂直刷新時(shí)間
hltdc.Init.AccumulatedHBP=159;
hltdc.Init.AccumulatedVBP=22;
hltdc.Init.AccumulatedActiveW=1183;
hltdc.Init.AccumulatedActiveH=622;
hltdc.Init.TotalWidth=1343;
hltdc.Init.TotalHeigh=634;
hltdc.Init.Backcolor.Blue=0;
hltdc.Init.Backcolor.Green=0;
hltdc.Init.Backcolor.Red=0;//設(shè)置背景色
pLayerCfg.WindowX0=0;
pLayerCfg.WindowX1=480;
pLayerCfg.WindowY0=0;
pLayerCfg.WindowY1=272;//坐標(biāo)點(diǎn)配置
pLayerCfg.PixelFormat=LTDC_PIXEL_FORMAT_RGB888;//配置為RGB88格式
pLayerCfg.Alpha=0xFF;
pLayerCfg.Alpha0=0;
pLayerCfg.BlendingFactor1=LTDC_BLENDING_FACTOR1_PAxCA;
pLayerCfg.BlendingFactor2=LTDC_BLENDING_FACTOR2_PAxCA;
pLayerCfg.FBStartAdress=0xD0000000;
pLayerCfg.ImageWidth=480;
pLayerCfg.ImageHeight=272;
pLayerCfg.Backcolor.Blue=0;
pLayerCfg.Backcolor.Green=0;
pLayerCfg.Backcolor.Red=0;}
關(guān)于LTDC參數(shù)配置,首先由硬件決定分辨率為480×272,設(shè)置像素點(diǎn)寬度為480,高度為272。然后是圖層的配置:考慮到內(nèi)存大小,圖層數(shù)設(shè)為1層;設(shè)置窗口從坐標(biāo)(0,0)開始,大小為480×272像素點(diǎn);像素點(diǎn)格式設(shè)為RGB888;層的透明度設(shè)置為0xFF;顯存起始地址設(shè)置為0xD000 0000,即外部SDRAM映射地址的首地址,背景顏色默認(rèn)為黑色。
觸摸芯片一般集成在LCD屏上,本次設(shè)計(jì)所使用的是109.2 mm(4.3 in)電容觸摸屏,配套的觸控芯片是GT911,其內(nèi)部結(jié)構(gòu)框圖如圖11所示。
圖11 GT911內(nèi)部框圖Fig.11 Internal block diagram of GT911
由圖可知,想要驅(qū)動(dòng)GT911,只需要關(guān)心4個(gè)引腳即可,即I2C通訊接口SCL和SDA,中斷信號(hào)引腳INT和復(fù)位引腳/RSTB。
GT911主要通過(guò)標(biāo)準(zhǔn)I2C協(xié)議進(jìn)行數(shù)據(jù)傳輸,從設(shè)備地址有兩組:0xBA/0xBB 和0x28/0x29,可以在上電初始化時(shí)控制Reset 和INT 口狀態(tài)進(jìn)行設(shè)定。圖12為設(shè)定0xBA/0xBB設(shè)備時(shí)的上電時(shí)序圖。
圖12 上電時(shí)序圖Fig.12 Power on timing diagram
在MX中進(jìn)行初始化,設(shè)置PD7為外部中斷,采用軟件I2C方式通訊,所以只需將PD11、PD12、PD13設(shè)為通用輸出引腳,根據(jù)I2C原理編寫軟件I2C底層操作函數(shù),寫入CT12C.c文件,并將聲明放在CT12C.h文件中,在GT911.c中進(jìn)行調(diào)用。由前文的GT911通訊原理可以寫出讀寫寄存器操作函數(shù)如下:
static uint8_t GT911_WR_Reg(uint16_t reg,uint8_t *buf,uint8_t len){
uint8_t i;
uint8_t ret=0;
CT_I2C_Start();
CT_I2C_Send_Byte(CT_CMD_WR);
CT_I2C_Wait_Ack();
CT_I2C_Send_Byte(reg>>8);
CT_I2C_Wait_Ack();
CT_I2C_Send_Byte(reg&0XFF);
CT_I2C_Wait_Ack();
for(i=0;i {CT_I2C_Send_Byte(buf[i]); ret=CT_I2C_Wait_Ack(); if(ret)break; } CT_I2C_Stop(); return ret;} static void GT911_RD_Reg(uint16_t reg,uint8_t *buf,uint8_t len){ uint8_t i; CT_I2C_Start(); CT_I2C_Send_Byte(CT_CMD_WR); CT_I2C_Wait_Ack(); CT_I2C_Send_Byte(reg>>8); CT_I2C_Wait_Ack(); CT_I2C_Send_Byte(reg&0XFF); CT_I2C_Wait_Ack(); CT_I2C_Stop(); CT_I2C_Start(); CT_I2C_Send_Byte(CT_CMD_RD); CT_I2C_Wait_Ack(); for(i=0;i {buf[i]=CT_I2C_Read_Byte(i==(len-1)?0:1);} CT_I2C_Stop(); } 觸摸狀態(tài)掃描函數(shù)軟件流程圖如圖13所示,該函數(shù)需要放在定時(shí)器中斷中,間隔一段時(shí)間執(zhí)行一次,獲取觸摸點(diǎn)的信息。首先對(duì)觸摸中斷是否被觸發(fā)進(jìn)行判斷,如有被觸發(fā)則再判斷寄存器的值,當(dāng)寄存器中有值時(shí)讀取觸摸點(diǎn)的個(gè)數(shù),根據(jù)個(gè)數(shù)再讀取觸摸點(diǎn)的值并更新信息。 圖13 觸摸狀態(tài)掃描函數(shù)流程圖Fig.13 Flow chart of touch state scan function emWin是Segger公司為嵌入式平臺(tái)開發(fā)的高效穩(wěn)定的圖形軟件庫(kù),能夠用于提供有效的,獨(dú)立于處理器和顯示控制器的圖形用戶界面[7]。利用STemWin自帶的GUIBuilder工具可初步完成每個(gè)頁(yè)面的設(shè)計(jì),并利用emWin的API函數(shù)實(shí)現(xiàn)對(duì)頁(yè)面各個(gè)控件的優(yōu)化,最終設(shè)計(jì)出美觀、人性化的界面。 圖14為各頁(yè)面執(zhí)行流程圖,在設(shè)計(jì)時(shí)根據(jù)系統(tǒng)功能需求而設(shè)計(jì)了不同的顯示頁(yè)面,根據(jù)用戶的操作并利用emWin的WM_HideWindow()和WM_ShowWindow()函數(shù)實(shí)現(xiàn)頁(yè)面切換的功能。 圖14 頁(yè)面執(zhí)行流程圖Fig.14 Page execution flowchart 圖15、圖16、圖17分別為最終設(shè)計(jì)完成的界面和實(shí)際應(yīng)用情況,可以看出顯示效果清晰流暢。通過(guò)對(duì)界面進(jìn)行觸摸操作,如設(shè)置輸出電壓、電流等,測(cè)試其對(duì)系統(tǒng)的控制和監(jiān)控情況。 圖15 系統(tǒng)主頁(yè)面Fig.15 System main page 圖16 設(shè)置輸出頁(yè)面Fig.16 Setting of output page 圖17 實(shí)際應(yīng)用情況Fig.17 Practical application 圖18所示為顯示屏對(duì)電源系統(tǒng)雙通道的實(shí)時(shí)監(jiān)控情況,通道一和通道二電壓、電流預(yù)設(shè)值均為10 V、1 A,左邊為通道一帶50 Ω負(fù)載電阻時(shí)的屏幕顯示情況。因輸出電壓設(shè)置為10 V,負(fù)載為50 Ω,所以輸出電流理論值為200 mA,沒有超過(guò)預(yù)設(shè)電流值,電源處于恒壓模式輸出。右邊為通道二帶1 Ω負(fù)載電阻時(shí)的屏幕顯示情況。因輸出電壓設(shè)置為10 V,負(fù)載為1 Ω,所以輸出電流理論值為10 A,超過(guò)預(yù)設(shè)電流值,電源處于恒流模式輸出。此時(shí)實(shí)時(shí)輸出電壓顯示為950 mV,與理論輸出值1 V相差較大,其誤差由負(fù)載電阻實(shí)際值與其標(biāo)稱值1 Ω的誤差導(dǎo)致。 圖18 雙通道實(shí)時(shí)監(jiān)控情況Fig.18 Dual channel real-time monitoring situation 系統(tǒng)用STM32F7作為核心處理器,采用109.2 mm(4.3 in)LCD觸摸屏實(shí)現(xiàn)電源的人機(jī)交互功能,通過(guò)LCD觸摸屏采用數(shù)字輸入的形式克服了采用機(jī)械按鍵作為輸入的直流電源存在的輸入值不精確、電位器不易調(diào)準(zhǔn)等問(wèn)題。該系統(tǒng)顯示效果清晰,能對(duì)電源系統(tǒng)進(jìn)行實(shí)時(shí)控制和監(jiān)測(cè)顯示。此外,系統(tǒng)還通過(guò)移植FreeRTOS實(shí)時(shí)操作系統(tǒng)和emWin,在提高系統(tǒng)的實(shí)時(shí)穩(wěn)定性的同時(shí)縮短了界面開發(fā)流程。本文設(shè)計(jì)為TFT觸摸屏在電源領(lǐng)域的應(yīng)用提供了參考。4.4 emWin界面制作
5 實(shí)驗(yàn)結(jié)果
6 結(jié) 論