[英]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.