OpenHarmony標準系統-HDF框架之I2C驅動開發

請添加圖片描述

文章目錄

  • 引言
  • I2C基礎知識
    • 概念和特性
    • 協議,四種信號組合
  • I2C調試手段
    • 硬件
    • 軟件
  • HDF框架下的I2C設備驅動
    • 案例描述
      • 驅動Dispatch
      • 驅動讀寫
  • 總結


引言


I2C基礎知識

概念和特性

  • 集成電路總線,由串網12C(1C、12C、Inter-Integrated Circuit BUS)行數據線SDA和串行時鐘線SCL組成,對于-個12C接口的器件,至少還需要電源和地線
  • 12C總線是雙向、半雙工傳輸支持多主機、多從機同時掛接在一條12C總線上,多主機同時請求總線時,可以通過沖突檢測和仲裁機制防止總線數據被破壞;
  • 每個從設備都有唯一的地址,從設備可被尋址(又稱被選中)只有被選中的從設備才能參與通信,每次通信只有一個主設備和個從設備參與;
  • 主設備發起一次通信,從設備響應:主從設備都可以發送和接收數據,SCL時鐘由主設備發出,在工程中常見MCU或SOC作為主設備,主從設備地位可能交換。

12C是串行低速總線,常見傳輸速度如下
- 標準模式(Standard-mode):速率高達100kbit/s
- 快速模式(Fast-mode):速率高達400kbit/s
- 快速模式+(Fast-mode Plus):速率高達1Mbit/s。
- 高速模式(High-speed mode):速率高達3.4Mbit/s
工程中常見兼容標準模式和快速模式的12C從設備。

  • 一條12C總線上的所有從設備都有一個唯一的設備地址,不能與線上的其他設備地址重復;
  • 設備地址有7位和10位兩種格式,常見7位格式;
  • I2C主設備對從設備可執行寫操作和讀操作,通過寫地址和讀地址區分寫操作和讀操作;

設備地址7位:1010000 (0x50)
寫地址8位:設備地址左移1位,末位補0,10100000 (0xA0)
讀地址8位:設備地址左移1位,末位補1,10100001 (0xA1)


  • 同一個I2C從設備可能具有多個設備地址,通常可通過從設備的管腳配置,以I2C接口的ROM芯片AT24C256為例:
    在這里插入圖片描述
    在這里插入圖片描述

協議,四種信號組合

在這里插入圖片描述


I2C調試手段

硬件

在這里插入圖片描述


軟件

在這里插入圖片描述


HDF框架下的I2C設備驅動

案例描述

在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


驅動Dispatch

在這里插入圖片描述


驅動讀寫

在這里插入圖片描述


在這里插入圖片描述


總結

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86432.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu系統下交叉編譯openssl

一、參考資料 OpenSSL&&libcurl庫的交叉編譯 - hesetone - 博客園 二、準備工作 1. 編譯環境 宿主機:Ubuntu 20.04.6 LTSHost:ARM32位交叉編譯器:arm-linux-gnueabihf-gcc-11.1.0 2. 設置交叉編譯工具鏈 在交叉編譯之前&#x…

數據庫優化實戰分享:高頻場景下的性能調優技巧與案例解析

在實際開發與生產運維中,數據庫的性能瓶頸往往是影響系統響應速度和用戶體驗的關鍵因素。尤其是在高并發訪問、海量數據處理、復雜查詢邏輯等高頻場景下,數據庫優化不僅僅是“錦上添花”,更是“雪中送炭”。本篇博文將結合實際項目經驗&#…

Python importlib 動態加載

文章目錄 1. importlib 庫 概述2. 導入模塊(import_module())2.1. 導入已安裝的模塊2.2. 導入子模塊2.3 通過字符串變量導入模塊 3. 重新加載模塊(reload())4. 檢查模塊是否存在(find_spec())5. 獲取模塊路…

(1-6-4) Java IO流實現文件的讀取與寫入

目錄 0.前述概要 1. File類 1.1 概述 1.2 File的重要方法 1.3 java.io 1.3.1 四種抽象類 1.3.2 流 1.3.3 其他常用 I/O 流 2. 字節輸入流(InputSteam) 2.1 關系類圖 2.2 應用實現 3. 字節輸出流(OutputStream) 3.1 …

【Proteus仿真】【32單片機-A010】步進電機控制系統設計

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 聯系作者 一、主要功能 1、LCD顯示當前擋位、方向等; 2、按鍵控制步進電機擋位、方向等。 二、使用步驟 系統運行后,LCD1602顯示當前擋位、方向; 通過按鍵…

DeepSeek-R1-0528-Qwen3-8B為底座微調領域大模型準備:制作領域專用數據集

前言 想要微調領域大模型,數據的準備是必不可少的。然而微調大模型需要的數據極多,這樣花費很多人力和準備。有沒有方便又高效的方法?一下子就可以準備大量的領域專用數據集呢? 制作領域專用數據集 這里制作的數據集格式為使用的aphaca格式的 1.啟動vllm服務 python -m…

WEB3全棧開發——面試專業技能點P6后端框架 / 微服務設計

