色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

i.MX RT1010的I2C Slave時(shí)鐘延展功能小記

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-09-27 16:22 ? 次閱讀

最近客戶在使用i.MX RT1010的I2C作為從機(jī)設(shè)備與主機(jī)通訊,使用了時(shí)鐘延展的功能(clock stretching)。在開發(fā)過程中遇到了一些小煩惱和小細(xì)節(jié),在此呢,也寫下一篇文檔予以總結(jié)。

什么是時(shí)鐘延展

首先,簡單介紹一下什么是時(shí)鐘延展。時(shí)鐘延展是指從機(jī)通過將SCL拉低以暫停數(shù)據(jù)傳輸?shù)囊粋€(gè)過程,在暫停過程中,從機(jī)可以有更多的時(shí)間處理接收到的數(shù)據(jù),或者準(zhǔn)備即將發(fā)送的數(shù)據(jù)。在相關(guān)的處理和準(zhǔn)備完成之后,將交出SCL的控制權(quán),主機(jī)繼續(xù)控制SCL的節(jié)奏進(jìn)行數(shù)據(jù)的收發(fā)。換句話說,時(shí)鐘延展是從機(jī)跟不上主機(jī)的速度,讓老司機(jī)等等它,啊不,是讓主機(jī)等等它的操作。

時(shí)鐘延展通常分為兩種,一種是字節(jié)級(jí)(byte)的時(shí)鐘延展,一種是比特級(jí)(bit)的時(shí)鐘延展。字節(jié)級(jí)的時(shí)鐘延展是按照字節(jié)為單位開展,每一個(gè)字節(jié)收發(fā)結(jié)束之后啟動(dòng)。比特級(jí)則是每個(gè)數(shù)據(jù)bit都進(jìn)行延展,強(qiáng)行讓master慢下來。

在查閱相關(guān)資料的過程中發(fā)現(xiàn),并不是所有的I2C從機(jī)設(shè)備都支持時(shí)鐘延展,例如I2C的傳感器,部分存儲(chǔ)設(shè)備;也并不是所有的主機(jī)設(shè)備也支持時(shí)鐘延展,例如使用IO口模擬實(shí)現(xiàn)的I2C或者是FPGA上實(shí)現(xiàn)的I2C。因此在使用之前,需要檢查器件自身是否支持時(shí)鐘延展。

四種時(shí)鐘延展功能

在我們i.MX RT1010上總共支持4種字節(jié)級(jí)的時(shí)鐘延展:

wKgaomUD8x2AckpuAAIHSQxPjXE815.png

下面我們將對(duì)這四種時(shí)鐘延展的功能進(jìn)行簡要介紹,以下介紹均為從機(jī)視角。

延展功能1:收完地址等一等

在從機(jī)接收完主機(jī)發(fā)送的地址信息后,且AVF 置位,則此時(shí)從機(jī)獲得SCL的控制權(quán),開始持續(xù)拉低SCL開啟時(shí)鐘延展。那么什么時(shí)候結(jié)束呢,從硬件狀態(tài)機(jī)的角度看,當(dāng)AVF bit被清除,時(shí)鐘延展結(jié)束,主機(jī)獲得SCL的控制權(quán)。

舉個(gè)例子,用我們SDK工程在接收到地址信息后強(qiáng)行延時(shí)500us再去清除AVF bit, 看看波形是怎樣的:

wKgZomUD8x-AQPa7AAEBy7k4A2g628.png

從圖中可以看到,兩次時(shí)鐘間隔約491us,基本上與500us的預(yù)期相匹配。并不是完美的500us的原因是,延時(shí)函數(shù)沒有使用定時(shí)器精確延時(shí)。

延展功能2:發(fā)送之前等一等

