AVR的模數(shù)轉(zhuǎn)換器ADC具有下列特點:
10位精度;
0.5LSB積分非線形誤差
±2LSB的絕對精度;
13μs~260μs的轉(zhuǎn)換時間;
在最大精度下可達到每秒15kSPS的采樣速率;
8路可選的單端輸入通道;
7路差分輸入通道;
2路差分輸入通道帶有可選的10×和200×增益;
ADC轉(zhuǎn)換結(jié)果的讀取可設(shè)置為左端對齊(LEFT ADJUSTMENT);
ADC的電壓輸入范圍0~Vcc;
可選擇的內(nèi)部2.56V的ADC參考電壓源;
自由連續(xù)轉(zhuǎn)換模式和單次轉(zhuǎn)換模式;
ADC自動轉(zhuǎn)換觸發(fā)模式選擇;
ADC轉(zhuǎn)換完成中斷;
休眠模式下的噪聲抑制器(NOISE CANCELER)。
在本實例中,我們將編寫程序?qū)崿F(xiàn)將模數(shù)轉(zhuǎn)換后獲得的電壓值通過單片機的串口發(fā)送到計算機,然后通過計算機上的串口助手顯示測量的電壓值。
本實例共有3個功能模塊,分別描述如下:
● 單片機系統(tǒng):使用單片機的串口實現(xiàn)將模數(shù)轉(zhuǎn)換后獲得的電壓值通過串口發(fā)送到計算機。
● 外圍電路:RS232電平轉(zhuǎn)換電路,DB9串行接口插座,模擬電壓輸入采集電路。
● 軟件程序:進一步熟悉單片機的串行通信,并掌握單片機的模數(shù)轉(zhuǎn)換的方法。
6.2.2、器件和原理
關(guān)于串行接口的原理已接單片機與計算機的串口的連接在上一實例中進行了描述,在本實例中不再重復(fù)。
本實例只介紹ATmega16單片機如何通過內(nèi)置的模數(shù)轉(zhuǎn)換模塊采集外界輸入的模擬電壓。
1、ATmega16單片機的模數(shù)轉(zhuǎn)換器ADC介紹
由于單片機只能處理數(shù)字信號,所以外部的模擬信號量需要轉(zhuǎn)變成數(shù)字量才能進一步的由單片機進行處理。ATmega16內(nèi)部集成有一個10位逐次比較(successive approximation)ADC電路。因此使用AVR可以非常方便的處理輸入的模擬信號量。
ATmega16的ADC與一個8通道的模擬多路選擇器連接,能夠?qū)σ訮ORTA作為ADC輸入引腳的8路單端模擬輸入電壓進行采樣,單端電壓輸入以0V(GND)為參考。另外還支持16種差分電壓輸入組合,其中2種差分輸入方式(ADC1,ADC0和ACD3,ADC2)帶有可編程增益放大器,能在A/D轉(zhuǎn)換前對差分輸入電壓進行0dB(1×),20dB(10×)或46dB(200×)的放大。還有七種差分輸入方式的模擬輸入通道共用一個負極(ADC1),此時其它任意一個ADC引腳都可作為相應(yīng)的正極。若增益為1×或10×,則可獲得8位的精度。如果增益為200×,那么轉(zhuǎn)換精度為7位。
AVR的ADC功能單元由獨立的專用模擬電源引腳AVcc供電。AVcc和Vcc的電壓差別不能大于±0.3V。ADC轉(zhuǎn)換的參考電源可采用芯片內(nèi)部的2.56V參考電源,或采用AVcc,也可使用外部參考電源。使用外部參考電源時,外部參考電源由引腳ARFE接入。使用內(nèi)部電壓參考源時,可以通過在AREF引腳外部并接一個電容來提高ADC的抗噪性能。
ADC功能單元包括采樣保持電路,以確保輸入電壓在ADC轉(zhuǎn)換過程中保持恒定。ADC通過逐次比較(successive approximation)方式,將輸入端的模擬電壓轉(zhuǎn)換成10位的數(shù)字量。最小值代表地,最大值為AREF引腳上的電壓值減1個LSB。可以通過ADMUX寄存器中REFSn位的設(shè)置,選擇將芯片內(nèi)部參考電源(2.56V)或AVcc連接到AREF,作為A/D轉(zhuǎn)換的參考電壓。這時,內(nèi)部電壓參考源可以通過外接于AREF引腳的電容來穩(wěn)定,以改進抗噪特性。
模擬輸入通道和差分增益的選擇是通過ADMUX寄存器中的MUX位設(shè)定的。任何一個ADC的輸入引腳,包括地(GND)以及內(nèi)部的恒定能隙(fixed bandgap)電壓參考源,都可以被選擇用來作為ADC的單端輸入信號。而ADC的某些輸入引腳則可選擇作為差分增益放大器的正、負極輸入端。當選定了差分輸入通道后,差分增益放大器將兩輸入通道上的電壓差按選定增益系數(shù)放大,然后輸入到ADC中。若選定使用單端輸入通道,則增益放大器無效。
通過設(shè)置ADCSRA寄存器中的ADC使能位ADEN來使能ADC。在ADEN沒有置“1”前,參考電壓源和輸入通道的選定將不起作用。當ADEN位清“0”后,ADC將不消耗能量,因此建議在進入節(jié)電休眠模式前將ADC關(guān)掉。
ADC將10位的轉(zhuǎn)換結(jié)果放在ADC數(shù)據(jù)寄存器中(ADCH和ADCL)。默認情況下,轉(zhuǎn)換結(jié)果為右端對齊(RIGHT ADJUSTED)的。但可以通過設(shè)置ADMUX寄存器中ADLAR位,調(diào)整為左端對齊(LEFT ADJUSTED)。如果轉(zhuǎn)換結(jié)果是左端對齊,并且只需要8位的精度,那么只需讀取ADCH寄存器的數(shù)據(jù)作為轉(zhuǎn)換結(jié)果就達到要求了。否則,必須先讀取ADCL寄存器,然后再讀取ADCH寄存器,以保證數(shù)據(jù)寄存器中的內(nèi)容是同一次轉(zhuǎn)換的結(jié)果。因為一旦ADCL寄存器被讀取,就阻斷了ADC對ADC數(shù)據(jù)寄存器的操作。這就意味著,一旦指令讀取了ADCL,那么必須緊接著讀取一次ADCH;如果在讀取ADCL和讀取ADCH的過程中正好有一次ADC轉(zhuǎn)換完成,ADC的2個數(shù)據(jù)寄存器的內(nèi)容是不會被更新的,該次轉(zhuǎn)換的結(jié)果將丟失。只有當ADCH寄存器被讀取后,ADC才可以繼續(xù)對ADCL和ADCH寄存器操作更新。
ADC有自己的中斷,當轉(zhuǎn)換完成時中斷將被觸發(fā)。盡管在順序讀取ADCL和ADCH寄存器過程中,ADC對ADC數(shù)據(jù)寄存器的更新被禁止,轉(zhuǎn)換的結(jié)果丟失,但仍會觸發(fā)ADC中斷。
2、ATmwga16單片機的模數(shù)轉(zhuǎn)換器ADC相關(guān)的I/O寄存器
1.ADC多路復(fù)用器選擇寄存器—ADMUX
位7,6—REFS[1:0]:ADC參考電源選擇
REFS1、REFS2用于選擇ADC的參考電壓源,見表6.2.1。如果這些位在ADC轉(zhuǎn)換過程中被改變,新的選擇將在該次ADC轉(zhuǎn)換完成后(ADCSRA中的ADIF被置位)才生效。一旦選擇內(nèi)部參考源(AVcc、2.56V)為ADC的參考電壓后,AREF引腳上不得施加外部的參考電源,只能與GND之間并接抗干擾電容。
位5—ADLAR:ADC結(jié)果左對齊選擇
ADLAR位決定轉(zhuǎn)換結(jié)果在ADC數(shù)據(jù)寄存器中的存放形式。寫“1”到ADLAR位,將使轉(zhuǎn)換結(jié)果左對齊(LEFT ADJUST);否則,轉(zhuǎn)換結(jié)果為右對齊(RIGHT ADJUST)。無論ADC是否正在進行轉(zhuǎn)換,改變ADLAR位都將會立即影響ADC數(shù)據(jù)寄存器。
位4..0—MUX4:0:模擬通道和增益選擇
這5個位用于對連接到ADC的輸入通道和差分通道的增益進行選擇設(shè)置,詳見表6.2.2。注意,只有轉(zhuǎn)換結(jié)束后(ADCSRA的ADIF是“1”),改變這些位才會有效。
本實例中我們需要設(shè)置ADC的參考電壓源為AVcc,即REFS0設(shè)置為1,ADC默認轉(zhuǎn)換結(jié)果為右對齊,我們不需要改變,模擬通道選擇ADC0通道單端輸入,即MUX4:0。
2.ADC控制和狀態(tài)寄存器A—ADCSRA
位7—ADEN:ADC使能
該位寫入“1”時使能ADC,寫入“0”關(guān)閉ADC。如在ADC轉(zhuǎn)換過程中將ADC關(guān)閉,該次轉(zhuǎn)換隨即停止。
位6—ADSC:ADC轉(zhuǎn)換開始
在單次轉(zhuǎn)換模式下,置該位為“1”,將啟動一次轉(zhuǎn)換。在自由連續(xù)轉(zhuǎn)換模式下,該位寫入“1”將啟動第一次轉(zhuǎn)換。先置位ADEN位使能ADC,再置位ADSC;或置位ADSC的同時使能ADC,都會使能ADC開始進行第一次轉(zhuǎn)換。第一次ADC轉(zhuǎn)換將需要25個ADC時鐘周期,而不是常規(guī)轉(zhuǎn)換的13個ADC時鐘周期,這是因為第一次轉(zhuǎn)換需要完成對ADC的初始化。
在ADC轉(zhuǎn)換的過程中,ADSC將始終讀出為“1”。當轉(zhuǎn)換完成時,它將轉(zhuǎn)變?yōu)椤?”。強制寫入“0”是無效的。
位5—ADATE:ADC自動轉(zhuǎn)換觸發(fā)允許
當該位被置為“1”時,允許ADC工作在自動轉(zhuǎn)換觸發(fā)工作模式下。在該模式下,在觸發(fā)信號的上升沿時ADC將自動開始一次ADC轉(zhuǎn)換過程。ADC的自動轉(zhuǎn)換觸發(fā)信號源由SFIOR寄存器中的ADTS位選擇確定。
位4—ADIF:ADC中斷標志位
當ADC轉(zhuǎn)換完成并且ADC數(shù)據(jù)寄存器被更新后該位被置位。如果ADIE位(ADC轉(zhuǎn)換結(jié)束中斷允許)和SREG寄存器中的I位被置“1”,ADC中斷服務(wù)程序?qū)⒈粓?zhí)行。ADIF在執(zhí)行相應(yīng)的中斷處理向量時被硬件自動清零。此外,ADIF位可以通過寫入邏輯“1”來清零。
位3—ADIE:ADC中斷允許
當該位和SREG寄存器中的I位同時被置位時,允許ADC轉(zhuǎn)換完成中斷。
位2,0—ADPS[2:0]:ADC預(yù)分頻選擇
這些位決定了XTAL時鐘與輸入到ADC的ADC時鐘之間分頻數(shù),見表6.2.3。
本實例中我們需要使能ADC,即ADEN設(shè)置為1,我們不用自動轉(zhuǎn)換,也不需要中斷,所以,ADTE、ADIE位不需要設(shè)置。在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達到最大精度時,需要50kHz~200kHz之間的采樣時鐘。本例中使用的時鐘是12M的,所以要將時鐘64分頻,分頻后ADC頻率為188KHz,即時鐘分頻選擇ADPS[2:0]=6。
3.ADC數(shù)據(jù)寄存器—ADCL和ADCH
ADLAR = 0,ADC轉(zhuǎn)換結(jié)果右對齊時,ADC結(jié)果的保存方式
ADLAR = 1,ADC轉(zhuǎn)換結(jié)果左對齊時,ADC結(jié)果的保存方式
當ADC轉(zhuǎn)換完成后,可以讀取ADC寄存器的ADC0-ADC9得到ADC的轉(zhuǎn)換的結(jié)果。如果是差分輸入,轉(zhuǎn)換值為二進制的補碼形式。一旦開始讀取ADCL后,ADC數(shù)據(jù)寄存器就不能被ADC更新,直到ADCH寄存器被讀取為止。因此,如果結(jié)果是左對齊(ADLAR=1),且不需要大于8位的精度的話,僅僅讀取ADCH寄存器就足夠了。否則,必須先讀取ADCL寄存器,再讀取ADCH寄存器。ADMUX寄存器中的ADLAR位決定了從ADC數(shù)據(jù)寄存器中讀取結(jié)果的格式。如果ADLAR位為“1”,結(jié)果將是左對齊;如果ADLAR位為“0”(默認情況),結(jié)果將是右對齊。
4.特殊功能I/O寄存器—SFIOR
位7..5—ADTS[2:0]:ADC自動轉(zhuǎn)換觸發(fā)源選擇
當ADCSRA寄存器中的ADATE為“1”,允許ADC工作在自動轉(zhuǎn)換觸發(fā)工作模式時,這3位的設(shè)置用于選擇ADC的自動轉(zhuǎn)換觸發(fā)源。如果禁止了ADC的自動轉(zhuǎn)換觸發(fā)(ADATE為“0”),這3個位的設(shè)置值將不起任何作用。
本例中我們不使用自動轉(zhuǎn)換功能,所以該寄存器可以不必設(shè)置。
6.2.3、電路
本實例的電路包括232電平轉(zhuǎn)換電路和電阻分壓電路,這兩種電路在前面的實例中均做過介紹,這里不再重復(fù)。
1、電路原理
在本實例中利用MAX3232芯片使單片機輸出的TTL電平轉(zhuǎn)換為標準的RS232電平,從而使計算機能夠識別。同時將計算機輸出的RS232電平轉(zhuǎn)換為單片機可以識別的TTL電平。
利用電位器產(chǎn)生電阻分壓電路,從而產(chǎn)生變化的模擬電壓加到單片機的模擬信號采集端口,供單片機采集。
2、電路連接
電路中MAX3232芯片的9、10引腳分別連接單片機的PD0、PD1端口,MAX3232的13、14引腳分別連接計算機串口線的3、2腳。
電位器RP2的動片引腳連接單片機的模擬信號采集通道PA0(ADC0)。
3、特別說明
本學習板采用的是串口插座是公頭的,所以與計算機相連的串口連接線應(yīng)該是交叉串口線,而不是串口延長線。
6.2.4、程序設(shè)計
1、程序功能
程序的功能是通過單片機的串行接口,將單片機采集到的模擬電壓值發(fā)送到計算機中,通過計算機上的串口助手顯示采集的電壓值。
● 單片機串行接收中斷的編程
在本例中,我們用到了單片機的串行接收中斷,需要編寫串行接收中斷服務(wù)程序,通過查詢WINAVR(GCC)的中斷庫函數(shù)手冊,可以查找到ATmega16單片機串行接收中斷的中斷向量為USART_RXC_vect。據(jù)此我們可以編寫串行接收中斷服務(wù)程序,如下:
//接收中斷函數(shù)
ISR(USART_RXC_vect )
{
unsigned char Rev;
Rev = UDR; //從USART I/O數(shù)據(jù)寄存器-UDR中讀出數(shù)據(jù)
Usart_PutChar(Rev); //將接收到的數(shù)據(jù)發(fā)送
}
在中斷服務(wù)程序中,我們首先把單片機串口接收到的數(shù)據(jù)放入變量Rev中,然后調(diào)用上一實例中編寫的串行接口字節(jié)發(fā)送函數(shù)將變量Rev中的數(shù)據(jù)發(fā)送到計算機。
2、 單片機與計算機串行通信結(jié)果的觀察
在觀察本例運行結(jié)果時,我們同樣要用到串口助手,本例中,單片機發(fā)送串口數(shù)據(jù)采用的波特率是9600bps,數(shù)據(jù)格式是8位數(shù)據(jù)位,1位停止位,無奇偶校驗。在串口助手里面,我們也要將波特率和數(shù)據(jù)格式設(shè)置成一樣的。
3、函數(shù)說明
本實例用到了6個函數(shù),分別是:
void Port_Init(void); //端口初始化配置
void Usart_Init(void); //USART寄存器設(shè)置
void AD_Init(void); //AD初始化
void Usart_PutChar(unsigned char cTXData); //字節(jié)發(fā)送函數(shù)
void Usart_PutString(unsigned char *pcString); // 字符串發(fā)送數(shù)據(jù)
unsigned int AD_GetData(void); //AD轉(zhuǎn)換函數(shù)
4、使用WINAVR開發(fā)環(huán)境,在本例中我們使用的是外部12M的晶振,所以需要將MAKEFILE文件中的時鐘頻率修改為12M。另外在程序燒錄到單片機的時候,熔絲位也要選擇為外部12M晶振(注意是晶振,不是外部振蕩器,一定不要選擇錯了,否則會導(dǎo)致單片機不能再燒寫程序)。
5、程序代碼
#include
#include
#include
//常量聲明
#define BAUD 9600 //波特率設(shè)置值
//全局變量聲明
unsigned int ADData; //AD轉(zhuǎn)換獲得的數(shù)據(jù)
//函數(shù)聲明
void Port_Init(void); //端口初始化配置
void Usart_Init(void); //USART寄存器設(shè)置
void AD_Init(void); //AD初始化
void Usart_PutChar(unsigned char cTXData); //字節(jié)發(fā)送函數(shù)
void Usart_PutString(unsigned char *pcString); // 字符串發(fā)送數(shù)據(jù)
unsigned int AD_GetData(void); //AD轉(zhuǎn)換函數(shù)
int main(void)
{
unsigned char Delay3s;
Port_Init();
Usart_Init();
AD_Init();
Usart_PutString("AD轉(zhuǎn)換測試程序");
Usart_PutString("測得ADC0通道的電壓值為:");
sei(); //使能全局中斷
while(1)
{
ADData = (int)((long)AD_GetData() * 5010 / 1024); //將獲得的AD值轉(zhuǎn)換為電壓值
//單位為mv。
Usart_PutChar(ADData / 1000 + 0x30); //得到電壓值的千位并發(fā)送
Usart_PutChar('.'); //發(fā)送小數(shù)點
Usart_PutChar(ADData % 1000 / 100 + 0x30); //得到電壓值的百位并發(fā)送
Usart_PutChar(ADData % 100 / 10 + 0x30); //得到電壓值的十位并發(fā)送
Usart_PutChar(ADData % 10 + 0x30); //得到電壓值的個位并發(fā)送
Usart_PutChar('V'); //發(fā)送電壓符號“V”
Usart_PutChar(0x0d); //
Usart_PutChar(0x0a); // AD值發(fā)送結(jié)束,回車換行
for(Delay3s = 0;Delay3s < 30;Delay3s++) //延時3S
{
_delay_ms(90);
}
}
}
//端口狀態(tài)初始化設(shè)置函數(shù)
void Port_Init()
{
PORTA = 0X00;
DDRA = 0x00; //ADC通道設(shè)置為輸入口,高阻態(tài)
}
//USART寄存器配置函數(shù)
void Usart_Init()
{
UCSRA = 0X00;
UCSRC |= (1<
UBRRL = (F_CPU / BAUD / 16 - 1) % 256; //波特率設(shè)置
UBRRH = (F_CPU / BAUD / 16 - 1) / 256;
UCSRB |= (1 << RXCIE) | (1 << RXEN) | (1 << TXEN); //發(fā)送使能
}
//字節(jié)發(fā)送函數(shù)
void Usart_PutChar(unsigned char cTXData)
{
while( !(UCSRA & (1 << UDRE)) ); //只有數(shù)據(jù)寄存器為空時才能發(fā)送數(shù)據(jù)
UDR = cTXData; //發(fā)送數(shù)據(jù)送USART I/O數(shù)據(jù)寄存器-UDR
}
//接收中斷函數(shù)
ISR(USART_RXC_vect )
{
unsigned char Rev;
Rev = UDR; //從USART I/O數(shù)據(jù)寄存器-UDR中讀出數(shù)據(jù)
Usart_PutChar(Rev); //將接收到的數(shù)據(jù)發(fā)送
}
void Usart_PutString(unsigned char *pcString)
{
while (*pcString)
{
Usart_PutChar(*pcString++);
}
Usart_PutChar(0x0D);
Usart_PutChar(0x0A); //結(jié)尾發(fā)送回車換行
}
//AD轉(zhuǎn)換初始化函數(shù)
void AD_Init()
{
ADMUX |= (1 << REFS0); //ADC參考電壓為AVcc,ADC結(jié)果右對齊,選擇通道ADC0
ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); //使能AD轉(zhuǎn)換,ADC時鐘64分頻
}
//AD轉(zhuǎn)換函數(shù)
unsigned int AD_GetData()
{
ADCSRA |= (1 << ADSC); //開始AD轉(zhuǎn)換
while(!(ADCSRA & (1 << ADIF))); //等待轉(zhuǎn)換完成
ADCSRA |= (1 << ADIF); //清零ADC中斷標志位
return ADC; //返回ADC值
}
附錄:ADC應(yīng)用設(shè)計要點 1.預(yù)分頻與轉(zhuǎn)換時間
在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達到最大精度時,需要50kHz~200kHz之間的采樣時鐘。在要求轉(zhuǎn)換精度低于10位的情況下,ADC的采樣時鐘可以高于200kHz,以獲得更高的采樣率。
上一篇:AVR ATmega1280定時器PWM輸出程序
下一篇:AVR_點亮LED程序
推薦閱讀
史海拾趣
隨著市場的逐步擴大,億晶源于2013年在東莞成立東莞市億晶源光電科技有限公司,進一步擴大生產(chǎn)規(guī)模。公司高度重視技術(shù)創(chuàng)新,不斷投入研發(fā)資金,引進高端人才,成功推出多款具有競爭力的LED半導(dǎo)體產(chǎn)品。同時,公司還通過了ISO9001質(zhì)量體系認證,為產(chǎn)品質(zhì)量的穩(wěn)定提升提供了有力保障。
在不斷提升產(chǎn)品質(zhì)量和創(chuàng)新能力的同時,億晶源還積極拓展市場。公司先后在華南、華東等地區(qū)設(shè)立生產(chǎn)基地和銷售中心,形成了覆蓋全國的銷售網(wǎng)絡(luò)。同時,公司還注重品牌建設(shè),通過參加國內(nèi)外知名展會、舉辦技術(shù)交流會等活動,提升品牌知名度和影響力。
隨著技術(shù)的不斷進步,Bel Power Solutions始終保持著對創(chuàng)新的熱情。公司不斷加大研發(fā)投入,積極引進先進技術(shù)和人才,推動產(chǎn)品的升級換代。其中,一項重要的技術(shù)突破是公司成功研發(fā)出具有高效能、高可靠性特點的電源轉(zhuǎn)換技術(shù)。這一技術(shù)的推出,不僅提升了公司產(chǎn)品的競爭力,還為客戶提供了更加優(yōu)質(zhì)、可靠的電源解決方案。同時,公司還根據(jù)市場需求,推出了多款定制化、個性化的電源產(chǎn)品,滿足了不同客戶的特殊需求。
為了進一步完善電子供應(yīng)鏈,B&F Fastener Supply公司積極尋求并購機會。經(jīng)過多輪談判和盡職調(diào)查,公司成功收購了某家專注于電子元器件供應(yīng)的公司。這次并購使得B&F的產(chǎn)品線更加豐富,能夠為客戶提供一站式的電子供應(yīng)鏈解決方案。
想用VT6656 USB網(wǎng)卡,但安裝驅(qū)動后編譯出錯,錯誤如圖: 網(wǎng)上搜索了一下,毫無頭緒,請問各位有沒有碰到過類似的問題啊? 我用的是ATMEL 9261的bsp。… 查看全部問答∨ |
|
請問Windows Embedded CE 6.0 為什么只有評估版? 我在網(wǎng)上到處找Windows Embedded CE 6.0的正式版,但是沒有。全都是評估版。請問各位哪里有正式版下載?謝謝。… 查看全部問答∨ |
我在原來的VC程序中用到了ltoa函數(shù),把long型數(shù)據(jù)存在字符數(shù)組中,但是在WinCE中不支持,有什么其它的辦法實現(xiàn)這個功能嗎?請教各位了… 查看全部問答∨ |
uint16 moniliangruanjianjizhun(uint16 a,uint16 b) //模擬量軟件基準計算 { unsigned long int c,d; if(a>=b) a=0xffff; else { //_asm("sim"); //禁止中斷后計算正常 c=a; d=c<<16; d-=c; //==d ...… 查看全部問答∨ |
|
我在STM32外面接了一個ADC-TLC2543,用STM32的SPI傳輸ADC轉(zhuǎn)換之后的結(jié)果。現(xiàn)在我用示波器觀察STM32中MOSI(PA7)的輸出,示波器中沒有波形(片選信號和時鐘信號正常),把MOSI接到ADC中,ADC的輸出用示波器看有波形,但輸入STM32中讀出的數(shù)據(jù)很小, ...… 查看全部問答∨ |
關(guān)于數(shù)模模數(shù)轉(zhuǎn)換的問題?可能是我對單片機理解還不夠深,請問誰能解答一下? 比如用單片機時我直接置高電平是外接發(fā)光二極管點亮,與我用數(shù)模轉(zhuǎn)換后輸出一個電壓點亮發(fā)光二極管 請問這兩個過程有區(qū)別么,為什么要加數(shù)模轉(zhuǎn)換?… 查看全部問答∨ |
多功能調(diào)試測試助手-精密電壓源AD5791 環(huán)境說明:CubeSuites+ 文件: AD5791.c AD5791.h 函數(shù): AD57XX_Init(AD5791); void AD57XX_SetRegisterValue(unsigned char registerAddress, unsigned long registerValue) unsigned ...… 查看全部問答∨ |
看到一電子設(shè)備,MCU控制繼電器時,是先經(jīng)過74LS245,再經(jīng)過ULN2803去繼電器,而控制LED時,只經(jīng)過ULN2803,沒有使用74LS245,請問是大概會基于什么,在驅(qū)動繼電器和LED時,做了不同的設(shè)計呢。另外,麻煩順便通俗的介紹下74LS245,我在網(wǎng)上也查了一 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- ?擁抱基礎(chǔ)設(shè)施變革,抓住人工智能的萬億美元機遇
- 中微愛芯2W帶關(guān)斷模式的AB類音頻功放介紹
- 慧明DM16 PRO與DM16數(shù)字調(diào)音臺的全方位對比
- 中微愛芯電烤箱整體解決方案
- 不是8萬也不是13萬,高速風筒為什么偏偏是11萬轉(zhuǎn)速呢?
- 國內(nèi)AI眼鏡Q1出貨飆升116%,支付革新開啟增長新賽道
- 高性能纖維應(yīng)變傳感器,實現(xiàn)可穿戴設(shè)備的柔性化、舒適化、便攜化
- 用于生理狀況和活動監(jiān)測的可穿戴傳感器綜述
- 蘋果智能眼鏡新專利:鏡框加LED陣列輔助顯示系統(tǒng)、雙軸鉸鏈設(shè)計
- 機械聲學傳感概念或支持開發(fā)其它無線柔性傳感系統(tǒng)
- 韋豪創(chuàng)芯梁龍:聚焦泛半導(dǎo)體,共同推進產(chǎn)業(yè)發(fā)展
- 臺積電擴廠受阻,新竹科學園區(qū)用地環(huán)評三審未通過
- 微容科技攜四類芯片內(nèi)置MLCC產(chǎn)品亮相第五屆集微半導(dǎo)體會議
- 陳躍楠:新環(huán)境下EDA產(chǎn)業(yè)發(fā)展現(xiàn)狀和趨勢分析
- 優(yōu)矽科技 :開源加速RISC-V軟硬件的協(xié)同開發(fā)
- 第三方ROM正在路上趕來!小米6X即將開源
- 手機3.0時代,匯威發(fā)布AICALL品牌新機6月上市
- 大唐電信實施退市風險警示,股票變更為*ST大唐
- Q1中國智能手機市場重挫21%:蘋果跌出前四,市場進一步集中
- 藍思科技一季度凈利下滑五成,產(chǎn)品銷量未達預(yù)期