我們是做傳感器相關產品的, 芯片缺貨以來,我們試用了很多國產MCU,也基本全部切換到國產MCU的技術平臺上來. 但是目前MCU行業同質化非常嚴重, 為了受眾多,基本上都集成了各種通訊口,支持LED,LCD,等等,沒有個性. 直到接觸到東微的MCU,從產品的主要功能上就能看到24BIT ADC這個超亮眼的參數, 細看規格書后,發現它還集成有1-2級運放. 這不就是為我們傳感器行業定制的嗎. 拿到DT5M4756R8L6的開發板后,我們開始了嘗試.但是整個嘗試過程曲折而有趣. 拿到手上直接復制了一個GPIO的點燈程序,編譯通過,但下載不了,經過了多次群內溝通,終于能下載程序并點燈. 在KEIL內部,要注意調試工具選JLINK,以及編程用的地址空間.相關的圖片,我看前面分享的同學已經貼了,我就不貼圖了. 我們公司主要的用途是將模擬信號轉為數字量,然后通過數字接口提供給用戶,所以我們重點關注了一下它的ADC工作流程. 東微的ADC空有24位,但其實它也并沒有拿它當主要賣點, 這顆芯片更像是為儀器儀表行業或者醫療器械行業做的量身定作,它花了不少的資源在UI這一塊,支持LED,LCD段碼屏等. 真正留給ADC用的資源并不多. 對于信號源不多的應用還是能用的. 我們這次測試的本來是PH傳感器,但因為PH傳感器的接口是BNC的,我們沒有找到合適的轉接頭來連到開發板上, 臨時用一個TDS探頭代替了PH探頭. 因為只是測試,所以并沒有從頭開始寫軟件, 在官方的DEMO上修改. 這個MCU的資料和STC看齊,所有信息都弄在一個文件里面, 參考代碼也是直接地址操作, 著實費了點時間看源碼. 首先是系統時鐘,它外部的時鐘源只有一個32K晶振,其它的應該是內部時鐘源, 沒有去動它的時鐘主頻, 默認時鐘是64M,默認的分頻是4分頻, 所以系統時鐘是64/4=16M. 那么ADC的時鐘頻率,用了這兩句代碼 #define CLK_ADC (uint32_t)0x00000080 CLK_Enable(CLK_ADC);//enable ADC CLK =4MHz //0x04000014ul是個ADC操作非常重要的寄存器 *(vu32 *)(0x04000014ul) = 0x00000000+(offset<<7)+(osr<<4)+(4<<12); //CLK_SELECT=0, adc tst bias_amp1=adc_tst[18:17] bias_amp0=adc_tst[16:15] bias_adc2=adc_tst[24:23] bias_adc1=adc_tst[22:21] bias_adc0=adc_tst[20:19] 與ADC控制的控制設置基本全在這個寄存器內 關于ADC還有一個初始化寄存器, 0x04000010ul, 同樣的也沒有名字,我暫且叫它ADC信號源配置寄存器. 原文檔無法復制,花了點時間手碼到代碼里面了. 發出來,如果你們需要可以直接復制過去.
這上源碼里ADC初始化里面的3個參數, 同樣的,沒有注釋, 靠見名知義,猜. 好了,那源碼起了個頭,要連硬件. 我們是有傳感器的轉接板,全部引出2.54的排針出來,用杜邦線連到開發板上
條件簡陋,先接了TDS中的NTC部分, 原來我們是用的單端接法,這次先嘗試了一下差分接法, 用到了P19以及P25兩個器件,在板子上壓力傳感器的旁邊. 壓力傳感器找不到我就沒有辦法了,壓力傳感器有個氣咀樣的東西. 繼續魔改源碼
目前還沒改源碼里的信號源, 可以看到源碼里面,用一個gain配置了兩種情況,一種有一級放大,一種無放大. 信號源分正端和負端, 我們用了ANN8以及ANP8這兩路,所以都配置為1000, 對照表我就不貼了,在規格書底部區域. 先改源碼再測試
源碼里 這兩數對應的整數部分是,011111111111111111111111,所以其實有效的分辨精度是23位,并且實際ENOB只有19位,采樣頻率是1KHZ,并不算快. NTC的分壓法測試是非常簡單的,它的分壓電阻是100K,我們用的的 10K 3950的NTC, 這個分壓還是不太合理的,勉強測了一下, 精度不怎么好,不過穩定性非常不錯. TDS部分也是分壓法測試,但是供電就不能用恒流供電了,需要用到變化的電源以及精選的分壓電阻.這個在開發板上不太好接線,全部引到我們的轉接板上面. 這個滲及到公司的一些細節,不太好直接貼出來. 測試的結論是ADC非常穩定, 但是操控過程有些繁瑣,建議封裝成不同的庫函數, 以提高用戶的開發效率. 總結一下就是這顆DT5M4765非常適合有ADC要求,并且有傳統UI要求的應用. 有一個非常非常非常人性化的功能,就是它本身可以對外輸入3.3,甚至1.8V. 要知道現在的傳感器,絕大多數都開始了3.3V供電,甚至1.8V供電, 如果MCU本身對外可以供這幾個電壓,那么省了很多LDO的工作 需要提高的是開發環境以及開發工具上的適配性. 并且文檔完全沒有按功能模塊分類整理,沒有目錄,這些都對開發者是個極大的挑戰, 上下翻文檔非常費時間. 源碼里面需要給寄存器命名,要有適當的注釋,否則有如錦衣夜行, 讓好的國貨不能傳遞到非常需要它的行業當中去. |
-
單片機
+關注
關注
6036文章
44556瀏覽量
635029 -
mcu
+關注
關注
146文章
17141瀏覽量
351103 -
adc
+關注
關注
98文章
6497瀏覽量
544557 -
開發板
+關注
關注
25文章
5040瀏覽量
97420
發布評論請先 登錄
相關推薦
評論