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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Milk-V Duo開發板免費體驗 I2C分析

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

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

下面就來看看I2C驅動的大概過程吧:

設備樹

// 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 = ;
};

驅動源碼

使用的是i2c designware的框架。

控制器驅動

// 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) // 注冊設備

設備驅動

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

通過device_register和driver_register會進行match和probe的操作,從而關聯起來I2C適配器和設備驅動。

對于詳細得展開需要進一步的學習。

應用編程

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

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

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

// 方式一:
// 設置從機地址
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總線的使用,演示過程后面通過視頻展示。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16482

    瀏覽量

    179718
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1495

    瀏覽量

    124765
  • 溫濕度傳感器

    關注

    5

    文章

    581

    瀏覽量

    35878
  • 開發板
    +關注

    關注

    25

    文章

    5141

    瀏覽量

    98395
收藏 人收藏

    評論

    相關推薦

    Milk-V Duo】1、入門篇

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

    Milk-V Duo開發板免費體驗】Milk-V初次使用

    Milk-V Duo開發板免費體驗】Milk-V初次使用
    的頭像 發表于 08-08 09:03 ?2591次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發板</b><b class='flag-5'>免費</b>體驗】<b class='flag-5'>Milk-V</b>初次使用

    Milk-V Duo 開發板免費體驗】 + 系統鏡像燒錄以及登錄

    Milk-V Duo 開發板免費體驗】+系統鏡像燒錄以及登錄 一.Milk-V Duo
    發表于 07-11 11:43

    Milk-V Duo 開發板免費體驗】Milk-V Duo之開箱初體驗

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

    Milk-V Duo 開發板免費體驗】1.開箱體驗

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

    Milk-V Duo 開發板免費體驗】Milk-V Duo 開發板學習初體驗

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

    Milk-V Duo 開發板免費體驗】開發板使用3

    接上文 【Milk-V Duo 開發板免費體驗】開發板使用1 |和接上文 【Milk-V
    發表于 07-29 08:17

    Milk-V Duo 開發板免費體驗】milkv-duo 申請成功體驗

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

    Milk-V Duo 開發板免費體驗】初步體驗 + 搭建開發環境

    鏈接依賴過去即可了,后續可以直接修改文件系統去燒錄。【Milk-V Duo 開發板免費體驗】OpenCV的交叉編譯 - RISC-V MCU
    發表于 08-01 12:49

    Milk-V Duo 開發板免費體驗】Milk-V Duo 開發板初體驗

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

    Milk-V Duo 開發板免費體驗】3-Linux控制小車方向

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

    Milk-V Duo 開發板免費體驗】4-Linux控制小車動作(原創)首發

    Milk-V Duo 開發板免費體驗】2控制螺旋槳電路https://bbs.elecfans.com/jishu_2371054_1_
    發表于 08-21 02:11

    Milk-V Duo 開發板免費體驗】初體驗及開箱視頻

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

    Milk-V Duo 開發板免費體驗】②、ssh連接Milk-V Duo開發板

    承接上期的開箱貼,此次將Milk-V Duo開發板運行linux系統。在此之前需要手頭準備一張8GB以上的TF卡,并使用讀卡器將TF燒錄Linux鏡像文件。這里需要借助燒寫工具rufus,這款工具
    發表于 08-29 00:53

    Milk-V Duo開發板免費體驗】評測三、I2C功能摸索

    調試milkv duoi2c功能
    的頭像 發表于 07-28 08:59 ?1846次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發板</b><b class='flag-5'>免費</b>體驗】評測三、<b class='flag-5'>I2C</b>功能摸索
    主站蜘蛛池模板: 欧美精品网 | 人人插人人爽 | 亚洲欧美人成网站综合在线 | 人人干夜夜操 | 亚洲精品成人在线 | yezhulu在线永久网址yellow | 欧美私人网站 | 日本一本一道久久香蕉免费 | 手机看片福利盒子 | 欧美色婷婷天堂网站 | 伊人久久综合成人网小说 | 狠狠狠色丁香婷婷综合激情 | 黄色小毛片| 最近高清免费观看视频 | 日本特黄a级高清免费大片18 | 五月婷婷深深爱 | av天天看| 天天射天天摸 | 浓厚な接吻と肉体の交在线观看 | 欧美国产黄色 | 人操人爱 | 国产在线色视频 | 久久香蕉国产精品一区二区三 | 天天摸天天看天天爽 | 日日干夜夜操 | 屁股趴过来欠打高h | 亚欧精品一区二区三区 | 亚洲大尺度视频 | 成人免费黄色网 | 久青草国产手机在线视频 | www.亚洲成人 | 精品一区二区视频 | 国产69精品久久久久9牛牛 | 男人不识本网站上遍色站也枉然 | 狠狠操欧美 | 91男女视频| 美女网站黄在线看 | 天堂网最新版www | 最近的中文字幕免费动漫视频 | xx视频在线 | 一级片一级片一级片 |