曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RK3576開(kāi)發(fā)板的I2C使用說(shuō)明

ljx2016 ? 來(lái)源:ljx2016 ? 作者:ljx2016 ? 2025-05-07 10:41 ? 次閱讀

1. I2C介紹

IIC又簡(jiǎn)寫(xiě)成I2C,是一種串行通信總線,使用多主從架構(gòu)。

最初設(shè)計(jì)目的為了讓主板、嵌入式系統(tǒng)手機(jī)用來(lái)連接低速周邊設(shè)備。多用于小數(shù)據(jù)量的場(chǎng)合,有傳輸距離短,任意時(shí)刻只能有一個(gè)主機(jī)等特性。

Linux嵌入式應(yīng)用開(kāi)發(fā)的情景下,完全可以不必理會(huì)IIC協(xié)議的詳細(xì)規(guī)定。只需要按照驅(qū)動(dòng)層提供給我們的操作IIC外設(shè)的操作接口函數(shù)就可以像操作linux中其他普通設(shè)備文件那樣輕松的操作IIC外設(shè)了。

1.1 開(kāi)發(fā)板上I2C資源介紹

EASY EAI Orin-Nano開(kāi)發(fā)板預(yù)留引出了2路IIC資源,以供用戶自定義調(diào)用,它們分別是IIC2和IIC8。確切的分部位置,如下圖所示:

wKgZO2gayMaAEsE5ABS-Mx3gT6o487.jpg

1.2 硬件接線示意圖

wKgZPGgayMaAZfIqAADdNgPRzl4127.png

本示例采用ADS1115電壓檢測(cè)模塊進(jìn)行輔助演示。此模塊功能是把檢測(cè)到的電壓(模擬信號(hào))轉(zhuǎn)化為數(shù)字信號(hào)存入寄存器中,然后以IIC的通信方式對(duì)外提供電壓信息的提取。

ADS1115模塊與EASY EAI Orin-Nano的接線原理圖如下所示:

wKgZO2gayMeAGSNvAABxrfCVn2A216.png

2. 快速上手

2.1 例程源碼下載

到【百度網(wǎng)盤(pán)】上下載相關(guān)的單例程序:

鏈接:https://pan.baidu.com/s/1RXHMGpmGSEfFy0rb1VkXSg?pwd=1234

提取碼: 1234

比如在windows環(huán)境中,就把單例程序下載到:此電腦D:BaiduNetdisk (無(wú)規(guī)定,用戶可自主選擇),如下圖所示。

wKgZPGgayMeAf0yrAACziBbs-LY313.png

然后把例程【復(fù)制粘貼】到nfs掛載目錄中。(不清楚目錄如何構(gòu)建的,可以參考《入門(mén)指南/開(kāi)發(fā)環(huán)境準(zhǔn)備/nfs服務(wù)搭建與掛載》)

wKgZO2gayMeAcXWFAAEB2_3nRjY601.png

2.2 例程編譯&運(yùn)行

通過(guò)adb shell進(jìn)入開(kāi)發(fā)板環(huán)境(不清楚如何通過(guò)adb進(jìn)行調(diào)試,可以參考《入門(mén)指南/開(kāi)發(fā)板調(diào)試方式介紹/adb調(diào)試》),執(zhí)行下方命令定位到demo目錄,并且執(zhí)行編譯操作。

cd /home/orin-nano/Desktop/nfs/08_IIC/
./build.sh
wKgZPGgayMeAQVOtAAF5g_M9vaE021.png

編譯成功后,會(huì)生成一個(gè)test-ads1115的可執(zhí)行程序在Release目錄中。

執(zhí)行下方命令則可運(yùn)行測(cè)試demo,如下所示。

sudo ./Release/test-ads1115

執(zhí)行效果如下所示,利用探測(cè)分別觸碰3V3,1V8,GND三個(gè)端子,則可在終端測(cè)出對(duì)應(yīng)的電壓值。

wKgZO2gayMiAFnUdAACt8oyTDrM125.png

3. C語(yǔ)言使用案例

ADS1115的C語(yǔ)言使用案例,代碼地址為08_IIC/test-ads1115/main.c,供用戶編碼參考。以下代碼展示了對(duì)ADS1115操作流程:

