在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

Milk-V Duo開發(fā)板免費(fèi)體驗(yàn) I2C分析

范成功 ? 來源:wakojosin ? 作者:wakojosin ? 2023-07-21 10:53 ? 次閱讀

I2C需要分兩部分進(jìn)行修改,第一部分是設(shè)備樹的配置,這部分主要是有關(guān)I2C控制器相關(guān)的參數(shù)、中斷等,另一部分是硬件引腳的配置,由于驅(qū)動用的是i2c-designware的通用驅(qū)動,所以需要讀取進(jìn)行IO初始化,這就出現(xiàn)了額外的操作,希望后面對驅(qū)動進(jìn)行適配,可以從設(shè)備樹對引腳進(jìn)行配置,自動完成初始化。

下面就來看看I2C驅(qū)動的大概過程吧:

設(shè)備樹

// linux_5.10/arch/riscv/boot/dts/cvitek/cv180x_base.dtsi
i2c0: i2c@04000000 {
	compatible = "snps,designware-i2c";
	clocks = ;
	reg = ;
	clock-frequency = ;

	#size-cells = ;
	#address-cells = ;
	resets = ;
	reset-names = "i2c0";
};

// linux_5.10/arch/riscv/boot/dts/cvitek/cv180x_base_riscv.dtsi
i2c0: i2c@04000000 {
	interrupts = ;
	interrupt-parent = ;
};

驅(qū)動源碼

使用的是i2c designware的框架。

控制器驅(qū)動

// linux_5.10/drivers/i2c/busses/i2c-designware-platdrv.c
dw_i2c_plat_probe(struct platform_device *pdev):
	i2c_dw_probe(struct dw_i2c_dev *dev)
		i2c_dw_probe_master(struct dw_i2c_dev *dev)
			i2c_add_numbered_adapter(struct i2c_adapter *adap)
				i2c_add_adapter(struct i2c_adapter *adapter)
					i2c_register_adapter(struct i2c_adapter *adap)
						device_register(struct device *dev) // 注冊設(shè)備

設(shè)備驅(qū)動

// linux_5.10/drivers/i2c/i2c-core-base.c
i2c_register_driver(struct module *owner, struct i2c_driver *driver)
	driver_register(&driver->driver); // 注冊驅(qū)動

通過device_register和driver_register會進(jìn)行match和probe的操作,從而關(guān)聯(lián)起來I2C適配器和設(shè)備驅(qū)動。

對于詳細(xì)得展開需要進(jìn)一步的學(xué)習(xí)。

應(yīng)用編程

i2c的驅(qū)動編程就是open/read/write/ioctrl這一套。

uint8_t reg_addr = 0x00;
uint8_t data_buf[2];

// 打開設(shè)備
int i2c_fd = open("/dev/i2c-0", O_RDWR);

// 方式一:
// 設(shè)置從機(jī)地址
ioctl(i2c_fd, I2C_SLAVE, slave_addr);
write(i2c_fd, 0, ?_addr, 1);
read(i2c_fd, 0, data_buf, 2);

// 方式二:
struct i2c_rdwr_ioctl_data rdwr;
struct i2c_msg msgs[2];
msgs[0].addr  = I2C_SLAVE;
msgs[0].flags = 0;
msgs[0].len   = 1;
msgs[0].buf   = ?_addr;
msgs[1].addr  = I2C_SLAVE;
msgs[1].flags = I2C_M_RD;
msgs[1].len   = 2;
msgs[1].buf   = data_buf;
rdwr.msgs  = msgs;
rdwr.nmsgs = 2;
ioctl(file, I2C_RDWR, &rdwr);

以上兩種方式選擇其中一種就行。

接下去就用溫濕度傳感器測試一下i2c總線的使用,演示過程后面通過視頻展示。

審核編輯:湯梓紅

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

    關(guān)注

    114

    文章

    17019

    瀏覽量

    183255
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1537

    瀏覽量

    127212
  • 溫濕度傳感器
    +關(guān)注

    關(guān)注

    5

    文章

    591

    瀏覽量

    36400
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5576

    瀏覽量

    102994
