娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月15日(星期六)

2020年03月15日 | I2C配置及調試流程

發布者:ArtisticSoul 來源: eefocus關鍵字:I2C配置  調試流程  MSM8937 手機看文章 掃描二維碼
隨時隨地手機看文章

一、I2C配置

1.根據原理圖,查找相關的i2c引腳對應的GPIO值,以GPIO10作為I2C_SDA,GPIO11作為I2C_SCL為例。


2.根據MSM8937 DEVICE SPECIFICATION文檔,查找GPIO10與GPIO11對應的BLSP,以及檢查GPIO10與GPIO11是否可以作為I2C來使用。根據文檔,GPIO10對應BLSP3_1,GPIO11對應BLSP3_0。


3.根據80-nu767-1_h_linux_bam_low-speed_peripherals_configuration_and_debug_guide文件,查找I2C部分BLSP3_0與BLSP3_1對應內容,包括其物理地址、reg size、中斷號......


4.進入kernel/msm-3.18/arch/arm/boot/dts/qcom/路徑下修改msm8937-pinctrl.dtsi文件

GPIO配置如下:

i2c_3 {

            i2c_3_active: i2c_3_active {

                /* active state */

                mux {

                    pins = "gpio10", "gpio11";

                    function = "blsp_i2c3";

                };

                config {

                    pins = "gpio10", "gpio11";

                    drive-strength = <2>;

                    bias-disable;

                };

            };

            i2c_3_sleep: i2c_3_sleep {

                /* suspended state */

                mux {

                    pins = "gpio10", "gpio11";

                    function = "gpio";

                };

                config {

                    pins = "gpio10", "gpio11";

                    drive-strength = <2>;

                    bias-disable;

                };

            };

        };

5.進入kernel/msm-3.18/arch/arm/boot/dts/qcom/路徑下修改msm8937.dtsi文件

添加一個新的設備樹節點

(1)添加i2c_3

aliases {

        smd1 = &smdtty_apps_fm;

        smd2 = &smdtty_apps_riva_bt_acl;

        smd3 = &smdtty_apps_riva_bt_cmd;

        smd4 = &smdtty_mbalbridge;

        smd5 = &smdtty_apps_riva_ant_cmd;

        smd6 = &smdtty_apps_riva_ant_data;

        smd7 = &smdtty_data1;

        smd8 = &smdtty_data4;

        smd11 = &smdtty_data11;

        smd21 = &smdtty_data21;

        smd36 = &smdtty_loopback;

        spi3 = &spi_3;

        i2c2 = &i2c_2;

        i2c5 = &i2c_5;

        i2c3 = &i2c_3;

        sdhc1 = &sdhc_1; /* SDC1 eMMC slot */

        sdhc2 = &sdhc_2; /* SDC2 for SD card */

    };

(2)配置i2c_3

i2c_3: i2c@78b7000 { /* BLSP1 QUP3 */

        compatible = "qcom,i2c-msm-v2";

        #address-cells = <1>;

        #size-cells = <0>;

        reg-names = "qup_phys_addr";

        reg = <0x78b7000 0x600>;

        interrupt-names = "qup_irq";

        interrupts = <0 97 0>;

        qcom,clk-freq-out = <400000>;

        qcom,clk-freq-in  = <19200000>;

        clock-names = "iface_clk", "core_clk";

        clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,

            <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>;

        pinctrl-names = "i2c_active", "i2c_sleep";

        pinctrl-0 = <&i2c_3_active>;

        pinctrl-1 = <&i2c_3_sleep>;

        qcom,noise-rjct-scl = <0>;

        qcom,noise-rjct-sda = <0>;

        qcom,master-id = <86>;

        dmas = <&dma_blsp1 8 64 0x20000020 0x20>,

            <&dma_blsp1 9 32 0x20000020 0x20>;

        dma-names = "tx", "rx";

        status = "okey";

    };

6.進入kernel/msm-3.18/drivers/clk/msm路徑下修改clock-gcc-8952.c文件

添加時鐘節點如下圖所示:

static struct rcg_clk blsp1_qup1_i2c_apps_clk_src = {

    .cmd_rcgr_reg = BLSP1_QUP1_I2C_APPS_CMD_RCGR,

    .set_rate = set_rate_hid,

    .freq_tbl = ftbl_gcc_blsp1_2_qup1_4_i2c_apps_clk,

    .current_freq = &rcg_dummy_freq,

    .base = &virt_bases[GCC_BASE],

