久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 請問有輝芒微FT61E145或類似的輝芒微單片機有用自帶ADC測量供電電池電壓例程嗎 [打印本頁]

作者: hack2800    時間: 2024-8-28 10:22
標題: 請問有輝芒微FT61E145或類似的輝芒微單片機有用自帶ADC測量供電電池電壓例程嗎
請問有輝芒微FT61E145或類似的輝芒微單片機有用自帶ADC測量供電電池電壓例程嗎?芯片供電是電池,如果不接外部電阻分壓連電池測量(這種官網有例程,想不接分壓電阻,省IO口),直接用自帶的內部ADC測電池電壓,之前發了一個貼,但給的分太少了,重新發一個,謝謝了

作者: hcfat51h    時間: 2024-8-28 10:22
這個官方網站上有例程啊,稍微改一下就可以了.我自己運行過的,仿真器上測試3.4V,仿真結果是3424mV,這個誤差不超過1%,如果要求不高,結果還可以接受了;
        <........省略>,
        POWER_INITIAL();                                                    //初始化
        ADC_INITIAL();                                                            //ADC初始化       
         
        while(1)
        {
                adcData = GET_ADC_DATA(7);                                         //通道7 AD值
                theVoltage = (unlong)adcData*8*1000/0xFFF;        //電壓放大1000倍                       
                NOP();
                NOP();
        }
作者: 飛云居士    時間: 2024-8-28 15:18
#include <stdio.h>

// 定義 ADC 模塊的基地址和寄存器偏移 (根據芯片手冊修改)
#define ADC_BASE 0x40000000
#define ADC_CTRL_OFFSET 0x00
#define ADC_CH_OFFSET 0x04
#define ADC_SAMPLE_RATE_OFFSET 0x08
#define ADC_RESULT_OFFSET 0x0C

// 定義 ADC 控制寄存器中的位域
#define ADC_CTRL_ENABLE (1 << 0)
#define ADC_CTRL_START (1 << 1)
#define ADC_CTRL_INTERRUPT (1 << 2)

// 定義 ADC 通道、參考電壓和分辨率
#define ADC_CHANNEL 0
#define ADC_REF_VOLTAGE 3.3
#define ADC_RESOLUTION 12

// 初始化串口 (根據您的硬件平臺修改,用于顯示測量值)
void UART_Init() {
    // ...
}

// 初始化 ADC 模塊
void ADC_Init() {
    // 配置 ADC 時鐘 (根據芯片手冊修改)
    // ...

    // 配置 ADC 控制寄存器
    *(uint32_t *)(ADC_BASE + ADC_CTRL_OFFSET) |= ADC_CTRL_ENABLE;

    // 配置 ADC 通道
    *(uint32_t *)(ADC_BASE + ADC_CH_OFFSET) = ADC_CHANNEL;

    // 配置 ADC 采樣率
    // ...

    // 其他配置 (根據芯片手冊修改)
    // ...
}

// 讀取 ADC 轉換結果
uint16_t ADC_Read() {
    // 啟動 ADC 轉換
    *(uint32_t *)(ADC_BASE + ADC_CTRL_OFFSET) |= ADC_CTRL_START;

    // 等待轉換完成 (根據芯片手冊修改)
    // ...

    // 讀取 ADC 轉換結果
    return *(uint16_t *)(ADC_BASE + ADC_RESULT_OFFSET);
}

// 將 ADC 數字值轉換為電壓值
float ADC_ToVoltage(uint16_t adc_value) {
    return adc_value * ADC_REF_VOLTAGE / (1 << ADC_RESOLUTION);
}

int main() {
    UART_Init();
    ADC_Init();

    while (1) {
        uint16_t adc_value = ADC_Read();
        float battery_voltage = ADC_ToVoltage(adc_value);

        printf("Battery voltage: %.2fV\n", battery_voltage);

        // 添加延時
        delay_ms(1000); // 根據需求調整延時時間
    }

    return 0;
}

作者: hcfat51h    時間: 2024-8-28 17:23
FT61E145不是有個AD通道可以測試1/4 Vdd的電壓?
作者: hack2800    時間: 2024-8-28 20:24
hcfat51h 發表于 2024-8-28 17:23
FT61E145不是有個AD通道可以測試1/4 Vdd的電壓?

