Cortex-M3 (NXP LPC1788)之IIC控制器

2020-12-20 電子產品世界

I2C通信協議在上篇文章中進行了介紹,下面對LPC1788的I2C控制器進行分析。要使用I2C模塊,需要配置相應的寄存器,如功率、時鐘、管腳等。以I2C0為例,配置P0.27和P0.28管腳分別為SDA和SCL功能,在PCONP中使能I2C0功率控制,根據PCLK和要使用的I2C的頻率設置SCLH和SCLL。

I2C模塊可以工作在主發送、主接收、從發送、從接收四種工作模式。開發板上LPC1788工作在主發送模式時發送數據給總線上的外設。工作在主接收模式時接收總線上的外設數據。

本文引用地址:http://www.eepw.com.cn/article/201611/318455.htm

主發送模式的數據格式

操作流程如下:

1,發送一個S起始條件。初始化控制位寄存器,清除STA、STO、SI,然後向I2C控制置位寄存器I2CONSET中置位STA位,一旦總線空閒,I2C邏輯會馬上測試I2C總線並產生一起始條件。如果起始條件得到總線應答,中斷標誌SI會置位,通讀取I2C狀態寄存器I2STAT的值,如果為0x08表示可以進入發送數據的操作。

2,第一個發送的字節包含接收設備的從機地址和數據方向位。方向位(R/W)設置成0,表示進行些操作,將該字節寫入I2C數據寄存器I2CDAT進行發送。發送成功後會產生一個應答,並且SI再次置位,讀取I2STAT中的狀態,如果是0x18表示得到正確的應答,可以進行數據的傳輸。寫入從機地址後,應該清零起始條件中置位的STA位,並且SI位必須在串行傳輸繼續之前復位。

3,最後進行數據的發送,每個數據發送完成都會有一個應答,且SI置位,如果發送成功讀取的STAT的值為0x28。要注意的是在下一次串行傳輸前必須復位SI。

4,數據發送完成後,發送一個P停止條件。在I2CONSET中置位STO標誌,並且清除STA和SI標誌。

至此,主發送模式結束。

主接收模式數據格式

操作流程如下:

1,發送一個起始條件S。和主發送模式相同。

2,寫第一個字節數據,操作過程和主發送相同,只需將方向位改成讀,並且正確的應答標誌為0x40。

3,數據接收時需要注意的是,接收的最後一個字節總是非應答,這樣主機就可以告訴從機讀序列已經完成。如果接收到的應答A,則I2CSTAT的值為0x50。接收到非答,則I2CSTAT的值為0x58,。應答或者非應答,通過設置SI位進行控制。

4,在接收到非應答的狀態標誌0x58後,發送一個停止條件。

我們可以單獨設置主發送和主接收,也可以再主接收或主發送數據傳輸結束後,選擇不發送停止條件P,而是發送重複起始條件,進行主發送和主接收的切換。

主發送切換到主接收的數據格式

操作流程如下:

1,在主發送模式數據傳輸完成後,不發送停止條件。即上面介紹的主發送模式流程的第4步不執行,而是改成重新發送一個起始標誌,置位STA。重複起始發送成功後返回 的狀態標誌位0x10。

2,切換成功後即可按主接收步驟中的第二步直接開始執行。

LPC1788的主工作模式介紹完,具體的程序在下一篇文章再結合從設備給出代碼。


