女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

提高SPI時鐘時通信異常的案例分享

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-07-13 11:41 ? 次閱讀

有人采用STM32H743ZI芯片的SPI外設跟ADC器件通信,發現一旦SPI的SCK時鐘超過25MHz時,比如50Mhz,就會發生讀取數據失敗,并提示Busy忙信息或ERR錯誤信息。反正只要串行時鐘不超過25Mhz,收發都很正常。

但是STM32H743芯片手冊上明白地說了SPI時鐘最高可達150MHz,這會是什么原因呢?

根據他所提到的異常現象初步判斷,不論他的硬件方面還是軟件配置方面都應該沒有很大的問題,不然根本沒法通信。像這種情況有可能是下面幾種原因之一或組合原因【當然不僅限于這些】:

第一種情況就是通信速率明顯提高時,由于通信速率加快,而接收處理的相關代碼本身所用時間相對固定,這樣可能導致不能及時讀走數據而發生溢出,尤其是基于查詢方式或中斷方式接收處理時。這時我們可以考慮對接收代碼做進一步的精簡優化,壓縮接收處理時間,或者改用DMA方式進行數據的收發。

第二種情況就是當通信速率明顯提高時,跟外設復用的GPIO輸出速率檔位的配置沒有跟上來。以本案例來說,當我們將SPI的時鐘上到50MHz甚至更高時,若相應的GPIO的輸出速率配置還維持在相對低速水平,與實際輸出需求不相匹配時往往就會出現異常。

關于這個配置,如果使用STM32CubeMx配置的話就非常簡單,通過菜單選擇即可完成。如下圖所示:

第三種情況就是當通信速率明顯提高時,即使相應的GPIO輸出能力配置也匹配了,但有些情況下還是有可能出通信異常的問題。我們知道,當GPIO輸出速率越來越高的時候,GPIO模塊帶來的噪聲也越大,作為通信口時其信號質量也會隨著通信速率的提升而變差,當然,此時芯片所需的功耗也隨之增大。對于很多STM32系列芯片,當GPIO輸出速率達到一定程度時,建議開啟片內GPIO補償單元。【下面截圖是兩個STM32系列關于GPIO補償單元的介紹文字】

該GPIO補償單元的作用就是通過控制IO口的輸出斜率,降低GPIO的噪聲對整個電源的影響并盡力改善信號質量,所以當我們基于STM32芯片實現較高速率的通信時,比方50Mhz甚至上百兆的SPI或USB通信時,如果芯片有GPIO補償單元的話,建議將其開啟。順便提醒下,使用GPIO補償單元的話,往往對電源電壓有相應要求,具體依手冊而定。

下面是分別基于STM32F4和STM32F7系列的HAL庫相關開啟GPIO補償單元的函數。

至于本案例異常的真正原因是什么呢?后來經確認屬于上面提到的第二種情況,GPIO輸出速率擋位選擇與實際輸出需求不匹配,稍加調整配置就好。

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

    關注

    2288

    文章

    10999

    瀏覽量

    362008
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1767

    瀏覽量

    94522
  • GPIO
    +關注

    關注

    16

    文章

    1261

    瀏覽量

    53486

