發新話題
打印

用C8051F41X做ADC和DAC

用C8051F41X做ADC和DAC

我的想法是:
   將一個電壓輸入至port(有加一個可變電阻,以調整電壓輸入)
   經過ADC轉換後得到的12bit直接填入DAC的IDA0L和IDA0H中
   這樣他就會自動轉成analog輸出了嗎??

   根據datasheet,IDA0和IDA1的輸出為P0.0和P0.1
   所以不能利用別的port輸出了嗎??

TOP

沒錯!!!  這個裝置在這系列的MCU是固定IO pin (P0.0 & P0.1),不能改的。

TOP

現在有一個問題
我使用VR去控制輸入電壓
因為硬體電路的固定(我是拿別人的電路另外外接線路出來)
所以我的VR(1k)能控制輸入MCU電壓從2.77V~3.15V(因為後面還串接了一個5k電阻,然後通過一個amplifier)
這個amplifier是max4372
然後使用MCU中的ADC轉換電壓,因為是內部轉換,所以我看不到輸出的bit(除非再外接硬體來檢測)
然後我將得到的digital值,修改正確之後丟到DAC去轉換
然後輸出的值用電表去量

希望的結果是:我從VR調整輸入電壓(2.77V~3.15V),輸出電壓的值會跟著有改變

想問的是:這樣的做法可以work嗎

現在遇到的狀況是輸入電壓改變,輸出電壓幾乎不變
如果直接從IDA0L,IDA0H給值,用電表量出來的值會有變化,而且是非線性的

電路圖跟code晚點再傳
因為想先確定可不可行

TOP

剛剛試了一下
應該是跟REF0CN這邊有關
根據我輸入電壓的範圍
internal voltage reference使用1.5V跟2.2V應該是都沒有用
但是如果超過Vref,不是應該都會得到最大的電壓嗎?
可是我量到的也不是1.5或2.2,而是0.92
當我改成使用VDD當voltage reference時,是可以改變輸出值的
但是能改變的值也不大,範圍是0.88~0.92
那我可以得到結論是:0.92是經過轉換後的最大電壓??
因為在裡面的AD和DA轉換經過的gain我無從得知

TOP

對齁= =
對照一下輸入的範圍:2.77V~3.15V
0.88~0.92的範圍跟它插不多
我耍笨了

TOP

並沒有插不多= =
這才真的耍笨了= =
差了十倍

TOP

引用:
原帖由 tida0129 於 2009-9-30 17:08 發表
現在有一個問題
我使用VR去控制輸入電壓
因為硬體電路的固定(我是拿別人的電路另外外接線路出來)
所以我的VR(1k)能控制輸入MCU電壓從2.77V~3.15V(因為後面還串接了一個5k電阻,然後通過一個amplifier)
這個amplif .......希望的結果是:我從VR調整輸入電壓(2.77V~3.15V),輸出電壓的值會跟著有改變....
這裡有個問題:
F410 IDAC 最大的輸出能力是 VDD-1.2V,若你設定 IDAC Full Scale Output Current = 2mA,假設 IDAC output 外部串接 2K電阻,當 IDAC 為 Full Scale Output,理想的輸出狀態是 2mA x 2K = 4V,但實際上你只會量到 VDD-1.2V(若VDD=3.3,則IDAC Vout = 2.1V)。
所以依照你的要求功能,建議你不要直接量 IDAC 輸出,要將 IDAC 輸出去推外部驅動電路(要自己設計),藉由該驅動電路來輸出 2.77V~3.15V,這樣才能符合你的要求。

TOP

發新話題