簡體   English   中英

Beaglebone Black; SPI頻率錯誤

[英]Beaglebone Black; Wrong SPI Frequency

我剛開始對Beaglebone Black和Linux進行編程,所以我想弄清楚在建立SPI連接時發生了什么。 我正在運行Linux beaglebone 3.8.13-bone47。

我已經使用設備樹覆蓋圖建立了SPI連接,現在正在運行spidev_test.c來測試連接。 對於我正在制作的應用程序,我需要一個非常特定的頻率。 因此,當我運行spidev_test並測量移出比特的頻率時,我沒有得到預期的頻率。

在此處輸入圖片說明

我正在發送一個包含0xAA的SPI數據包,在spidev_test中,我已將“ spi_ioc_transfer.speed_hz ”修改為4000000(4MHz)。 但是我測量的數據傳輸頻率為2.98MHz。 我也看到了與其他速度相同的結果,偏差通常在25-33%左右。

測得的速度為何與分配的速度不匹配? 如何定義“ speed_hz”中分配的速度? 我期望頻率有多精確?

謝謝 :)

實際上,如果仔細看一下DSO,您會發現每個時鍾周期大約需要312.5 ns,這使時鍾頻率為3.2Mhz 可能是您正在監視的頻道

然后,期望速度與實際速度之間的差異,在微控制器中,我處理了包括SPI在內的所有外圍設備,這些時鍾都是從提供給MCU(在您的情況下為MPU)的主時鍾中獲得ots時鍾的,主頻率除以預分頻器給出了周周出現的頻率,當外圍設備使用該頻率並使用其預分頻器來控制波特率時,

因此,在您的情況下,假設主頻率不合適,則可能導致上述行為。

因此,您有兩個選擇1.糾正MPU核心頻率2.做反復試驗以找到spi測試程序必須提供的值才能獲得所需的頻率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM