所以我有一個任務來編寫一些僞代碼來編程一個頻率合成器。有三個主要端口可供我使用,'啓用','數據'和'時鐘'。用外部時鐘嵌入式編程合成器
設備初始關閉,當啓用(低電平有效)被觸發時,時鐘將循環(經過一些最小設置時間後)。除了延遲,我將有一個函數SendCommand(uint32_t addr,uint16_t data)。
我遇到的問題是,在給我的規範中,數據在下降時鐘邊沿是「讀取」。這意味着數據按參數中定義的地址逐個讀入到寄存器中,並一直保持讀取狀態,直到整個16位字被寫入寄存器。時鐘週期約爲10MHz。我的問題是:
- 如何模擬時鐘以10MHz(100 ns /週期)循環?
- 如何在所述時鐘的下降沿執行「數據讀取」。
現在忽略程序的寫作方面,它仍然只是僞代碼。
你應該從寫作開始,而不是閱讀。但它聽起來像你有類似於「串行外設接口」或「SPI」的東西。要以10MHz的時鐘頻率完成這項工作,您可能需要一個硬件SPI引擎,如許多微控制器中所發現的 - 如果您的系統沒有,可以使用一個遠程微控制器作爲代表。但是,如果你不需要高性能,大多數(儘管不是全部)這樣的設備將以更低的時鐘速率接收數據。如果你有一個真實的(非USB)並行接口,軟件中的單個信號是一種常見的技術。 – 2014-10-07 21:10:18