    .c = {

        .dbg_name = "blsp1_qup1_i2c_apps_clk_src",

        .ops = &clk_ops_rcg,

        VDD_DIG_FMAX_MAP1(LOWER, 50000000),

        CLK_INIT(blsp1_qup1_i2c_apps_clk_src.c),

    },

};


二、I2C BUS驗證

配置好I2C后,我們需保證I2C BUS被注冊

驗證過程如下:

adb shell //-------> Get adb shell

cd /dev/

ls i2c* //--------> to list all the i2c buses

如果顯示i2c-3,則表示I2C BUS已被注冊


三、I2C調試檢查

1、檢查I2C配置的相關內容,是否存在錯誤,或者漏配。

2、確保SDA和SCL所配置的GPIO沒有被配置,否則會硬件配置出問題或者GPIO設置無效。

3、若I2C配置無誤后,檢查相關硬件問題

使用萬用表測量I2C_SDA以及I2C_SCL的供電電壓,如果與原理圖中所示供電電壓相差無幾,則表示I2C供電電壓沒有問題。反之,則代表供電電壓存在問題。

4、添加從設備

(1)、 通過設備樹來注冊一個從設備

如果I2C總線正常工作,我們就可以創建一個從設備驅動程序并注冊到i2c總線上

我們使用st1663i觸摸屏的驅動注冊作為范例,引用文件:

kernel/drivers/input/touchscreen/st1663i/sitronix_i2c_touch.c.c

(2)、創建一個設備樹節點

文件修改:

/kernel/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5.dtsi

添加一個新的設備樹節點:

i2c@78b7000 {

        status = "ok";

            st1663i@70 {

                compatible = "sitronix-tp"; 

                reg = <0x70>;

                interrupt-parent = <&tlmm>;

                interrupts = <65 0x00>;

                reset-gpio = <&tlmm 64 0x00>;

                irq-gpio = <&tlmm 65 0x2002>;

                /*avdd-supply = <&tp_power>;*/

                vdd-supply = <&pm8917_l17>;

                vcc_i2c-supply = <&pm8917_l5>;

                /* pins used by touchscreen */

                pinctrl-names = "pmx_ts_active",

                    "pmx_ts_suspend",

                    "pmx_ts_release";

                pinctrl-0 = <&ts_int_active &ts_reset_active>;

                pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;

                pinctrl-2 = <&ts_release>; 

                st1663i,i2c-pull-up;

                st1663i,no-force-update;

                st1663i,num_max_touches = <10>;

                st1663i,panel-coords = <0 0 480 800>;

                st1663i,display-coords = <0 0 480 800>;

                st1663i,button-map= <139 172 158>;

                st1663i,have-touch-key;

                st1663i,driver-send-cfg;

            };

    };

(3)、編譯完成后,利用示波器測量I2C_SDA以及I2C_SCL波形

測試流程如下

adb root

adb remount

adb push i2c_test system/bin

adb shell

cd system/bin

chmod 777 i2c_test

./i2c_test /dev/i2c-3 0xaddr(從設備物理地址) 0(讀) 0xaddr(寄存器地址)

如果I2C沒有問題,所示I2C_SDA波形應為以下形式

I2C start > 0xE0 (write of 0x70) > 0x1 (reg offset ) > I2C stop > delay > I2C start > 0xE1 (read of 0x70) > > 8 bytes > I2C stop

關鍵字:I2C配置  調試流程  MSM8937 引用地址:I2C配置及調試流程

上一篇:命令行讀寫i2c寄存器操作
下一篇:ST-LINK/V2 + STM8 + STVP 下載程序+Error on Option Bytes

推薦閱讀

  傳統的投幣電話,都是以幾對紅外發射、接收對管作傳感器,利用硬幣遮光原理粗測幣的直徑。這種方法精度低,更無法識別相同直徑但不同材質的偽幣。    新一代投幣電話,如英國的藍寶石系列,能對硬幣的材質、厚度、直徑作精確的檢測,所以精確性與可靠性都大大提高。這類新型投幣電話中,需要一種微功耗、寬工作電壓范圍、能適應電話線路供電的高性...
