測試STC8H8K64U AD轉換

2021-10-05 10:01:55 字數 3841 閱讀 7540

簡 介: 本文給出了基於stc8h8k: *stc8h8k*,ad快速製版

2023年4月23日,拿到了剛剛出品的stc8h8k64u晶元,這款自己帶有8k記憶體,並且有usb介面的晶元,還有12bitadc,適應於更多的工業訊號採集和控制應用。下面對於其ad功能進行測試。

設計測試電路板的原理圖如下。僅僅引出了ad0~ad3的引腳。

工程檔案:

▲ 測試電路板的原理圖

▲ 測試電路板pcb

工程檔案目錄:

▲ 測試電路1. ad轉換精度

使用訊號源給出ad取樣的正弦波,頻率0.877hz。峰峰值為:0.5v~4.5v。

▲ 測試的正弦波波形

下圖顯示了對波形採集了1024點的資料波形。其中資料的波動範圍是0~4095。反映了ad的有效取值範圍是12bit

▲ 採集到的資料波形

下面是縮小訊號幅值之後,對於不同的兩個頻率訊號採集後的波形。其中可以看到混雜有小的尖峰干擾訊號。

▲ 採集到的資料波形

▲ 採集的資料波形

對訊號源的訊號使用乙個電容連線到底線,可以看到其中干擾訊號消失了。

▲ 採集的資料波形

測量adcconvert()時間。使用p0.3作為io輸出脈衝波形。在轉換前,將p0.3置高電平,在轉換後將p0.3置低電平。測量該訊號的脈寬,可以獲得adcconvert()時間。

下圖所展示的adc的時間波形,可以顯示進行乙個adc的時間大約是3.4us。

▲ 測量p0.3的脈寬波形

上述轉換時間是在adccfg=0x20的情況下,轉換速度。此時adc的時鐘頻率為sysclock /2.

adccfg=0x2f,按照資料手冊中的資料,此時adc的時鐘應該是sysclock//16。adc的轉換時間應該是前面時間的16倍。下面顯示了此時對應的p0.3的波形,adcconvert的時間為34us左右。僅僅是前面的時間的10倍左右。

▲ 測量p0.3的脈寬波形

3. ad採集資料緩衝區的長度

8h8k具有8kxram。測試該ram可以允許採集多長的資料;

(1)adc_buffer = 2048

採集到的資料波形為:

▲ 採集的資料波形

(2)adc_buffer= 3800

此時程式編譯完之後,所佔的空間為:

program size: data=53.1 xdata=7866 code=2993

▲ 採集的資料波形

設定ad_buffer=3900,此時編譯完程式的空間為:

program size: data=53.1 xdata=8066 code=2993

此時已然能夠採集到資料。

▲ 採集的資料波形

program size: data=53.1 xdata=8166 code=2993

此時仍然能夠採集資料。

但是當ad_buffer=4000時,此時程式空間為:

program size: data=53.1 xdata=8266 code=2993

然後再輸入採集命令,就無法執行程式了。

這是由於serialtxt的緩衝占用了xdata一部分空間造成的。

然後將serialtxt.中的所有資料都移動到idata,此時採集資料便可以正常進行了。

下面是採集到的4000個資料的波形。

▲ 採集的資料波形

將uart1中的緩衝區也移動到 idata,這樣便可以設定ad_buffer= 4096了。下面是採集到4096個adc的資料波形。

▲ 採集的資料波形

如果設定ad_buffer=4200,超過4096,採集到的資料波形為:

▲ 採集的資料波形

下面是設定ad_buffer= 4097,採集到的資料波形。可以看到最後乙個數字實際上已經是錯誤數字了。

▲ 採集的資料波形

通過以上實驗,可以得到如下的結論:

1.stc8h8k微控制器的ad轉換精度為12bit

2. 每個通道的轉換時間最小為3.4us

3. 內部具有可以使用的xdata空間最大為8192bytes(4096word)的空間。

STC8H8K64U學習(自用)

智慧型車競賽用到的是stc8h8k64u的晶元,編好的庫用的買晶元附帶的歷程,逐飛科技。記錄一下學習過程中遇到的問題及對應解決方案。我的理解是stc8h是個核心板,然後將它裝在基板上,這裡用的是lqfp64封裝,由此產生了封裝圖 管腳圖 可以從圖中看到每個管腳的作用。我買的是64pin的,意思是有6...

實物2操作 stc8a8k按鍵使用

3 程式 先定義引腳。然後進行程式設計。注意去抖動。程式設計的時候,可以給每個按鍵設定乙個變數作為旗幟,當安下去的時候,旗幟 1進行翻轉,後面可以查詢到哪乙個按鍵按下去。4 例程。4個按鍵,實現不同的led閃爍模式。include sbit key0 p3 4 sbit key1 p3 5 sbit...

STC8A4K系列微控制器EEPROM程式設計

這段時間在弄stc8a系列微控制器做乙個設計,遇到一些問題,第一次寫部落格,把遇到的問題寫下來分享一下。遇到的問題就是eeprom不能正確的讀取到儲存的資料。資料存入eeprom後,讀取出來的資料不正確。我看了微控制器文件但是並沒有提到這個點。下面就詳細的講一下這個點,希望有問題的小夥伴遇到問題可以...