首先說一下DAC和PWM的關(guān)系:
- DAC是通過電阻分壓+開關(guān)組合直接湊出想要的電壓,輸出是直流恒定電壓量,比如1024級的DAC,輸出512,就是0.5個VCC直流。
- PWM是通過振蕩占空比得到想要電壓,比如比如1024級的PWM,輸出512,就是50%時間高電平VCC,50%時間低電平0。產(chǎn)生能量剛好是0.5個VCC一樣的能量。
- LED調(diào)光,電機調(diào)速,更適合使用PWM。
- 產(chǎn)生模擬音頻,產(chǎn)生指定直流電壓,控制儀表等更適合使用DAC
TM8211(PT8211)是一片輸出分辨率有16bit(65536級電壓值),兩通道輸出的DAC。非常廉價,淘寶零售價大概在0.4元一片左右,而專門用做數(shù)字DAC的芯片比如TLC5615(10bit),MAX515(10bit)之類的都需要2元以上甚至更高
medium_563dc751e604c74df9d762372fce26d4.jpg (7.28 KB, 下載次數(shù): 224)
下載附件
2016-4-18 03:46 上傳
下面是轉(zhuǎn)載的介紹:
TM8211是兩路16位數(shù)模轉(zhuǎn)換集成電路,可廣泛應(yīng)用于數(shù)字音頻、多媒體系統(tǒng)。芯片采用CMOS工藝設(shè)計,內(nèi)部電路結(jié)構(gòu)基于R-2R電阻網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計,并在全電源電壓范圍內(nèi)實現(xiàn)16bit的動態(tài)范圍。 TM8211可通過采用數(shù)字串行總線數(shù)據(jù)輸入,采用快速R-2R網(wǎng)絡(luò)結(jié)構(gòu)來支持8X的過采樣音頻信號處理。TM8211 支持較寬范圍的采樣頻率,并與PT8211、TDA1311兼容,輸入采用LSBJ (Least Significant Bit Justified ) 格式, 數(shù)字編碼格式采用MSB在前的補碼格式。 TM8211 采用8-pin SOP or DIP封裝。
此音頻DAC比起數(shù)字DAC輸出電壓范圍不夠?qū)拸V,線性不如數(shù)字DAC好。抖動也比較大。不過價格低廉,在要求低的時候可以當做普通數(shù)字DAC使用。
硬件連接:
根據(jù)官方PDF的標準電路,隨便找三個arduino的IO口接BCK/WS/DIN即可。
161844xejhhdd7me1kd67c.png (33.6 KB, 下載次數(shù): 257)
下載附件
2016-4-18 03:46 上傳
軟件編寫:
- //定義引腳,可以自行修改引腳對應(yīng)
- int BCK = 10, WS = 9, DIN = 8;
- unsigned int cnt = 0;
-
- //TM8211驅(qū)動函數(shù),
- void TM8211(unsigned int wr_dat8211)
- {
- for(int i = 16; i > 0; i--)
- {
- digitalWrite(BCK, LOW);
- digitalWrite(DIN, (wr_dat8211 >> i) & 0x01);
- digitalWrite(BCK, HIGH);
- }
- }
-
- void setup()
- {
- //所有引腳都是輸出方式
- pinMode(BCK, OUTPUT);
- pinMode(WS, OUTPUT);
- pinMode(DIN, OUTPUT);
- }
-
- void loop()
- {
- //cnt是DA值
- if(cnt > 0xFFF0)
- {
- cnt = 0;
- }
- //WS是通道選擇,這段代碼是兩個通道LCH/RCH同時輸出cnt,也可以分開LCH/RCH控制的,具體看pdf
- digitalWrite(WS, LOW);
- TM8211(cnt);
- digitalWrite(WS, HIGH);
- digitalWrite(WS, LOW);
- delay(1);
- cnt += 0x0F; //每次輸出增加16個等級
- }
復(fù)制代碼
代碼輸出的是一個鋸齒波,輸出電平0x0000-0xFFFF。1毫秒上升0x0F個等級
接一個LED在輸出端即可看到漸亮效果。
由于LED亮起電壓1.8v,本例是0-5v掃描,在0-1.8v掃描時候可能看不到LED亮起,請留意,這不是程序問題,是正常現(xiàn)象
|