藍(lán)牙心率防水運動手環(huán) ——瘋殼·智能穿戴開發(fā)系列 電池電量檢測 1 ADC 簡介 ADC(Analog-to-Digital Converter),模/數(shù)轉(zhuǎn)換器或者模數(shù)轉(zhuǎn)換器,是指將連續(xù)變化的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的器件。 我們 DA14580 集成一個高速超低功耗的 10 位通用模數(shù)轉(zhuǎn)換器。可以工作于單端模式也可以工作于差分模式。ADC 模塊有一個 1.2V 的電壓校準(zhǔn)器,作為滿量程的參考電壓。 該 ADC 模塊是 10 位動態(tài)模數(shù)轉(zhuǎn)換,轉(zhuǎn)換時間為 65ns;最大的采樣率為3.3MHz;超低功耗(在 100KHz 的采樣速率下典型供電電流為 5uA);有單端與差分兩個輸入比例;有 4 個單端或者 2 個差分輸入通道;電池檢測功能;斬波器功能;偏移和零刻度調(diào)整;公共端模式輸入電平調(diào)整。 由于電池電壓與其放電時長成負(fù)相關(guān)關(guān)系,我們就可以通過 DA14580 的 ADC測量電池電壓,直接判斷我們所使用的電池剩余電量大小。 2 硬件設(shè)計 本次 DA14580 采用 P01 腳直接測量電源電壓。 圖 1 3 軟件設(shè)計 軟件開始,第一步要進(jìn)行的是系統(tǒng)初始化。 由于我們要使用串口打印,就要配置我們要使用的串口。首先,要點調(diào)用GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX,false) GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false)配置我們使用的串口管腳,然后使用 SetBits16(CLK_PER_REG, UART2_ENABLE,1) 來使能我們要使用的串口 2 , 最后調(diào)用uart2_init(UART2_BAUDRATE,UART2_DATALENGTH)初始化串口。完成以上的 3 個流程,就可以通過串口打印信息了。 關(guān)于 ADC 采集電壓,主要是調(diào)用下邊的函數(shù) 在這個函數(shù)中, 首先是采用 adc_init(uint16_t mode, uint16_t sign, uint16_tattn),對 ADC 進(jìn)行初始化。第一個參數(shù) mode 是 ADC 模式選擇,0 表示差分模式,GP_ADC_SE(0x800)表示單端模式,我們采用的是 GP_ADC_SE,單端模式。第二個參數(shù) sign,0 表示默認(rèn)模式,這里用P_ADC_SIGN(0x0400),選擇通過相反的ADC 符號獲取兩個采樣值來取消內(nèi)部的偏置電壓。最后的參數(shù) attn 設(shè)置輸入最大電壓值,0 對應(yīng) 1.2v,這里選 GP_ADC_ATTN3X(0x0002)對應(yīng) 3.6v。 完成 ADC 初始化后,就要使能相關(guān)的 ADC 通道。adc_enable_channel(uint16_t input_selection),本次使用的是通道 ADC_CHANNEL_VBAT3V。 完成 ADC 的初始化和通道使能后,就可以調(diào)用 adc_get_sample(void)獲取數(shù)字電壓。 最后就是通過下面函數(shù)將數(shù)字電壓轉(zhuǎn)換為剩余電量百分比。 這是函數(shù)采用的分段的形式,這是由于我們的電池電壓與電池剩余電量的關(guān)系是一條曲線,通過分段計算,可以提高精度。當(dāng)然,大家也可以根據(jù)自己的實際情況改動上述函數(shù)。 4 實驗現(xiàn)象 首先,插好 Jlink 和 USB 轉(zhuǎn)串口,然后打開打開串口調(diào)試助手。 (1)選擇串口號,我們圖中是 COM1,這個根據(jù)實際情況選擇。 (2)配置串口參數(shù),波特率為 115200,數(shù)據(jù)位 8,停止位 1,沒有校驗位和控制流,與下圖一致。 (3)點擊打開串口。 圖 2 配置完串口之后,打開我們提供的代碼。 (1)點擊仿真按鍵。 (2)點擊運行代碼。 圖 4 完成之后,就能看到串口調(diào)試助手接收框信息如下。 圖 5 配套資料:https://www.fengke.club/GeekMart/su_fkZyGYgrp.jsp 配套視頻:https://www.fengke.club/GeekMart/su_fTSgUL3y3.jsp 文件下載請點擊: |