在從機(jī)接收到主機(jī)的地址信息和讀指令后,TDF將會(huì)置位,則此時(shí)從機(jī)獲得SCL的控制權(quán)。同樣是在清除TDF bit之后,主機(jī)再次獲得SCL的控制權(quán)。在這個(gè)過程中,從機(jī)可以根據(jù)主機(jī)發(fā)送的信息,把要發(fā)送的數(shù)據(jù)準(zhǔn)備好,再釋放SCL的控制權(quán)。同樣舉個(gè)例子,再清除TDF bit 之前等一等,這次等的長一點(diǎn)800us。

wKgaomUD8yGAA7uBAADgwDdllBY656.png

延展功能3:接收之前等一等

在從機(jī)接收到數(shù)據(jù)之后,RDF會(huì)置位,此時(shí)從機(jī)會(huì)獲得SCL的控制權(quán)。同樣是在清除TDF bit之后,主機(jī)再次獲得SCL的控制權(quán)。拉個(gè)波形看看,在清標(biāo)志位前拉個(gè)1000us的延時(shí),波形如下圖所示。

wKgZomUD8yKAIhxsAACR5KBp8ds478.png

延展功能4:手動(dòng)回ACK

這里是指,當(dāng)主機(jī)把數(shù)據(jù)(地址信息或者數(shù)據(jù)信息)發(fā)送給從機(jī)后,在傳送完第八個(gè)bit(或者說是第八個(gè)時(shí)鐘)之后,從機(jī)即獲得了SCL的控制權(quán)限,在此時(shí)需要手動(dòng)向STAR寄存器中最后一位寫0或者1,以向主機(jī)反饋ACK 或者NACK。在寫0之前,我們?cè)黾右粋€(gè)500us的延時(shí),地址信息的波形見下圖,可以看到第八個(gè)和第九個(gè)CLK時(shí)鐘的間隔被拉長。

wKgaomUD8ySAfplsAADdgFrtRnw389.png

從機(jī)接收數(shù)據(jù)的信息見下圖,同樣可以看到,第八個(gè)和第九個(gè)的時(shí)鐘被拉長了。

wKgaomUD8yaAPvw0AADg34dgIyw602.png

時(shí)鐘延展的時(shí)序要求

在使用時(shí)鐘延展的功能后,同樣不能忽略的一個(gè)要點(diǎn)是要滿足I2C的AC timing,即數(shù)據(jù)的建立時(shí)間和保持時(shí)間。對(duì)于不同的工作速度,I2C對(duì)于這兩個(gè)參數(shù)的時(shí)間要求也是不同的,下圖為I2C的規(guī)范上的截圖。

wKgaomUD8yiATM5AAAjuj8VjhYQ703.png

對(duì)于i.MX RT1010來說,我們?cè)陂_啟時(shí)鐘延展功能后需要對(duì)下面的兩個(gè)參數(shù)進(jìn)行設(shè)置,以滿足I2C的timing要求。

CLKHOLD: I2C的數(shù)據(jù)的建立時(shí)間,需要根據(jù)不同的通訊速度進(jìn)行設(shè)置。

DATAVD: I2C的數(shù)據(jù)保持時(shí)間,通常來看保持為0即可。

wKgZomUD8yuAK2knAAXOX9cyj5g868.png

如果不能正確設(shè)置CLKHOLD的時(shí)間會(huì)怎樣呢?

造成時(shí)序混亂,當(dāng)SCL的驅(qū)動(dòng)能力較強(qiáng),且SDA的負(fù)載較重的時(shí)候,甚至?xí)餝CL上升的比SDA速度快,那么想一下I2C的停止條件,當(dāng)SCL處于高電平時(shí),SDA拉高。那么就會(huì)讓總線停止傳輸,除此以外,可能還會(huì)有其他的未知問題發(fā)生。

其次,關(guān)于CLKHOLD時(shí)間的計(jì)算,目前的驅(qū)動(dòng)程序是有些小問題的。因此建議徒手?jǐn)]寄存器,自己把想要的數(shù)值填寫到CLKHOLD寄存器內(nèi)。對(duì)于具體的時(shí)間,計(jì)算公式如下:

t =(CLKHOLD + 3) * Tclk

這里的Tclk是指I2C的functional clock的周期。因此,真正的建立時(shí)間,是CLKHOLD的數(shù)值和I2C 的輸入時(shí)鐘頻率共同作用的結(jié)果。

哦對(duì)了,如何使能時(shí)鐘延展功能?

如果你喜歡寄存器操作,那么可以在SCFGR1寄存器中的bit[3:0]直接開啟對(duì)應(yīng)的功能:

wKgaomUD8yyAAVg_AAJe97hCAfI635.png

如果你習(xí)慣SDK操作,那么在這個(gè)結(jié)構(gòu)體里把對(duì)應(yīng)的功能寫true吧:

wKgZomUD8y6AG0UwAAS9mA8-w7U046.png

來源:恩智浦MCU加油站

審核編輯:湯梓紅

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

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    603009
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

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

    關(guān)注

    28

    文章

    1484

    瀏覽量

    123620
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    17057
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA的I2C SLAVE模式總線的設(shè)計(jì)方案

    。經(jīng)過實(shí)際應(yīng)用,證實(shí)了本方案操作簡便,實(shí)用性強(qiáng)。##I2C SLAVE 控制器的接口部分主要包括,信號(hào)異步時(shí)鐘域的轉(zhuǎn)換。輸入濾波器,用來抑制毛刺。及SDA 線的雙向轉(zhuǎn)換。
    發(fā)表于 02-26 11:39 ?1.4w次閱讀

    i.MX RT1xxx 系列的時(shí)鐘系統(tǒng)以及相關(guān)功能引腳

    目前 i.MXRT1xxx 系列主要分為 i.MX RT10xx 和 i.MXRT11xx 兩大分支。這兩個(gè)分支的時(shí)鐘系統(tǒng)設(shè)計(jì)是有一些差異的
    發(fā)表于 07-08 17:01 ?783次閱讀

    i.MX RT1020到i.MX RT1010的遷移手冊(cè)

    i.MX RT1020到i.MX RT1010的遷移指南
    發(fā)表于 12-12 06:25

    時(shí)鐘延展導(dǎo)致 I2C 通信不可靠

    STM32時(shí)鐘延展導(dǎo)致 I2C 通信不可靠
    發(fā)表于 12-04 15:15 ?0次下載

    01:i.MX RT的市場應(yīng)用和參考解決方案

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。i.MX RT定位為一款MCU產(chǎn)品,它可以重復(fù)利用傳統(tǒng)的Arm MCU生態(tài)系統(tǒng)。除此之外,本次講座還將簡要介紹
    的頭像 發(fā)表于 01-21 07:13 ?3351次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市場應(yīng)用和參考解決方案

    恩智浦i.MX RT1170開創(chuàng)GHz MCU時(shí)代

    的運(yùn)算能力和多媒體功能與易用性和實(shí)時(shí)處理相結(jié)合。i.MX RT1170雙核MCU集成主頻高達(dá)1 GHz的Arm Cortex -M7內(nèi)核和400 MHz的Cortex-M4內(nèi)核,同時(shí)提供先進(jìn)的安全性。憑借
    的頭像 發(fā)表于 03-22 11:14 ?3483次閱讀

    恩智浦i.MX RT1170在將該系列帶上了更高的層面

    的運(yùn)算能力和多媒體功能與易用性和實(shí)時(shí)處理相結(jié)合。i.MX RT1170雙核MCU集成主頻高達(dá)1 GHz的Arm Cortex -M7內(nèi)核和400 MHz的Cortex-M4內(nèi)核,同時(shí)提供先進(jìn)的安全性。憑借
    的頭像 發(fā)表于 05-18 11:15 ?3772次閱讀

    i.MX RT開發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    系列文章目錄i.MX RT開發(fā)筆記-01 | 初識(shí) i.MX RT1062 跨界MCUi.MX RT
    發(fā)表于 12-01 13:51 ?2次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>開發(fā)筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    STM32F103硬件I2C Slave

    MCU:STM32F103IDE:STM32CubeIDEHAL庫硬件I2C當(dāng)作Slave,模擬EEPROM行為測試工具:樹莓派為I2C主機(jī),使用I2C-tools進(jìn)行測試配置
    發(fā)表于 12-20 19:38 ?52次下載
    STM32F103硬件<b class='flag-5'>I2C</b> <b class='flag-5'>Slave</b>

    Gowin I2C Master/Slave用戶指南

    Gowin I2C Master 和 Slave 用戶指南主要包括功能簡介、信號(hào)定義、工 作原理、實(shí)例化等,旨在幫助用戶快速了解 Gowin I2C Master IP 和
    發(fā)表于 09-15 10:07 ?1次下載
    Gowin <b class='flag-5'>I2C</b> Master/<b class='flag-5'>Slave</b>用戶指南

    適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架介紹

    在眾多的恩智浦i.MX RT跨界處理器當(dāng)中,您可能會(huì)發(fā)現(xiàn)有些系列除了Arm內(nèi)核之外還結(jié)合了高性能的DSP,利用集成DSP的技術(shù)優(yōu)勢(shì),可提供高性能音頻數(shù)字信號(hào)處理能力,并包含特定算法操作,可實(shí)現(xiàn)完全
    的頭像 發(fā)表于 11-10 09:39 ?2699次閱讀

    i.MX RT的FlexRAM配置問題

    i.MX RT的FlexRAM配置問題
    的頭像 發(fā)表于 10-24 15:46 ?805次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置問題

    i.MX RT中FlexSPI外設(shè)不常用的讀選通采樣時(shí)鐘

    i.MX RT中FlexSPI外設(shè)不常用的讀選通采樣時(shí)鐘
    的頭像 發(fā)表于 10-30 17:44 ?548次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>中FlexSPI外設(shè)不常用的讀選通采樣<b class='flag-5'>時(shí)鐘</b>源

    恩智浦i.MX RT1060/1010上串行NOR Flash冗余程序啟動(dòng)設(shè)計(jì)

    恩智浦i.MX RT1060/1010上串行NOR Flash冗余程序啟動(dòng)設(shè)計(jì)
    的頭像 發(fā)表于 09-26 16:53 ?737次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1060/<b class='flag-5'>1010</b>上串行NOR Flash冗余程序啟動(dòng)設(shè)計(jì)
    主站蜘蛛池模板: 亚洲天堂久久久| videossexotv极度另类| 国产骚妇BB网| 日日噜噜噜噜夜夜爽亚洲精品| 在线播放成人无码日| 国产真实强被迫伦姧女在线观看| 色婷婷我要去我去也| 芭乐视频免费资源在线观看| 哪灬你的鸣巴好大| 91精品乱码一区二区三区| 久久99r66热这里只有精品| 亚洲精品成A人在线观看| 国产私拍福利精品视频| 性色AV一区二区三区V视界影院 | jjzz动漫| 人妻中文字幕乱人伦在线 | 国产精华av午夜在线观看| 日本护士性生活| 多肉np一女多男高h爽文现代| 人妖和美女玩| 高清无码色大片中文| 丝袜美女自摸| 国产综合欧美区在线| 一二三区乱码不卡手机版| 久久免费视频| 99热精品一区| 天天射天天干天天插| 换脸国产AV一区二区三区| 在线视频 国产 日韩 欧美| 免费视频xxx| 国产成人国产在线观看入口| 亚洲XXX午休国产熟女屁| 久草热8精品视频在线观看| 91羞羞视频| 少妇高潮久久久久7777| 国内精品视频在线播放一区 | 亚洲欭美日韩颜射在线二| 男人和女人一级黄色大片| 初中XXXXXL| 夜色爽爽爽久久精品日韩| 欧美xxbb|