原文標題:提高SPI時鐘時通信異常的案例分享

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    串行通信接口SPI與QSPI的區別

    在嵌入式系統的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產生重大影響。讓我們比較兩個流行的串行通信接口:SPI(串行外設接口)和QSPI(四路SPI)。
    的頭像 發表于 04-09 15:24 ?762次閱讀
    串行<b class='flag-5'>通信</b>接口<b class='flag-5'>SPI</b>與QSPI的區別

    【CW32模塊使用】0.96寸SPI單色屏

    硬件SPI與軟件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的時鐘邊緣采樣,時鐘發生,
    的頭像 發表于 03-29 17:29 ?1594次閱讀
    【CW32模塊使用】0.96寸<b class='flag-5'>SPI</b>單色屏

    使用SPI進行通信,STM32F4做從機,通信時數據異常怎么解決?

    使用SPI進行通信,STM32F4做從機,通信時數據異常SPI2中SR寄存器會出現0xc0,0xc1,0x80的
    發表于 03-14 12:14

    DDP4422的SPI通信異常的原因?

    您好!我們的項目使用到了DDP4422的SPI接口SSP_PORT1,DDP4422作為主與C787芯片進行通信。 DDP向C787寫數據是正常的;但讀數據時,讀到的數據不正確。我這邊嘗試
    發表于 02-27 07:54

    SPI通信總線概述和Verilog實現

    SPI = Serial Peripheral Interface,是串行外圍設備接口,是一種高速,全雙工,同步的通信總線。
    的頭像 發表于 02-07 14:28 ?1238次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b>總線概述和Verilog實現

    iic協議與spi協議的區別

    I2C協議與SPI協議的區別 1. 通信方式 I2C :是一種多主機、多從機的通信協議,使用兩條線(數據線SDA和時鐘線SCL)進行通信
    的頭像 發表于 02-05 11:28 ?2694次閱讀

    通信控制器驅動異常原因,怎么解決

    在現代計算機系統中,通信控制器驅動扮演著至關重要的角色,它們負責在計算機操作系統與各種通信設備之間建立和維護通信鏈路。然而,有時通信控制器驅動可能會出現
    的頭像 發表于 01-29 14:33 ?927次閱讀

    KeyStone架構串行外設接口(SPI)手冊

    SPI(Serial Peripheral Interface)是一種高速、全雙工、同步的串行通信協議,它允許微控制器與一個或多個外圍設備進行通信SPI
    發表于 12-16 10:33 ?0次下載

    ADS8688IDBT SPI讀取數據波形異常,為什么?

    我司AGV項目中使用了TI的ADS8688IDBT,目前調試中遇到SPI讀取數據波形異常情況(數據在時鐘下降沿跳變), 讀取數據值不對的情況, 麻煩確認下問題。
    發表于 12-06 06:43

    通信協議之SPI總線硬件篇

    SPI:Serial Peripheral Interface,串行外圍設備接口。 是由摩托羅拉在20世紀80年代中期開發的同步串行總線接口規范(帶有時鐘信號,通過時鐘極性和時鐘相位
    的頭像 發表于 11-25 17:56 ?2032次閱讀
    <b class='flag-5'>通信</b>協議之<b class='flag-5'>SPI</b>總線硬件篇

    spi master接口的fpga實現

    前言 當你器件的引腳賊少的時候,需要主機和從機通信spi就派上了用場,它可以一對多,但只是片選到的從機能和主機通信,其他的掛機。 spi:serial peripheral inte
    的頭像 發表于 11-16 10:35 ?1003次閱讀
    <b class='flag-5'>spi</b> master接口的fpga實現

    DS1302芯片與FPGA之間SPI通信原理

    本文通過以DS1302芯片為基礎,介紹該芯片與FPGA之間SPI通信原理,詳細描述硬件設計原理及FPGA SPI接口驅動設計。
    的頭像 發表于 10-24 14:16 ?1247次閱讀
    DS1302芯片與FPGA之間<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>原理

    單片機SPI通信實現

    在深入探討單片機(如基于STM32、AVR、PIC等)如何通過SPI(Serial Peripheral Interface)進行通信之前,我們先概述SPI通信的基本原理,隨后以STM
    的頭像 發表于 09-09 17:00 ?1349次閱讀

    探索SPI單線傳輸模式中時鐘線與數據傳輸的簡化

    探索SPI單線傳輸模式:時鐘線與數據傳輸的簡化之道 在當今的嵌入式系統和微控制器通信中,串行外設接口(SPI)因其高速、全雙工和同步的特點而廣受歡迎。然而,隨著設備尺寸和復雜性的不斷減
    的頭像 發表于 05-28 18:26 ?1493次閱讀

    CYW20829調試SPI通信時,遇到的兩個問題求解

    使用函數cyhal_spi_slave_write向master發送數據時,沒有等待master拉低片選取并生成時鐘信號,導致接收數據異常。 嘗試:使用Cy_GPIO_讀取CS引腳,直到該引腳被拉低
    發表于 05-28 07:14