看手冊是有個通道測1/4 VDD,但測出數據不知道處理,否則VDD是4倍ADC數值,但還是沒轉化成電壓?
作者: hezezeze    時間: 2024-8-29 09:31
你想要直接用輝芒微FT61E145或類似芯片的內部ADC測量電池電壓,而不使用外部電阻分壓,這是可以實現的,但需要一些額外的考慮和處理。
以下是實現方法和需要注意的事項:
1. 芯片內部ADC的參考電壓:首先要確定FT61E145或類似芯片內部ADC的參考電壓。通常,內部ADC的參考電壓是芯片內部的固定電壓,例如3.3V或2.5V。  你需要查閱芯片的datasheet,找到ADC參考電壓的相關信息。
2. 電池電壓范圍:確定你想要測量的電池電壓范圍。例如,如果你使用的是3.7V的鋰電池,它的工作電壓范圍可能是3.0V到4.2V。
3. ADC精度和分辨率:內部ADC的精度和分辨率會影響測量結果的準確性。  如果你的電池電壓范圍很小,或者你對精度要求不高,內部ADC可能足以滿足需求。但是,如果需要更高的精度,你可能需要使用外部ADC或其他方法。
4. 直接測量電壓可能超出ADC的量程:如果你的電池電壓范圍大于內部ADC的參考電壓,你需要將電池電壓進行分壓。 由于你想要避免使用外部電阻,可以考慮利用內部的基準電壓作為分壓器的一部分。例如,你可以使用一個內部的基準電壓為2.5V,并將電池電壓接入一個內部的電阻網絡,以得到一個低于2.5V的電壓,然后將其送到ADC進行測量。
5. 電壓轉換公式: 你需要根據ADC參考電壓、電池電壓范圍、分壓比等因素,推導出一個公式,將ADC讀取到的數字量轉換成實際的電池電壓。

示例代碼 (偽代碼):

```c
//假設內部ADC參考電壓為3.3V,電池電壓范圍為3.0V到4.2V

//使用內部基準電壓作為分壓器的一部分
//將電池電壓接入一個內部電阻網絡,將電壓降到低于3.3V
//假設分壓比為1:2,則ADC讀取到的電壓為電池電壓的1/3

//讀取ADC值
adc_value = read_adc();

//計算電池電壓
battery_voltage = adc_value * 3.3 * 2 / 4096; //假設ADC分辨率為12位,即4096個量化值

//輸出電池電壓
printf("電池電壓:%fV\
", battery_voltage);
```
注意事項:
仔細閱讀FT61E145或類似芯片的datasheet,了解其ADC的特性和使用方法。
確保你的程序邏輯正確,避免出現誤差。
在實際應用中,你需要進行實際測量和校準,以確保測量結果的準確性。
總結:
直接使用內部ADC測量電池電壓是可行的,但需要仔細考慮芯片的特性和電池電壓范圍,并進行必要的處理。  

希望以上信息對你有幫助!
作者: hcfat51h    時間: 2024-8-29 10:23
參考電壓:0x0FFF=1/4Vdd:ADC數值,
作者: hack2800    時間: 2024-8-29 10:51
hcfat51h 發表于 2024-8-29 10:23
參考電壓:0x0FFF=1/4Vdd:ADC數值,

參考了網官的其它ADC測量,有想過,但不確定,本來想拿來主義更快,現在手頭還在畫張簡單的板,等到手了試一下,到時候有結果了再來回復,先謝了
作者: hack2800    時間: 2024-8-29 11:00
飛云居士 發表于 2024-8-28 15:18
#include

// 定義 ADC 模塊的基地址和寄存器偏移 (根據芯片手冊修改)

感謝,看了手冊,里面沒有3.3V參考電壓,但程序思路應該是相通的,后面我自己多試試
作者: hack2800    時間: 2024-8-29 11:02
參考了網官的其它ADC測量,有想過各種情況,但不確定,本來想拿來主義更快,現在手頭還在畫簡單的板,等到手了試一下,到時候有結果了再來回復,感謝大家回復,先謝了
作者: hack2800    時間: 2024-8-29 11:41
hcfat51h 發表于 2024-8-29 11:10
這個官方網站上有例程啊,稍微改一下就可以了.我自己運行過的,仿真器上測試3.4V,仿真結果是3424mV,這個誤差 ...