一、Express Express是國內大部分公司重點問的。我在本文最后,單獨講解了Express框架。 概念介紹 Express 是基于 Node.js 平臺的極簡、靈活且廣泛使用的 Web 應用框架。它提供了一系列強大的功能,用于構建單頁、多頁及混合型的 Web 應用程序和 API 服…

游戲開發中的CI/CD優化案例:知名游戲公司Gearbox使用TeamCity簡化CI/CD流程

案例背景 關于Gearbox: Gearbox 是一家美國電子游戲公司,總部位于德克薩斯州弗里斯科,靠近達拉斯。Gearbox 成立于1999年,推出過多款史上最具代表性的視頻游戲,包括《半衰期》、《戰火兄弟連》以及《無主之地》。 團隊…

視覺slam--三維剛體運動

線性代數 外積與矩陣乘法的等價性 歐拉角的奇異性--萬向死鎖 現象 第二個軸旋轉度,會導致第三個旋轉軸和惡原始坐標軸的第一個旋轉軸重合,導致第一次旋轉與第三次旋轉都使用了同一個軸進行旋轉,也就是本質上旋轉三次,但是只在兩個…

內窺鏡檢查中基于提示的息肉分割|文獻速遞-深度學習醫療AI最新文獻

Title 題目 Prompt-based polyp segmentation during endoscopy 內窺鏡檢查中基于提示的息肉分割 01 文獻速遞介紹 以下是對這段英文內容的中文翻譯: ### 胃腸道癌癥的發病率呈上升趨勢,且有年輕化傾向(Bray等人,2018&#x…

CppCon 2015 學習:REFLECTION TECHNIQUES IN C++

關于 Reflection(反射) 這個概念,總結一下: Reflection(反射)是什么? 反射是對類型的自我檢查能力(Introspection) 可以查看類的成員變量、成員函數等信息。反射允許枚…

R語言速釋制劑QBD解決方案之一

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一個處方的R語言解決方案。 第一個處方研究評估原料藥粒徑分布、MCC/Lactose比例、崩解劑用量對制劑CQAs的影響。 第二處方研究用于理解顆粒外加硬脂酸鎂和滑石粉對片劑質量和可生產…

“詳規一張圖”——新加坡土地利用數據

在城市規劃和土地管理領域,精確且詳盡的空間數據是進行有效決策的基石。隨著地理信息系統(GIS)技術的發展,我們能夠以前所未有的精度和細節來捕捉、分析和展示土地利用信息。這不僅提升了數據的質量和可靠性,還使得城市…

LabVIEW雙光子成像系統技術

雙光子成像技術的核心特性 雙光子成像通過雙低能量光子協同激發機制,展現出顯著的技術優勢: 深層組織穿透能力:適用于活體組織深度成像 高分辨率觀測性能:滿足微觀結構的精細研究需求 低光毒性特點:減少對樣本的損傷…

MySQL自定義函數零基礎學習教程

1. 引言 想象一下,你在用計算器做數學題。每次計算"圓形面積"時,你都要輸入:3.14 半徑 半徑。如果能把這個計算步驟保存起來,下次只要輸入半徑就自動算出面積,那該多方便! MySQL自定義函數就…

八股---7.JVM

1. JVM組成 1.1 JVM由哪些部分組成?運行流程? 難易程度:☆☆☆ 出現頻率:☆☆☆☆ Java Virtual Machine:Java 虛擬機,Java程序的運行環境(java二進制字節碼的運行環境)好處:一次編寫,到處運行;自動內存管理,垃圾回收機制程序運行之前,需要先通過編譯器將…

企業級AI-DevOps工具鏈的構成及實現方案

企業級AI-DevOps工具鏈的構成及實現方案 DevOps在AI大模型研發中的重要性及應用背景一、場景驅動的AI產品研發運營機制二、AI-DevOps生產線建設三、基于DevOps的AI大模型研發機制四、基于DevOps的智能體場景研發機制五、場景驅動的應用評估分析機制 DevOps在AI大模型研發中的重…

在 Spring Boot 項目里,MYSQL中json類型字段使用

前言&#xff1a; 因為程序特殊需求導致&#xff0c;需要mysql數據庫存儲json類型數據&#xff0c;因此記錄一下使用流程 1.java實體中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…

Python競賽環境搭建全攻略

Python環境搭建競賽技術文章大綱 競賽背景與意義 競賽的目的與價值Python在競賽中的應用場景環境搭建對競賽效率的影響 競賽環境需求分析 常見競賽類型&#xff08;算法、數據分析、機器學習等&#xff09;不同競賽對Python版本及庫的要求硬件與操作系統的兼容性問題 Pyth…

在 Win10 上 WSL 安裝 Debian 12 后,Linux 如何啟動 SMTP 服務?

在 WSL 的 Debian 12 中啟動 SMTP 服務&#xff08;以 Postfix 為例&#xff09;&#xff0c;請按以下步驟操作&#xff1a; 1. 安裝 Postfix sudo apt update sudo apt install postfix mailutils安裝過程中會彈出配置窗口&#xff1a; General type of mail configuration&a…