相關焦點

  • Cortex-M3 (NXP LPC1788)之外部中斷操作
    要使用LPC1788的外部中斷,要進行兩部分的操作。
  • Arm技術文檔分享|Cortex-M 系列處理器Cortex-M3 DesignStart FPGA...
    它專用於要求快速中斷響應的深層嵌入式應用程式,包括微控制器、汽車和工業控制系統。ARM Cortex-M1 FPGA 處理器專用於要求使用集成到 FPGA 中的小型處理器的深層嵌入式應用程式。ARM Cortex-M0 處理器是一個門數非常低、能效非常高的處理器,專用於微控制器和要求使用面積優化處理器的深層嵌入式應用程式。
  • ARM7、ARM9、ARM11、ARM-Cortex系列的關係
    ARM7、ARM9、ARM11、ARM-Cortex的相同點ARM7:ARMv4架構,ARM9:ARMv5架構,ARM11:ARMv6架構,ARM-Cortex 系列:ARMv7架構 ARM7沒有MMU(內存管理單元),只能叫做MCU(微控制器),不能運行諸如Linux、WinCE等這些現代的多用戶多進程作業系統, 因為運行這些系統需要MMU,才能給每個用戶進程分配進程自己獨立的地址空間
  • stm32的gpio模擬iic小記
    在用stm32的模擬iic讀取mpu6050時發現讀whoami寄存器為0xd1,而正確的值應該為0x68,導致這個問題基本上有以下幾個原因:    1、如果是杜邦線連接,線太長且線質量不好會導致這個問題;    2、上拉電阻不合適,上拉電阻不合適的話會導致iic兩根線上的波形不好
  • ST 推出基於Cortex-M3的STM32L超低功耗微控制器
    意法半導體(紐約證券交易所代碼:STM)今天宣布開始向主要客戶提供STM32L系列微控制器樣片,STM32L系列產品是業界首款來自全球十大半導體供應商之一的超低功耗ARM® Cortex™-M3 微控制器
  • STM32 的核心Cortex-M3 處理器
    嵌套中斷向量控制器(Nested Vector Interrupt Controller,簡稱NVIC)是Cortex-M3 處理器中一個比較關鍵的組件,它為基於Cortex-M3 的微控制器提供了標準的中斷架構和優秀的中斷響應能力,為超過240 個中斷源提供專門的中斷入口,而且可以賦予每個中斷源單獨的優先級。
  • Cortex-M3處理器出眾的控制和連通性
    講授過「電工電子技術」「單片機原理與控制技術」「微機原理及應用」「嵌入式系統開發」「可編程控制器」「傳感器應用技術」等課程。《Arm Cortex-M3嵌入式原理及應用:基於STM32F103微控制器/清華開發者書庫》以學生認知過程為導向組織教材內容,採取項目代領,全案例講解的方式,著重培養學生實踐應用能力。該書詳細闡述了基於Arm Cortex-M3內核的STM32F103微控制器嵌入式系統硬體設計方法和軟體開發技術。
  • Cortex-M3簡介
    同時,Cortex-M3中還集成了大部分存儲器控制器,這樣工程師可以直接在MCU外連接Flash,降低了設計難度和應用障礙。ARM Cortex-M3處理器結合了多種突破性技術,令晶片供應商提供超低費用的晶片,僅33000門的內核性能可達1.2DMIPS/MHz。該處理器還集成了許多緊耦合系統外設,令系統能滿足下一代產品的控制需求。
  • 基於ARM7控制器——LPC2214的中英文翻譯器
    為了改進某焊接設備只能輸出列印英文單據的情況,設計了由高性能ARM7控制器——LPC2214為核心的英文轉中文翻譯器,詳細論述了具體的硬體電路和優化的軟體算法的設計原理
  • 基於Cortex M3的音頻播放器的設計
    2.2 音頻編解碼器及與控制器的硬體連接音頻解碼晶片VS1003採用芬蘭VLSI公司出品的一款單晶片的MP3/WMA音頻解碼晶片,其內部集成一個高性能低功耗的DSP處理器核,來實現將SD卡裡的音頻數據流讀出並進行解析、轉化成模擬信號輸出。同時,微控制器通過SPI接口發出命令控制字實現對VS1003晶片的功能控制,如初始化、暫停、音量控制、播放時間的讀取等。
  • Cortex-M3軟核的st link調試
    我們用cortex M3軟核在xilinx的artix7a35T FPGA上實現一個簡單的
  • 了解Cortex-M3的中斷
    關於NVIC(中斷向量控制器)的介紹STM32參考手冊中是找不到的。需要看《Cortex-M3權威指南》,這本書是著重描述此M3內核相關的東西。NVIC也在其中,因為它是內核中很重要的一部分。
  • ARM Cortex-M3 內核介紹
    由於微控制器帶有大量的片內存儲器,因此不能簡單地通過觀察外部管腳來確定處理器核是如何運行的。ETM對深嵌入處理器內核提供了實時跟蹤能力。它向一個跟蹤埠輸出處理器執行的信息。
  • 基於Cortex―M3的自動氣象站設計
    漏電開關原理 土壤溼度傳感器相關文章:土壤溼度傳感器原理 溫溼度控制器相關文章:溫溼度控制器原理 漏電斷路器相關文章:漏電斷路器原理
  • 基於ARM Cortex-M3的MODBUS協議實現及其應用
    摘要 針對變頻器通信應用,介紹了MODBUS協議的特點及其組成;設計了RS485電路接口;並以ARMCortex-M3微控制器為核心
  • IIC-2008電話行銷與客服中心管理研討會
    在線報名     http://www.iicconferences.com
  • 點綴繁華:上海南京西路1788手創市集
    南京西路1788號手創市集。拍攝於2020年7月31。南京西路1788號手創市集。拍攝於2020年7月31。南京西路1788號手創市集。拍攝於2020年7月31。南京西路1788號手創市集。拍攝於2020年7月31。
  • 採用ARM(R) Cortex(TM)-M3 處理器的流明諾睿微電子新型 Stellaris...
    由 ARM 設計和優化的 uDMA 控制器是與 Cortex-M3 處理器配套使用,並能提供通常只有高端應用處理器才具備的功能,如先進的分散/收集傳輸模式。此外,憑藉卓越的運動控制性能,此次的產品發布還鞏固了 Stellaris 微控制器在增大 IP 的精密和保護電機控制應用領域的地位。
  • 智能家居基於Cortex-M3/M0的感知與控制子網設計
    LPC1768單片機內部包含有一個功能齊全的10/100Mbps乙太網RMII接口控制器,它可以通過RMII接口(通常簡化為媒體獨立接口MID外接一個物理接口收發器(PHY),再接上網絡變壓器和RJ-45接口,就組成了一個完整的乙太網通信接口,如圖2所示。