產(chǎn)品實(shí)物:
一、產(chǎn)品概述
數(shù)字電壓電流表,又稱為數(shù)顯電流電壓表,是以數(shù)字形式顯示,能夠同時(shí)檢測(cè)電流和電壓兩種電參量的儀表。隨著數(shù)字技術(shù)和微電腦技術(shù)的不斷發(fā)展,這類儀表以芯片為核心,廣泛應(yīng)用于工業(yè)自動(dòng)化和工控領(lǐng)域。
數(shù)字電壓電流表通常與各種傳感器、變送器配合使用,用于測(cè)量電量、壓力、物位、液位、流量、溫度等參數(shù),并直接以數(shù)字形式顯示測(cè)量結(jié)果。例如,它可以用于測(cè)量各種電路元件的電壓,如電源電壓、電容電壓、電感電壓等。此外,在電子設(shè)備的維修與調(diào)試中,數(shù)字電壓電流表也發(fā)揮著重要作用,通過(guò)測(cè)量電路中的電壓,技術(shù)人員可以判斷電子元件、電路板的工作狀態(tài),快速定位故障點(diǎn),提高維修效率。
與指針式儀表相比,數(shù)字電壓電流表具有很高的輸入阻抗,使得其自身?yè)p耗很小,無(wú)需對(duì)其損耗誤差進(jìn)行修正。然而,數(shù)字儀表也存在一些不足之處,如在某些特定應(yīng)用場(chǎng)景下可能不如指針式儀表直觀。
總的來(lái)說(shuō),數(shù)字電壓電流表以其高準(zhǔn)確度、直觀性、自動(dòng)化和多功能性等特點(diǎn),在電力、電子、通信、自動(dòng)化控制等領(lǐng)域得到了廣泛的應(yīng)用,并為相關(guān)行業(yè)的技術(shù)人員提供了強(qiáng)大的工具,幫助他們更高效地進(jìn)行設(shè)備的測(cè)量、調(diào)試和維修工作。
二、主控MCU選擇
本方案采用CW32F003E4P7芯片片作為核心控制單元,負(fù)責(zé)整個(gè)系統(tǒng)的數(shù)據(jù)處理和控制。
CW32003E4P7的產(chǎn)品特性如下:
? 內(nèi)核:ARM? Cortex?-M0+
- 最高主頻 48MHz
? 工作溫度:-40℃至 105℃;工作電壓:1.65V 至 5.5V
? 存儲(chǔ)容量
- 最大 20K 字節(jié) FLASH,數(shù)據(jù)保持 25 年 @85℃
- 最大 3K 字節(jié) RAM,支持奇偶校驗(yàn)
-22 字節(jié) OTP 存儲(chǔ)器
? CRC 硬件計(jì)算單元
l 復(fù)位和電源管理
- 低功耗模式(Sleep,DeepSleep)
- 上電和掉電復(fù)位(POR/BOR)
- 可編程低電壓檢測(cè)器(LVD)
? 時(shí)鐘管理
- 內(nèi)置 48MHz RC 振蕩器
- 內(nèi)置 32kHz RC 振蕩器
- 內(nèi)置 10kHz RC 振蕩器
- 內(nèi)置 150kHz RC 振蕩器
- 外部引腳輸入時(shí)鐘
- 允許獨(dú)立關(guān)斷各外設(shè)時(shí)鐘
? 支持最多 21 路 I/O 接口
- 所有 I/O 口支持中斷功能
- 所有 I/O 支持中斷輸入濾波功能
- 12 位精度,±1 LSB
- 最高 1M SPS 轉(zhuǎn)換速度
- 內(nèi)置電壓參考
- 內(nèi)置溫度傳感器
? 雙路電壓比較器
? 定時(shí)器
- 16 位高級(jí)控制定時(shí)器,支持 6 路捕獲 / 比較通道和 3 對(duì)互補(bǔ) PWM 輸出,死區(qū)時(shí)間和靈活的同步功能
- 一組 16 位通用定時(shí)器
- 三組 16 位基本定時(shí)器
- 窗口看門狗定時(shí)器
- 獨(dú)立看門狗定時(shí)器
? 通信接口
- 兩路低功耗 UART,支持小數(shù)波特率
- 一路 SPI 接口 12Mbit/s
- 一路 I2C 接口 1Mbit/s
- IR 調(diào)制器
? 串行調(diào)試接口 (SWD)
三、方案組成框圖設(shè)計(jì)
四、參數(shù)功能列表
(1) 電壓測(cè)量范圍:0-33V。(2) 電流測(cè)量范圍:0-3A。(3) 顯示分辨率:電壓0.01V,電流0.01A。 (4) 測(cè)量精度:電壓±0.02V,電流±0.02A。(5) 工作溫度:-20℃~100℃。(6) 顯示方式:雙排3位數(shù)碼管顯示,實(shí)時(shí)顯示當(dāng)前電壓和電流。(響應(yīng)時(shí)間≤0.2秒)(7) 顯示分辨率:3位數(shù)字顯示。根據(jù)輸入量程,自動(dòng)換檔,以盡量兼顧顯示分辨率及測(cè)量精度。(8) 有儀表的標(biāo)定和校準(zhǔn)功能。(利用按鍵或藍(lán)牙)五
方案主要硬件設(shè)計(jì)
1.電壓檢測(cè):
通過(guò)適當(dāng)?shù)姆謮弘娐罚瑢⒋郎y(cè)電壓降低到CW32芯片可接受的范圍內(nèi),然后接入CW32的ADC(模數(shù)轉(zhuǎn)換器)進(jìn)行數(shù)字化處理。數(shù)字電壓電流表的采樣電路原理圖如下圖所示,
分壓電阻為220K+10K,因此分壓比例為22:1。
如果使用1.5V作為參考電壓,根據(jù)R8和R7的阻值配比可以得到最高采樣電壓為:
1.5 / 10 * (220 + 10)= 34.5V因此可以滿足33V的輸入范圍要求。如果在實(shí)際使用中,需要測(cè)量的電壓或高于模塊33V的設(shè)計(jì)電壓,可以選擇更換分壓電阻或通過(guò)修改基準(zhǔn)電壓來(lái)實(shí)現(xiàn)更大量程的電壓測(cè)量范圍。考慮到被測(cè)電源可能存在波動(dòng),在電路設(shè)計(jì)時(shí),在低側(cè)分壓電阻上并聯(lián)了0.1uF的濾波電容提高測(cè)量穩(wěn)定性。另外,在產(chǎn)品設(shè)計(jì)中,考慮精度問(wèn)題,電阻選擇千分之一精度。
2. 電流檢測(cè):
采用低側(cè)電流采樣電路進(jìn)行電流檢測(cè),采樣電路的低側(cè)與表頭供地。
本項(xiàng)目設(shè)計(jì)的采樣電流為3A,選擇的采樣電阻為100mΩ。
采樣選型主要需要參考以下幾個(gè)方面:
設(shè)計(jì)測(cè)量電流的最大值,本項(xiàng)目中為3A;
(1) 檢流電阻帶來(lái)的壓差,一般不建議超過(guò)0.5V;
(2) 檢流電阻的功耗,應(yīng)當(dāng)根據(jù)該參數(shù)選擇合適的封裝,本項(xiàng)目考慮到PCB尺寸,選擇了2512封裝;
(3) 檢流電阻上電壓的放大倍數(shù):本項(xiàng)目中沒(méi)有使用放大電路,因此倍率為1。
隨后便可以通過(guò)以上參數(shù)計(jì)算出檢流的阻值選擇:
(1) 由于本項(xiàng)目沒(méi)有使用放大電路,因此需要選擇更大的采樣電阻獲得更高的被測(cè)電壓以便于進(jìn)行測(cè)量;
(2) 考慮到更大的電阻會(huì)帶來(lái)更大的壓差、更高的功耗,因此也不能無(wú)限制的選擇更大的電阻;
(3) 本項(xiàng)目選用了2512封裝的電阻,對(duì)應(yīng)的溫升功率為1W。
綜合以上數(shù)據(jù),本項(xiàng)目選擇了100mΩ的檢流電阻,根據(jù)公式可以計(jì)算出3A*100mΩ=300mV,900mW。表頭在設(shè)計(jì)時(shí)考慮到了貼片采樣電阻不能夠應(yīng)對(duì)不同的使用環(huán)境,尤其是電流較大的場(chǎng)景,因此預(yù)留了10mm間距的康銅絲直插焊盤,可以更具實(shí)際使用場(chǎng)景,使用康銅絲替換貼片采樣電阻。下圖中紅色方框框選出的即是康銅絲焊接焊盤。
3. 藍(lán)牙通訊電路:
使用KT6368A作為藍(lán)牙主控芯片。
只需要通過(guò)藍(lán)牙進(jìn)行數(shù)據(jù)透?jìng)鳎簿褪峭ㄟ^(guò)藍(lán)牙把數(shù)據(jù)發(fā)送出去,便于用戶通過(guò)手機(jī)或電腦對(duì)被測(cè)電壓電流進(jìn)行無(wú)線監(jiān)控,不需要其他復(fù)雜功能,因此本項(xiàng)目中選擇了外圍電路極其簡(jiǎn)單的KT6368A,只需要使用單芯片+晶振便可實(shí)現(xiàn)BLE通信,同時(shí)該芯片為雙模芯片,還可以支持SPP通信。
為了降低項(xiàng)目成本,模塊采用了PCB板載天線替代外接天線或陶瓷天線,在室內(nèi)環(huán)境依舊可以保持良好的通信效果,若實(shí)際使用場(chǎng)景對(duì)通信距離有要求,可根據(jù)實(shí)際情況改為不同的天線類型。
4. 另外還有數(shù)碼管顯示電路、電源設(shè)計(jì)電路、按鍵電路、最小系統(tǒng)電路等。這里不再一一描述。
六、軟件重點(diǎn)編輯思想
1. 數(shù)碼管動(dòng)態(tài)掃描:
數(shù)碼管顯示的動(dòng)態(tài)掃描原理如下:顯示器中所有數(shù)碼管在系統(tǒng)控制下有序逐位點(diǎn)亮,每位數(shù)碼管的點(diǎn)亮?xí)r間為1到2微秒。利用人體視覺(jué)暫留現(xiàn)象及發(fā)光二極管余輝效應(yīng),各位數(shù)碼管并非同時(shí)點(diǎn)亮,但掃描速度足夠快,從而一組穩(wěn)定不閃爍顯示數(shù)據(jù)。
在程序中,使用定時(shí)器定時(shí)掃描每位數(shù)碼管。
定時(shí)時(shí)中斷定時(shí)執(zhí)行如下代碼,以實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)掃描。注意定時(shí)器定時(shí)時(shí)間要足夠短,比如1MS.
Close_Com(); //先關(guān)閉公共端,防止重影 Seg_Dis(num,Seg_Reg[num]); //開(kāi)斷碼,然后開(kāi)位碼。 num++; //切換數(shù)碼管位數(shù) if(num > 6) { num = 0; }
2. 數(shù)據(jù)采集處理 :
CW32F003 內(nèi)部集成一個(gè) 12 位精度、最高 1M SPS 轉(zhuǎn)換速度的逐次逼近型模數(shù)轉(zhuǎn)換器 (SAR ADC),最多可將 16 路模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。現(xiàn)實(shí)世界中的絕大多數(shù)信號(hào)都是模擬量,如光、電、聲、圖像信號(hào)等,都要由 ADC 轉(zhuǎn)換成數(shù)字信號(hào),才能由 MCU 進(jìn)行數(shù)字化處理。
在本系統(tǒng)中,需要采信2路AD,電壓及電流。因此,選用ADC的序列采樣連續(xù)轉(zhuǎn)換模式。序列連續(xù)轉(zhuǎn)換模式可對(duì)最多四個(gè)序列的通道進(jìn)行輪流轉(zhuǎn)換。更多轉(zhuǎn)換原理,可參考芯片用戶手冊(cè)。
ADC初始化代碼如下 :
void ADC_init(void) { ADC_InitTypeDef ADC_InitStructure; //ADC配置結(jié)構(gòu)體 ADC_SerialChTypeDef ADC_SerialChStructure; //ADC序列通道結(jié)構(gòu)體 GPIO_InitTypeDef GPIO_Init_Struct; __RCC_GPIOB_CLK_ENABLE(); //打開(kāi)ADC對(duì)應(yīng)引腳時(shí)鐘 __RCC_ADC_CLK_ENABLE(); // 打開(kāi)ADC時(shí)鐘 GPIO_Init_Struct.IT = GPIO_IT_NONE; GPIO_Init_Struct.Mode = GPIO_MODE_ANALOG;//將GPIO的模式配置成模擬功能 GPIO_Init_Struct.Pins = GPIO_PIN_1; // PB01是電壓采集引腳 GPIO_Init(CW_GPIOB, &GPIO_Init_Struct); PB01_ANALOG_ENABLE(); //使能模擬引腳 PB05_ANALOG_ENABLE(); ADC_StructInit(&ADC_InitStructure); // ADC默認(rèn)值初始化 ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div128; //ADC工作時(shí)鐘配置 PCLK/4 = 6/4 = 1.5Mhz /*信號(hào)電壓較低時(shí),可以降低參考電壓來(lái)提高分辨率。改變參考電壓后,同樣二進(jìn)制表示的電壓值就會(huì)不一樣, 最大的二進(jìn)制(全1)表示的就是你的參考電壓,在計(jì)算實(shí)際電壓時(shí),就需要將參考電壓考慮進(jìn)去。*/ ADC_InitStructure.ADC_VrefSel = ADC_Vref_BGR1p5; //參考電壓設(shè)置為1.5V ADC_InitStructure.ADC_SampleTime = ADC_SampTime10Clk; //由于電壓信號(hào)為慢速信號(hào),ADC采樣時(shí)間為十個(gè)ADC采樣周期以確保準(zhǔn)確 ADC_SerialChStructure.ADC_Sqr0Chmux = ADC_SqrCh9; //配置ADC序列,PB01是ADC的第9通道 ADC_SerialChStructure.ADC_Sqr1Chmux = ADC_SqrCh11; ADC_SerialChStructure.ADC_SqrEns = ADC_SqrEns01; ADC_SerialChStructure.ADC_InitStruct = ADC_InitStructure; //ADC初始化 ADC_SerialChContinuousModeCfg(&ADC_SerialChStructure); //ADC序列連續(xù)轉(zhuǎn)換模式配置 ADC_ClearITPendingAll(); //清除ADC所有中斷狀態(tài) ADC_Enable(); // ADC使能 ADC_SoftwareStartConvCmd(ENABLE); //ADC轉(zhuǎn)換軟件啟動(dòng)命令 }
3. 數(shù)據(jù)濾波處理:由于采集到的原始數(shù)據(jù)有一定的波動(dòng),因此在顯示更新速度較快時(shí),數(shù)字有跳動(dòng)現(xiàn)象。
在數(shù)據(jù)處理前,可以增加常見(jiàn)的均值濾波算法。
均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個(gè)像素值,即對(duì)待處理的當(dāng)前像素點(diǎn)(x,y),選擇一個(gè)模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當(dāng)前像素點(diǎn)(x,y),作為處理后圖像在該點(diǎn)上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m為該模板中包含當(dāng)前像素在內(nèi)的像素總個(gè)數(shù)。
這本是數(shù)字圖像處理的一種方法,但也可以用在我們數(shù)字電壓電流表的ADC采樣數(shù)據(jù)上。我們選取一定次數(shù)的ADC采樣值存儲(chǔ)在數(shù)組 Volt_Buffer 中,然后去除掉數(shù)組中的最大值和最小值后再取平均,得到的值作為結(jié)果顯示在數(shù)碼管上,這樣可以較大程度獲得準(zhǔn)確的、不易波動(dòng)的數(shù)據(jù)。
均值濾波代碼如下:
uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size) //均值濾波 { uint32_t sum = 0; //ADC采樣數(shù)據(jù)和 uint16_t max = 0; uint16_t min = 0xffff; //min初值取最大是為了將第一個(gè)數(shù)據(jù)記錄 int i; for(i = 0; i < size; i++) { sum += value[i]; if(value[i] > max) { max = value[i]; } if(value[i] < min) { min = value[i]; } } sum -= max + min; //去除最大最小值 sum = sum / (size - 2); return sum; }
4. 數(shù)據(jù)標(biāo)定:
標(biāo)定是通過(guò)測(cè)量標(biāo)準(zhǔn)器的偏差來(lái)補(bǔ)償儀器系統(tǒng)誤差,從而改善儀器或系統(tǒng)準(zhǔn)確度、精度的操作。為了提高電壓電流表在測(cè)量時(shí)的測(cè)量精度和準(zhǔn)確度,需要對(duì)電壓電流進(jìn)行標(biāo)定校準(zhǔn)。
常見(jiàn)的標(biāo)定原理如下:
假設(shè)一個(gè)采樣系統(tǒng),AD部分可以得到數(shù)字量,對(duì)應(yīng)的物理量為電壓(或電流);
① 若在“零點(diǎn)”標(biāo)定一個(gè)AD值點(diǎn)Xmin,在“最大處”標(biāo)定一個(gè)AD值點(diǎn)Xmax,根據(jù)“兩點(diǎn)成一條直線”的原理,可以得到一條由零點(diǎn)和最大點(diǎn)連起來(lái)的一條直線,這條直線的斜率k很容易求得,然后套如直線方程求解每一個(gè)點(diǎn)X(AD采樣值),可以得到該AD值對(duì)應(yīng)的物理量(電壓值):
上圖中的斜率k:
k =(Ymax-Ymin)/(Xmax-Xmin)
(因?yàn)榈谝稽c(diǎn)為“零點(diǎn)”,故上面的Ymin = 0)所以,上圖中任一點(diǎn)的AD值對(duì)應(yīng)的物理量:
y = k×(Xad- Xmin)+0
② 上面的算法只是在“零點(diǎn)”和“最大點(diǎn)”之間做了標(biāo)定,如果使用中間的AD采樣值會(huì)帶來(lái)很大的對(duì)應(yīng)物理量的誤差,解決的辦法是多插入一些標(biāo)定點(diǎn)。
如下圖,分別插入了標(biāo)定點(diǎn)(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4) 四個(gè)點(diǎn):
這樣將獲得不再是一條直線,而是一條“折現(xiàn)”(相當(dāng)于分段處理),若欲求解落在x1和x2之間一點(diǎn)Xad值對(duì)應(yīng)的電壓值:y = k×(Xad– X1)+ y1由上看出,中間插入的“標(biāo)定點(diǎn)”越多,得到物理值“精度”越高。在電壓電流表測(cè)量可以使用“電壓電流標(biāo)定板”“萬(wàn)用表”等配合適合,對(duì)采集的電壓電流進(jìn)行標(biāo)定處理。標(biāo)定點(diǎn)越多,測(cè)量越精確。參考例程中,使用了3點(diǎn)標(biāo)定。其中,電壓標(biāo)定點(diǎn)為0V、5V、15V。電流標(biāo)定點(diǎn)為0A、0.5A、1.5A。
標(biāo)定代碼如下:
void Volt_Cal(void) { float t,KT1; V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);//使用均值濾波 I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE); //使用均值濾波 if(V_Buffer>=X05) // { t=V_Buffer-X05; V_Buffer=(K*t+Y05)*1000;} else { KT1=5000; KT1=KT1/X05; V_Buffer=KT1*V_Buffer; } // 四舍五入 if(V_Buffer % 10 >= 5) { V_Buffer = V_Buffer / 10 + 1; } else { V_Buffer = V_Buffer / 10; } if(I_Buffer>=IX05) { t=I_Buffer-IX05; I_Buffer=(KI*t+IY05)*10; } else { KT1=500; KT1=KT1/IX05; I_Buffer=KT1*I_Buffer; } if(I_Buffer % 10 >= 5) { I_Buffer = I_Buffer / 10 + 1; } else { I_Buffer = I_Buffer / 10; } // I_Buffer=I_Buffer * ADC_REF_VALUE >> 12; /** mv =I_Buffer * ADC_REF_VALUE >> 12, R = 100mr, 10ma = mv/R/10=mv/0.1/10 = mv */ }
5. 標(biāo)定操作實(shí)現(xiàn):
具體操作方法如下:
定義5個(gè)工作模式,點(diǎn)按按鍵切換工作模式,長(zhǎng)按3S設(shè)置對(duì)應(yīng)模式下的參數(shù)值,并保存到FLASH:
模式0:顯示正常的電壓電流值(上一排數(shù)碼管顯示電壓值*.**V或**.*V自動(dòng)切換,下一排顯示電流值,*.**A)
模式1:電壓5V標(biāo)定值設(shè)置。上一排數(shù)碼管顯示S.05. 。下一排顯示當(dāng)前電壓值*.**V或**.*V。當(dāng)長(zhǎng)按3S 按鍵時(shí),將當(dāng)前值標(biāo)定為5V電壓值。
模式2:電壓15V標(biāo)定值設(shè)置。上一排數(shù)碼管顯示S.15. 。下一排顯示當(dāng)前電壓值*.**V或**.*V。當(dāng)長(zhǎng)按3S 按鍵時(shí),將當(dāng)前值標(biāo)定為15V電壓值。
模式3:電流0.5A標(biāo)定值設(shè)置。上一排數(shù)碼管顯示A.0.5。下一排顯示當(dāng)前電流值*.**A。當(dāng)長(zhǎng)按3S 按鍵時(shí),將當(dāng)前值標(biāo)定為0.5A電流值。
模式4:電流1.5A標(biāo)定值設(shè)置。上一排數(shù)碼管顯示A.1.5。下一排顯示當(dāng)前電流值*.**A。當(dāng)長(zhǎng)按3S 按鍵時(shí),將當(dāng)前值標(biāo)定為1.5A電流值
七、優(yōu)化與調(diào)試
1. 精度優(yōu)化:可選擇合適的電阻、電容等元件,以及優(yōu)化ADC的采樣率和分辨率,來(lái)提高電壓和電流的測(cè)量精度。
2. 穩(wěn)定性優(yōu)化:可對(duì)電源管理電路和防反接電路進(jìn)行優(yōu)化設(shè)計(jì),確保系統(tǒng)在各種工作環(huán)境下都能穩(wěn)定運(yùn)行。
3. 軟件調(diào)試:通過(guò)調(diào)試工具對(duì)軟件進(jìn)行調(diào)試和優(yōu)化,確保數(shù)據(jù)采集、處理和顯示等功能的正確性和穩(wěn)定性。
4. 數(shù)據(jù)分析:在特殊應(yīng)用場(chǎng)合,可根據(jù)實(shí)際信號(hào)的干擾情況進(jìn)行算法的改過(guò)或選擇。
審核編輯 黃宇
-
電流表
+關(guān)注
關(guān)注
2文章
235瀏覽量
26719 -
數(shù)字電壓
+關(guān)注
關(guān)注
0文章
9瀏覽量
9913 -
ADC
+關(guān)注
關(guān)注
0文章
213瀏覽量
16845 -
CW32
+關(guān)注
關(guān)注
1文章
255瀏覽量
1219
發(fā)布評(píng)論請(qǐng)先 登錄
(芯源半導(dǎo)體)32位 無(wú)線射頻,超低功耗,通用高性能MCU,存儲(chǔ)芯片 選型
淺談AppleWatch 電流表

芯源CW32F003E4P7

N76E003數(shù)據(jù)手冊(cè)和產(chǎn)品介紹: 新唐高速 1T 8051 微控制器MCU

方案介紹|CW32L010安全低功耗MCU:驅(qū)動(dòng)高速風(fēng)筒新力量
【產(chǎn)品方案】基于CW32L010低成本電動(dòng)工具方案


基于CW32L010單片機(jī)的低成本電動(dòng)工具方案

電流表與互感器怎么接線
變頻器怎么外接電流表及轉(zhuǎn)速表
電流表內(nèi)部短路和被短路的區(qū)別
電流表電壓表無(wú)示數(shù)的原因
鉗形電流表使用方法及注意事項(xiàng)
TPD4F003.TPD6F003.TPD8F003八通道EMI濾波器數(shù)據(jù)表

評(píng)論