2013-05-16 34 views
-1

我對微控制器沒有太多的知識。在我的項目中,我需要改變正弦波。在這裏,我想知道,如果我在端口A引腳2上輸入純正弦波。那麼,我會在端口B引腳2上獲得純正弦波的移位版本。以下說明會起作用嗎?使用微控制器再生正弦波

Inialise port A as input and port B as output 
call delay 
portb=porta 

我們可以在微控制器中使用DAC產生正弦波。但是,因爲它不完美,所以不符合要求的條件。

+0

該引腳規範是完全無用的信息,不知道該設備是什麼!在不知道「所需條件」是什麼的情況下,很難就此提出建議。通常需要應用截止頻率<=採樣率/ 2和>信號頻率的低通濾波器來去除量化噪聲。 – Clifford

+0

這可能是一個合理的問題,解決批評並說清楚,也許它會避免進一步倒票或關閉。 – Clifford

回答

2

首先需要輸入到ADC,輸出需要來自DAC(或具有適當輸出濾波器的PWM)。從您的問題中不清楚您選擇的針腳是否合適。

如果您正在生成DAC的正弦信號,爲什麼要將其應用於輸入以便再次輸出?如果您需要兩個正弦波相移,爲什麼不簡單地從兩個DAC或PWM生成計算的輸出?無論哪種方式,你需要兩個模擬輸出,但這樣你就不需要任何輸入。 PWM需要比DAC更大的模擬濾波器,並且可能支持更低的帶寬,但大多數微控制器具有比DAC更多的PWM。

您不能簡單地調用延遲比複製端口a延遲到端口b,這只是延遲後的a到b的副本。您需要從A採樣然後放入FIFO緩衝區,然後將FIFO的輸出應用於B.FIFO的長度決定延遲。

+0

移動現有的正弦波與生成具有相位關係的兩個截然不同。 –

+0

這是,但問題是建議從微控制器自己的DAC生成信號,並將其反饋到相同的微控制器(我假設 - 它不明確),然後將其移位並輸出移位的信號。如果原始信號源和移位信號是相同的,那麼信號源會直接產生兩個信號。使用DAC至ADC反饋會引入採樣/轉換延遲,引入環境噪聲和非線性失真並鎖定ADC。我想在這裏弄清楚一個非常糟糕的問題。 – Clifford

+0

不,問題中沒有任何內容表明信號來自微控制器。 –

1

微控制器不是模擬設備,你不能在任何舊的引腳上輸入模擬信號,並將該信號傳輸到另一個引腳。大多數引腳是數字GPIO,它們除了代表0或1的兩種狀態外,無論使用何種電壓,都將被解釋爲高電平或低電平。相反,您將不得不使用ADC輸入,以足夠高的頻率進行採樣,通過FIFO延遲採樣,然後將延遲採樣應用到DAC。從量化的DAC輸出重建「純」正弦波需要模擬濾波電路。如果濾波器截止頻率低於採樣速率的一半,那麼您將恢復原始信號的合理良好表示(可以是分量低於採樣頻率一半的任何信號 - 不必是正弦波)。如果確實使用更復雜的信號,則需要模擬濾波輸入,以去除高於採樣速率一半的分量以避免混疊。

使用Cypress PSoC可以在一塊芯片上完成所有這些操作,因爲這些芯片是具有可重新配置模擬元件的混合芯片以及微控制器。

+0

謝謝!它清除了我的疑惑。 – Anonymous