int32_t ads1115_config_register(uint32_t fd, uint8_t configH, uint8_t configL)
{
    uint8_t reg_data[3] = {ADS1015_REG_POINTER_CONFIG, configH, configL};
    return iic_write(fd, ADS1115_ADDRESS, reg_data, sizeof(reg_data));
}

int16_t ads1115_read_data(uint32_t fd)
{
    bool ret = false;
    /*讀取數(shù)據(jù)*/
    uint8_t tx_data[1] = {ADS1015_REG_POINTER_CONVERT};
    if(iic_write(fd, ADS1115_ADDRESS, tx_data, sizeof(tx_data)) < sizeof(tx_data)){
        printf("iic write faild !n");
        return -1;
    }

    uint8_t rx_data[3]={0};
    if(iic_read(fd, ADS1115_ADDRESS, rx_data, 2) < 0){
        printf("iic read faild !n");
        return -1;
    }

    int16_t data = rx_data[0]*256+rx_data[1];
    return data;
}

double ads1115_get_voltage_val(uint32_t fd, uint8_t configH, uint8_t configL)
{
    /*配置寄存器*/
    if(ads1115_config_register(fd, configH, configL) < 0){
        printf("ads1115 config register faildn");
        return 0.0;
    }
    usleep(100 * 1000);
    
    int16_t ad_val = ads1115_read_data(fd);
    if((0x7FFF == ad_val)|(0X8000 == ad_val)) {//是否超量程了
        ad_val = 0;
        printf("ads1115 over PGArn");
    }
    
    double val = 0.0;
    switch((0x0E&configH)?>>1)//量程對(duì)應(yīng)的分辨率
    {
        case(0x00):
            val = (double)ad_val*187.5/1000000.0; break;
        case(0x01):
            val = (double)ad_val*125/1000000.0; break;
        case(0x02):
            val = (double)ad_val*62.5/1000000.0; break;
        case(0x03):
            val = (double)ad_val*31.25/1000000.0; break;
        case(0x04):
            val = (double)ad_val*15.625/1000000.0; break;
        case(0x05):
            val = (double)ad_val*7.8125/1000000.0; break;
        default:
            val = 0.0; break;
    }
    
    return val;
}

int main(int argc, char const *argv[])
{
    bool ret = false;
    double val;
    int fd = iic_init("/dev/i2c-2");
    if(fd < 0){
        printf("iic init faild n");
        return -1;
    }
    
    if(0 != iic_set_addr_len(fd, 7)){
        return -1;
    }
    
    if(0 != iic_set_addr(fd, ADS1115_ADDRESS)){
        return -1;
    }    
    
    while (1) {
        val = ads1115_get_voltage_val(fd, CONFIG_REG_H, CONFIG_REG_L);
        printf("val: %f Vrn",val);
        sleep(2);
    }
    
    iic_release(fd);
    return 0;
}

其中iic_init(),iic_set_addr_len(),iic_set_addr(),iic_read(),iic_write(),iic_release()是對(duì)系統(tǒng)調(diào)用的易用化封裝。具體實(shí)現(xiàn)于08_IIC/commonApi/iic.c

