基于51單片機SPI器件的串口控制
2 AD7390的基本結(jié)構(gòu)和工作原理
AD7390是ADl公司生產(chǎn)的12位分辨率電壓輸出數(shù)/模轉(zhuǎn)換器。該DAC為用戶提供低成本、高精度的可控電壓解決方案,使用單電源+3V系統(tǒng)供電。器件保證電源電壓為2.7~5.5V時消耗不到100mA的電流,所以該器件適用于一些對功效要求高的設(shè)備,比如電池供電系統(tǒng)。輸出電壓取決于外部參考輸入電壓。DACOUT輸出介于REFIN與地之間的任意值,其內(nèi)部框圖如圖2所示。
內(nèi)部雙緩沖串行數(shù)據(jù)接口提供高速轉(zhuǎn)換,微控制器通過三線SPI控制器件、串行數(shù)據(jù)(SDI)、時鐘(CLK)和使能(LD)引腳。此外,使用CLR輸入可以對輸出清零。操作時序如圖3所示。
3 AD7390的串口控制
電腦通過RS 232向MCU發(fā)送控制信號,再由MCU控制AD7390,完成整個設(shè)置過程。通過串口控制AD7390的軟件流程如圖4所示。一旦有數(shù)據(jù)寫入單片機,則單片機將重新設(shè)置AD7390。
單片機程序分為三大模塊,分別是SPI控制模塊、串口接收模塊和操作信息反饋模塊。
SPI控制模塊產(chǎn)生CLK,LD,并在CLK的上升沿到來之前,保證SDI數(shù)據(jù)的穩(wěn)定,以便AD7390準確地采集到數(shù)據(jù)。CLK時鐘的頻率根據(jù)器件的典型延遲決定,不同器件有不同的延遲,所以它決定了不同器件的時鐘應(yīng)該不一樣。
串口接收模塊完成從電腦接收數(shù)據(jù)并保存數(shù)據(jù)。由一片MAX 232完成RS 232電平與TTL電平之間的轉(zhuǎn)換。因為傳輸?shù)氖沁B續(xù)性數(shù)據(jù),因此在接收程序的編寫時,要注意中斷申請的屏蔽,才能準確地接收到全部數(shù)據(jù)。
在利用串口調(diào)試助手調(diào)試時,留意發(fā)送數(shù)據(jù)的格式,是否以16進制發(fā)送,會影響接收到的數(shù)據(jù)。比如,發(fā)送字母“E”,如果以16進制發(fā)送。發(fā)送的實際數(shù)據(jù)是“15”,而接收到的數(shù)據(jù)是“15”的ASCII碼“49”、“53”;如果不以16進制發(fā)送,則發(fā)送的是字母“E”的ASCII碼“69’。由此可以看出它們之間的差別。因此在接收方要得到想要的數(shù)據(jù),則需要進行轉(zhuǎn)換。該轉(zhuǎn)換可參看后面的程序。
評論