陀螺儀 L3G4200D Pmod 控制器 (VHDL)

邏輯主頁

程式碼下載

陀螺儀 L3G4200D Pmod 控制器(頂層檔案):

版本 1.1:pmod_gyro_l3g4200d.vhd (12.2 KB)
修正了重置後可能出現的間歇性問題

版本 1.0:pmod_gyro_l3g4200d_v1_0.vhd (12.0 KB)
首次公開發布

SPI 主控(也必須包含在項目中):

spi_master.vhd (8.9 KB)

特點

  • Digilent Pmod 陀螺儀介面的 VHDL 原始碼(適用於 STMicroelectronics 的 L3G4200D 陀螺儀的 Pmod)
  • 透過 3 條平行匯流排持續輸出最新的 3 軸陀螺儀數據
  • 處理 SPI 通訊以配置和檢索陀螺儀 Pmod 的數據
  • 可配置陀螺儀資料範圍
  • 可配置陀螺儀頻寬
  • 可設定系統時脈頻率

介紹

本文詳細介紹了一個 VHDL 組件,用於處理與 Digilent 陀螺儀 L3G4200D Pmod 的接口,如圖 1 所示。圖 2 展示了此陀螺儀 Pmod 控制器整合到系統中的典型範例。如圖所示,陀螺儀 Pmod 控制器連接到 Pmod 連接埠並執行傳輸以配置陀螺儀並收集資料。資料會持續更新並顯示在 3 條簡單的平行匯流排上(對應 3 個軸),這些匯流排可以連接到使用者邏輯或 FPGA 上的輸出埠。數據以 2 的補碼顯示。

圖 1. Digilent 陀螺儀 L3G4200D Pmod

圖 2. 範例實現

工作原理

Gryo Pmod 控制器主要由一個狀態機和一個 SPI 主控組件組成。

狀態機

此設計使用圖 3 所示的狀態機來實現其操作。啟動後,組件立即進入 start 狀態。它會在此狀態保持 100ms,以確保 Pmod 有足夠的時間完成上電。然後,它會進入 configure 狀態,在此狀態下寫入陀螺儀的控制暫存器,以設定資料速率和頻寬,並使陀螺儀退出預設的掉電模式,進入正常模式。pause 狀態會在 SPI 交易之間(即陀螺儀讀數之間)插入 1ms 的間隔。在 read_data 狀態,它會從陀螺儀收集所有 3 個軸的最新角速率數據,然後繼續進入 output_result 狀態。output_result 狀態會將資料寫入 angular_rate_xangular_rate_yangular_rate_z 輸出匯流排,然後傳回 pause 狀態。隨時重置組件都會使其返回 start 狀態。

圖 3. 狀態圖

SPI 主控

configureread_data 狀態下,狀態機控制 SPI 主控元件與 Pmod 上的陀螺儀通訊。 SPI 主控的文件可在此處取得。

本設計在 CPOL = 1 和 CPHA = 1 模式下實作 SPI 主控。它根據系統時脈頻率(由 clk_freq 通用參數指定,見下文)設定 clk_div 參數,以便以 5MHz 或接近 5MHz 的頻率與陀螺儀通訊。

本設計也利用 SPI 主控的連續模式功能執行不同長度的交易。configure 狀態下的交易長度為 16bit,而 read_data 狀態下的交易長度為 56bit。

配置 Gyro Pmod 控制器

透過設定實體中的通用參數來配置 Gyro Pmod 控制器。

系統時脈頻率

通用參數 clk_freq 必須設定為 Gyro Pmod 控制器在其 clk 連接埠上提供的系統時脈頻率。

數據速率和頻寬

通用參數 data_rate 定義了 L3G4200D 陀螺儀進行測量的頻率。該參數本身是一個與所需資料速率對應的編碼。同樣,通用參數 bandwidth 也是一個與所需頻寬對應的程式碼。頻寬取決於資料速率。下表 1 列出了可用的選項。

表 1. 資料速率和頻寬選項

連接埠描述

表 2 描述了陀螺儀 Pmod 控制器的連接埠。

表 2. 連接埠描述

連接

此 Pmod 使用 SPI 進行通訊時,配備 12 針直角連接器 J1。表 3 提供了此連接器的引腳排列。陀螺儀 Pmod 控制器的連接埠需要指派給連接到此連接器的 FPGA 引腳,具體如下表所示。

表 3. 陀螺儀 Pmod J1 引腳排列及與陀螺儀 Pmod 控制器的連接

重置

reset_n 輸入連接埠必須為邏輯高電平,陀螺儀 Pmod 控制器元件才能運作。此連接埠上的邏輯低電平會非同步重置元件。在重置期間,元件會中止目前與 Pmod 的傳輸,並清除 angular_rate_xangular_rate_yangular_rate_z 資料輸出。重置解除後,陀螺儀 Pmod 控制器將重新啟動工作。它會重新配置陀螺儀,然後恢復角速率資料的擷取和輸出。

結論

此陀螺儀 Pmod 控制器是一款可編程邏輯元件,可與 Digilent 的 Pmod 陀螺儀(Gyro L3G4200D Pmod)介接。它負責處理與 Pmod 的所有通訊,以配置 Pmod 陀螺儀的數據速率和頻寬、激活測量,並在 3 條平行輸出匯流排(每個軸一條)上提供持續更新的角速率數據流。

相關主題

SPI Master (VHDL)