除了需要有對(duì)IIC硬件資源進(jìn)行操作的接口以外,要需要清楚IIC總線上的IIC從機(jī)設(shè)備的寄存器操作方法。如ADS1115電壓檢測(cè)芯片,與其寄存器相關(guān)的操作定義均在08_IIC/test-ads1115/ads1115.h中實(shí)現(xiàn)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1522

    瀏覽量

    126683
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5432

    瀏覽量

    101236
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    497
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RK3576開(kāi)發(fā)板的WDT看門(mén)狗使用說(shuō)明

    RK3576開(kāi)發(fā)板的WDT使用說(shuō)明
    的頭像 發(fā)表于 05-06 17:15 ?368次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的WDT看門(mén)狗<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的PCIE固態(tài)硬盤(pán)使用說(shuō)明

    RK3576開(kāi)發(fā)板的PICE固態(tài)硬盤(pán)使用方法
    的頭像 發(fā)表于 05-06 17:33 ?1064次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的PCIE固態(tài)硬盤(pán)<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的TF卡槽使用說(shuō)明

    RK3576開(kāi)發(fā)板使用TF卡槽
    的頭像 發(fā)表于 05-07 09:24 ?441次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的TF卡槽<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的PWN使用說(shuō)明

    RK3576開(kāi)發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1026次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的PWN<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的RTC使用說(shuō)明

    文章主要展示RK3576開(kāi)發(fā)板的RTC信息和快速上手例程
    的頭像 發(fā)表于 05-07 15:04 ?481次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的RTC<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的人臉識(shí)別算法

    RK3576開(kāi)發(fā)板展示人臉識(shí)別算法例程和API說(shuō)明
    的頭像 發(fā)表于 05-07 16:48 ?905次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的人臉識(shí)別算法

    【米爾RK3576開(kāi)發(fā)板評(píng)測(cè)】+項(xiàng)目名稱【米爾RK3576開(kāi)發(fā)板評(píng)測(cè)】一個(gè)視頻和你共同認(rèn)識(shí)一下米爾RK3576開(kāi)發(fā)板

    收到米爾RK3576開(kāi)發(fā)板后,也對(duì)米爾RK3576開(kāi)發(fā)板進(jìn)行了了解,米爾這款開(kāi)發(fā)板真的很不錯(cuò),下面是官方的一些參數(shù)介紹: MYC-LR
    發(fā)表于 12-18 20:50

    【米爾RK3576開(kāi)發(fā)板評(píng)測(cè)】+項(xiàng)目名稱值得購(gòu)買(mǎi)的米爾RK3576開(kāi)發(fā)板

    米爾依然是核心加擴(kuò)展板的模式,我拿到手的開(kāi)發(fā)板,核心已經(jīng)通過(guò)LGA貼片,焊好了。 開(kāi)發(fā)板做工很好,布線細(xì)致工整。 RK3576
    發(fā)表于 01-08 22:59

    新品體驗(yàn) | RK3576開(kāi)發(fā)板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號(hào)的核心與評(píng)估
    的頭像 發(fā)表于 11-01 08:08 ?1615次閱讀
    新品體驗(yàn) | <b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>

    米爾RK3576開(kāi)發(fā)板特惠活動(dòng)!

    近日,米爾電子發(fā)布基于瑞芯微RK3576核心開(kāi)發(fā)板,RK3576作為國(guó)產(chǎn)熱門(mén)處理器,其高性能數(shù)據(jù)處理能力、領(lǐng)先的AI智能分析、強(qiáng)大的擴(kuò)展性與兼容性受到廣大
    的頭像 發(fā)表于 11-12 01:00 ?640次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>特惠活動(dòng)!

    迅為RK3576開(kāi)發(fā)板核心與底板接口硬件介紹

    迅為RK3576開(kāi)發(fā)板核心與底板接口硬件介紹
    的頭像 發(fā)表于 01-14 15:15 ?1119次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    基于RK3576開(kāi)發(fā)板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯(lián)盟下的Display工作組指定的DSI(Display Serial Interface)的接口標(biāo)準(zhǔn)。rk3576開(kāi)發(fā)板使用mipi-dsi教程
    的頭像 發(fā)表于 05-06 16:11 ?163次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的MIPI-DSI使用

    基于RK3576開(kāi)發(fā)板的揚(yáng)聲器和耳機(jī)使用說(shuō)明

    RK3576開(kāi)發(fā)板的揚(yáng)聲器和耳機(jī)使用說(shuō)明
    的頭像 發(fā)表于 05-06 16:36 ?110次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的揚(yáng)聲器和耳機(jī)<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的HDMI-OUT使用說(shuō)明

    RK3576開(kāi)發(fā)板的HDMI-OUT使用說(shuō)明
    的頭像 發(fā)表于 05-06 16:48 ?97次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的HDMI-OUT<b class='flag-5'>使用說(shuō)明</b>

    基于RK3576開(kāi)發(fā)板的人員檢測(cè)算法

    展示了RK3576開(kāi)發(fā)板的人員檢測(cè)算法例程及API說(shuō)明
    的頭像 發(fā)表于 05-07 17:33 ?123次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開(kāi)發(fā)板</b>的人員檢測(cè)算法