收藏 人收藏

    評論

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

    Milk-V Duo】1、入門篇

    入門milk-V Duo開發(fā)板
    的頭像 發(fā)表于 07-07 11:21 ?2064次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b>】1、入門篇

    Milk-V Duo開發(fā)板免費(fèi)體驗(yàn)】Milk-V初次使用

    Milk-V Duo開發(fā)板免費(fèi)體驗(yàn)】Milk-V初次使用
    的頭像 發(fā)表于 08-08 09:03 ?2822次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費(fèi)</b>體驗(yàn)】<b class='flag-5'>Milk-V</b>初次使用

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】 + 系統(tǒng)鏡像燒錄以及登錄

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】+系統(tǒng)鏡像燒錄以及登錄 一.Milk-V Duo
    發(fā)表于 07-11 11:43

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】Milk-V Duo之開箱初體驗(yàn)

    一,第一印象 外觀設(shè)計方面,Milk-V Duo以簡約而精致的風(fēng)格為主,采用沉金工藝,給人一種高端大氣的感覺。開發(fā)板的尺寸小巧,便于攜帶和使用,在我拿到的所有的開發(fā)板中,也只有
    發(fā)表于 07-16 01:15

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】1.開箱體驗(yàn)

    感謝算能和電子發(fā)燒友論壇的開發(fā)板試用活動,有幸體驗(yàn)Milk-V Duo 開發(fā)板Milk-V Duo
    發(fā)表于 07-23 16:00

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】Milk-V Duo 開發(fā)板學(xué)習(xí)初體驗(yàn)

    milkv-duo-20230616-2232.img自制成linux啟動盤 3、通過Type-C數(shù)據(jù)線連接電腦,小板系統(tǒng)順暢的啟動了 登錄Milk-V Duo小板的系統(tǒng)耍耍吧 1、正
    發(fā)表于 07-28 15:58

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】開發(fā)板使用3

    接上文 【Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】開發(fā)板使用1 |和接上文 【Milk-V
    發(fā)表于 07-29 08:17

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】milkv-duo 申請成功體驗(yàn)

    。 引腳圖 總結(jié) Milk-V Duo開發(fā)板的小巧精致設(shè)計和強(qiáng)悍的性能確實(shí)為創(chuàng)客和開發(fā)者提供了一個優(yōu)秀的平臺。它的緊湊設(shè)計使得它適用于各種空間有限的場景,同時強(qiáng)大的性能可以支持復(fù)雜
    發(fā)表于 07-29 14:31

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】初步體驗(yàn) + 搭建開發(fā)環(huán)境

    鏈接依賴過去即可了,后續(xù)可以直接修改文件系統(tǒng)去燒錄。【Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】OpenCV的交叉編譯 - RISC-V MCU
    發(fā)表于 08-01 12:49

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】Milk-V Duo 開發(fā)板初體驗(yàn)

    Milk-V Duo開發(fā)板(圖4)是一款基于CV1800B芯片(RISC-V架構(gòu),C906@1Ghz +
    發(fā)表于 08-18 00:26

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】3-Linux控制小車方向

    接上兩篇:【Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】2控制螺旋槳電路https://bbs.elecfans.com/jishu_237105
    發(fā)表于 08-20 23:57

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】4-Linux控制小車動作(原創(chuàng))首發(fā)

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】2控制螺旋槳電路https://bbs.elecfans.com/jishu_2371054_1_
    發(fā)表于 08-21 02:11

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】初體驗(yàn)及開箱視頻

    剛剛收到開發(fā)板,給大家做個視頻來初步了解以下Milk-V Duo 開發(fā)板Milk-V Duo
    發(fā)表于 08-22 23:59

    Milk-V Duo 開發(fā)板免費(fèi)體驗(yàn)】②、ssh連接Milk-V Duo開發(fā)板

    承接上期的開箱貼,此次將Milk-V Duo開發(fā)板運(yùn)行l(wèi)inux系統(tǒng)。在此之前需要手頭準(zhǔn)備一張8GB以上的TF卡,并使用讀卡器將TF燒錄Linux鏡像文件。這里需要借助燒寫工具rufus,這款工具
    發(fā)表于 08-29 00:53

    Milk-V Duo開發(fā)板免費(fèi)體驗(yàn)】評測三、I2C功能摸索

    調(diào)試milkv duoi2c功能
    的頭像 發(fā)表于 07-28 08:59 ?2020次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費(fèi)</b>體驗(yàn)】評測三、<b class='flag-5'>I2C</b>功能摸索
    主站蜘蛛池模板: 三级在线看 | 日本精品卡一卡2卡3卡四卡三卡 | 有码视频在线观看 | 夜夜爱成人免费网站 | 日本特黄在线观看免费 | 亚洲午夜精品久久久久久抢 | 2021天天躁狠狠燥 | 色视频国产| 午夜影院免费体验 | 涩涩高清无乱码在线观看 | 老师下面很湿很爽很紧 | 午夜视频免费在线观看 | 亚洲一级毛片在线观播放 | 亚洲国产精品乱码一区二区三区 | 黄网在线观看免费 | 琪琪午夜免费影院在线观看 | 午夜免费视频福利集合100 | 午夜视频在线看 | 欧美人成网 | 濑亚美莉vs黑人欧美视频 | 成年女人毛片免费观看97 | 欧美在线一级视频 | 久久精品1| 在线观看视频播放 | 国产一二三区在线观看 | 日本视频三区 | 成年人三级视频 | 久久久久久久久综合 | 欧美精品aaa久久久影院 | 美女流白浆网站 | 欧美日韩国产另类一区二区三区 | 亚洲一本之道在线观看不卡 | 日本黄a | 天天色综合4 | 天天干天天谢 | 高清成年美女黄网站色大 | 一级aaa毛片 | 奇米色影院 | 免费看欧美一级特黄α大片 | 美女在线看永久免费网址 | 欧美一级在线观看视频 |