厲害,我都不會用仿真器看仿真結果的電壓,剛接觸不久,平時只拿來簡單燒程序,謝謝
作者: hack2800    時間: 2024-8-29 11:45
hcfat51h 發表于 2024-8-29 11:10
這個官方網站上有例程啊,稍微改一下就可以了.我自己運行過的,仿真器上測試3.4V,仿真結果是3424mV,這個誤差 ...

哎,我對仿真器不熟,所以在畫板等在上面跑效果
作者: hcfat51h    時間: 2024-8-29 14:08
hack2800 發表于 2024-8-29 11:45
哎,我對仿真器不熟,所以在畫板等在上面跑效果

是用仿真器連接目標板才能運行的,我意思是供電也是仿真器提供的
作者: hcfat51h    時間: 2024-8-29 14:09
hack2800 發表于 2024-8-29 11:45
哎,我對仿真器不熟,所以在畫板等在上面跑效果

可以上某一個寶買個SSOP20轉插件的,然合隨便用萬用板搭電路
作者: hack2800    時間: 2024-8-29 14:39
你這個既然都仿真了,應該是最好的答案了,我自己要等得比較久,板還沒畫好,還要做板及先程序,先把分給了,感謝!
作者: 樂于助人    時間: 2024-8-29 15:23
1. FT61E145的ADC模塊,AD值  = (AD通道電壓 / 參考電壓)* 4096;
2. FT61E145有內部1/4VDD通道,也就是這個AD通道是輸入電壓是VDD的四分之一(芯片內部用1比3電阻分壓);
3. FT61E145的AD參考電壓是可以選擇內部固定基準電壓,記得是0.5V/2V/3V三種可選;
4. 所以在1中的式子, AD值、參考電壓(選擇內部固定基準)、4096(12位ADC)是已知數,就可以推算出AD通道電壓,這個AD通道電壓乘以4,就是VDD電壓了;
作者: 935107368    時間: 2024-8-29 20:13
兩100K電阻分壓測量AD值 3.7V/2/3V*4096
作者: hack2800    時間: 2024-8-29 23:58
hack2800 發表于 2024-8-29 11:45
哎,我對仿真器不熟,所以在畫板等在上面跑效果

我還以為仿真器上什么都不用接,然后在軟件里能看到仿真出來是多少電壓
作者: hack2800    時間: 2024-8-29 23:58
hcfat51h 發表于 2024-8-29 14:09
可以上某一個寶買個SSOP20轉插件的,然合隨便用萬用板搭電路

好,謝謝
作者: hack2800    時間: 2024-8-29 23:59
樂于助人 發表于 2024-8-29 15:23
1. FT61E145的ADC模塊,AD值  = (AD通道電壓 / 參考電壓)* 4096;
2. FT61E145有內部1/4VDD通道,也就是 ...

感謝詳細的講解,謝謝大家
作者: hack2800    時間: 2024-8-29 23:59
935107368 發表于 2024-8-29 20:13
兩100K電阻分壓測量AD值 3.7V/2/3V*4096

恩恩,這種知道,謝謝




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 黄色大片免费观看 | 日韩欧美国产一区二区三区 | 精品美女视频在免费观看 | 中文字字幕在线中文乱码范文 | 亚洲欧美国产精品久久 | 成人在线一区二区 | 伦理二区| 欧洲精品一区 | 国产精品二区三区 | 伊人伊人 | 国产精品久久久久免费 | 亚洲欧美在线观看视频 | 中文字幕91 | 综合久久综合久久 | 免费观看黄网站 | 超碰男人天堂 | 亚洲视频在线看 | 久久久不卡网国产精品一区 | 国产中文字幕在线 | 久草免费在线视频 | av一二三四| 欧美中文| 亚洲久在线| 亚洲欧美一区二区三区1000 | 成人免费一级视频 | 精品一区二区三区在线观看 | 91精品麻豆日日躁夜夜躁 | 国产高清一区二区三区 | 中文字幕在线观看成人 | av手机在线免费观看 | 精品在线一区二区三区 | 亚洲成人一区二区 | 国产激情视频 | 国产目拍亚洲精品99久久精品 | 国产成人免费视频网站视频社区 | 欧美一级黄带 | 嫩草一区二区三区 | 日韩中文视频 | 91天堂| 日韩精品一区二区三区视频播放 | 欧美日韩理论 |