盡管媒體上“自動駕駛寒冬”的聲音此起彼伏,但資本卻拿出真金白銀表明了自己的立場。 眼下,無論“資本寒冬”的說法是否成立,但對產業的頭部公司來說,越是所謂的“冬天”,資金越會向他們聚攏。比如,以自動駕駛為重要業務領域的AI芯片公司地平線,就在最近公布了一筆高達6億美金的融資。 一.江南的春天,終于結束了長達一個多月的連陰雨天氣,開始轉...
1. 創建新的工作環境:2. 在工作環境下創建自己的工程:如果有已存在的工程,可以選擇Add Existing Project添加已存在的工程。Empty project為空工程,一般我們默認選這個就好了。也可以選這C工程,C工程創建后會自動生產一個.c文件,方便我們編寫程序。創建后自己輸一個工程名就好了(建議名字為你本次程序的主題,這樣方便你以后查找與修改)。創建后...
新浪數碼訊 3月15日上午消息,至今,仍舊有很多手機玩家感嘆諾基亞N-Gage概念領先于時代,但其實諾基亞類似的設計并不只N-Gage一款,從最初的5510開始,在黑白屏手機時代,游戲手機的雛形就已經出現了。  這種橫向使用的手機最初始于2001年的諾基亞5510,整整20年前了,它仍然如此特征明顯。居中的屏幕和橫向QWERTY鍵盤,讓這款手機成為短信...

史海拾趣

問答坊 | AI 解惑

世界幾大最新汽車技術動態一覽

·ECD Ovonics公司氫燃料儲藏技術  ·本田汽車公司推出Super-Handling四輪驅動系統     ·Westport公司為寶馬汽車公司的氫氣燃料發動機開發計劃提供燃料噴射系統    ·豐田汽車公司開發低速范圍內雷達巡航控制技術 …

查看全部問答∨

RTL8139C以太網卡原理圖PDF

RTL8139C以太網卡原理圖PDF,…

查看全部問答∨

開關電源研發范例

讓你的水平不一般…

查看全部問答∨

wince支持directinput嗎?

現在用directdraw overlay層, 希望能對觸摸屏的輸入有反應,但沒找到directinput相關的文檔. 我用的是wince 5.0…

查看全部問答∨

ARM里 SUB和SUBS哪個執行得快

兩段代碼 loop       ............       SUBS R0, R0, #1       BEQ finish       BNE loop 和 loop       ................. & ...…

查看全部問答∨

有類似于SqlServerCEClient.dll的對應oracle的庫嗎? 急!!! [開發平臺]

有類似于SqlServerCEClient.dll的對應oracle的庫嗎?   急!!! [開發平臺] …

查看全部問答∨

簡單問題:關于AD

請問大家: 1 . 對于DVcc為3.3V的單片機來說,輸入的欲轉換的模擬電壓是不是不能超過3.3V? 2. 430可以接入外部參考電壓,可不可以用它接大于3.3 V的電壓從而實現教大電壓的轉換? 3. 由于我要轉換的模擬電壓達到4V,這種情況一般有什么解決方案 ...…

查看全部問答∨

學電子的,如何得到社會的承認?

本人目前正在上大三,專業是電子技術。   在為未來的工作擔心,看到別的系都有考這個考那個證書的。   現在有點兒迷茫了,咱們這個專業有什么證書好呢?像咱電子技術專業的人,要得到社會的承認,找到個不錯的工作,應該如何得到社會 ...…

查看全部問答∨

溫州環科電子信息科技有限公司大量招聘!!!!

溫州環科電子信息科技有限公司誠聘以下崗位:崗位名稱:LED技術總監崗位職責要求:1、根據公司發展戰略組織策劃研發工作規劃,并使公司技術、研發目標達成。 2、[一燈]LED照明新技術引進和新產品項目開發管理,確保技術的前瞻性和領先性,確保項目 ...…

查看全部問答∨

電機控制 - TI電機驅動和控制解決方案:集成電機驅動器和閘極驅動器

本帖最后由 dontium 于 2015-1-23 13:10 編輯   TI電機驅動和控制解決方案:集成電機驅動器和閘極驅動器   DRV8x 電機驅動器   集成電機驅動器在單個 IC 中集成閘極驅動器、MOSFETS 和保護電路,以最小的成本和物理尺寸提供 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 南平市| 华容县| 白水县| 汉寿县| 鄂托克旗| 福州市| 崇义县| 大名县| 和林格尔县| 青岛市| 武川县| 河西区| 垦利县| 左贡县| 襄汾县| 天柱县| 龙山县| 比如县| 新河县| 岑溪市| 安塞县| 哈密市| 永丰县| 偏关县| 郁南县| 陵水| 阿荣旗| 资中县| 临夏县| 临城县| 股票| 朝阳市| 雷山县| 寿阳县| 独山县| 合阳县| 绵阳市| 卢龙县| 新巴尔虎左旗| 七台河市| 容城县|