下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ADX3208驅動基于RT1052的方法/*Analogysemixutong2023/02/15*/#include"ADX3208.h"#include"board.h"#include"bsp_lpspi.h"#include"rtthread.h"http://初始化ADX3208voidADX3208_Init(void){//START_L;//XTAL_H;//PWDN_H;//RST_H;//rt_thread_mdelay(150);//RST_L;//rt_thread_mdelay(1);//RST_H;}//獲取芯片的ID號uint8_tADX3208_GetChipID(void){uint8_tID;ID=ADX3208_GetReg(ADX3208_ID);returnID;}//獲取芯片寄存器值uint8_tADX3208_GetReg(uint8_tRreg){uint8_tTxData[3];uint8_tRxData[3];//讀取命令,TxData[0]=ADX3208_RREG|Rreg;//選擇要讀取的寄存器TxData[1]=0x00;//讀取單個寄存器TxData[2]=0X00;//開始讀取Lpspi_Read(3,TxData,RxData);//返回寄存器值returnRxData[2];}//寫單個芯片寄存器值voidADX3208_WriteReg(uint8_tWreg,uint8_tData){uint8_tTxData[3];//寫入命令,TxData[0]=ADX3208_WREG|Wreg;//選擇要寫入的的寄存器TxData[1]=0x00;//讀取寫入寄存器TxData[2]=Data;Lpspi_Write(3,TxData);}//寫多個芯片寄存器值//StartReg起始寄存器地址//RegNum要寫的寄存器數量//*Data寄存器參數傳入voidADX3208_WriteMultiReg(uint8_tStartReg,uint8_tRegNum,uint8_t*Data){uint8_tTxData[32];uint8_ti;//寫入命令,TxData[0]=ADX3208_WREG|StartReg;//選擇要寫入的的寄存器TxData[1]=RegNum-1;for(i=0;i<RegNum;i++){//將指針數據賦值給TxdataTxData[2+i]=*Data;//指向下個數據地址Data++;}//最終發(fā)送多少個數據Lpspi_Write(2+RegNum,TxData);}//讀多個芯片寄存器值//StartReg起始寄存器地址//RegNum要寫的寄存器數量//*Data寄存器參數傳出voidADX3208_ReadMultiReg(uint8_tStartReg,uint8_tRegNum,uint8_t*Data){//讀取寄存器uint8_tTxData[3];//讀取命令,TxData[0]=ADX3208_RREG|StartReg;//選擇要寫入的的寄存器TxData[1]=RegNum-1;//最終接收多少個數據Lpspi_Read(2+RegNum,TxData,Data);}//打印所有寄存器地址voidADX3208_GetAllReg(void){uint8_ti,j;for(i=0;i<24;i++){j=ADX3208_GetReg(i);//打印所有寄存器值//rt_kprintf("regaddr:%dregdefaultValue:%xrn",i,j);}}//發(fā)送ADX3208數據指令如SDATAC或者RDATAC//詳情見頭文件commanddefine部分voidADX3208_Command(uint8_tCom){uint8_tTxData[]={Com};Lpspi_Write(1,TxData);}//獲取ADC的值//數據一共216位/152位//24位狀態(tài)位1100FaultStatusP[7:0]FaultStatusN[7:0]GPIO[7:4]//8通道*ADC位數數據voidADX3208_GetADC_Value(uint8_tADC_Resolution,uint8_t*Rxdata){if(ADC_Resolution==16){Lpspi_Read(152,NULL,Rxdata);}else{Lpspi_Read(216,NULL,Rxdata);}}以上是.c文件/*Analogysemixutong2023/02/15*/#ifndef__ADX3208_H#define__ADX3208_H#include"bsp_lpspi.h"/*device需要先寫入SDTAC啟動寄存器寫入才可以對寄存器進行操作在此之前需要檢查PWDN以及Reset引腳的狀態(tài)是否為高在操作完寄存器后,需要發(fā)送RDATAC才能連續(xù)讀取數據bsp_lpspi的接口函數如下:Lpspi_Write(uint8_tdatasize,uint8_t*data);Lpspi_Read(uint8_tdatasize,uint8_t*data,uint8_t*Rxdata);注意:Lpspi的時序并不一定滿足ADX3208的配置,以下配置經過驗證lpspi_master_config_tconfig;LPSPI_MasterGetDefaultConfig(&config);config.whichPcs=kLPSPI_Pcs0;config.baudRate=50000;config.betweenTransferDelayInNanoSec=1000000000/500;config.pcsToSckDelayInNanoSec=1000000000/500;config.lastSckToPcsDelayInNanoSec=1000000000/500;config.cpha=kLPSPI_ClockPhaseSecondEdge;LPSPI_MasterInit(LPSPI3,&config,LPSPI3_CLOCK_FREQ);*//*commanddefine*/#defineADX3208_WAKEUP0x20#defineADX3208_STANDBY0x04#defineADX3208_RESET0x06#defineADX3208_START0x08#defineADX3208_STOP0x0a#defineADX3208_OFFSETCAL0x1a#defineADX3208_RDATAC0x10#defineADX3208_SDATAC0x11#defineADX3208_RDATA0x12//RREGReadnnnnnregistersstartingataddressrrrrr//FirstByte001rrrrr(2xh)//SecondByte000nnnnn//nnnnn=numberofregisterstobereadorwritten–1.Forexample,toreadorwritethreeregisters,setnnnnn=0(0010).rrrrr=the//startingregisteraddressforreadandwritecommands//WREG同上#defineADX3208_RREG0x20#defineADX3208_WREG0X40/*寄存器定義*/#defineADX3208_ID0x00#defineADX3208_CONFIG10x01#defineADX3208_CONFIG20x02#defineADX3208_CONFIG30x03#defineADX3208_LOFF0x04#defineADX3208_CH1SET0x05#defineADX3208_CH2SET0x06#defineADX3208_CH3SET0x07#defineADX3208_CH4SET0x08#defineADX3208_CH5SET0x09#defineADX3208_CH6SET0x0A#defineADX3208_CH7SET0x0B#defineADX3208_CH8SET0x0C#defineADX3208_OPAMP_SENSP0x0D#defineADX3208_OPAMP_SENSN0x0E#defineADX3208_LOFF_SENSP0x0F#defineADX3208_LOFF_SENSN0x10#defineADX3208_LOFF_FLIP0x11#defineADX3208_LOFF_STATP0x12#defineADX3208_LOFF_STATN0x13#defineADX3208_GPIO0x14/*寄存器Deafult值寄存器地址10進制:寄存器值16進制:regaddr:0regdefaultValue:0eregaddr:1regdefaultValue:91regaddr:2regdefaultValue:e0regaddr:3regdefaultValue:40regaddr:4regdefaultValue:00regaddr:5regdefaultValue:10regaddr:6regdefaultValue:10regaddr:7regdefaultValue:10regaddr:8regdefaultValue:10regaddr:9regdefaultValue:10regaddr:10regdefaultValue:10regaddr:11regdefaultValue:10regaddr:12regdefaultValue:10regaddr:13regdefaultValue:00regaddr:14regdefaultValue:00regaddr:15regdefaultValue:00regaddr:16regdefaultValue:00regaddr:17regdefaultValue:00regaddr:18regdefaultValue:00regaddr:19regdefaultValue:00regaddr:20regdefaultValue:0fregaddr:21regdefaultValue:00regaddr:22regdefaultValue:00regaddr:23regdefaultValue:00*/#defineADX3208_ADC_Resolution_1616#defineADX3208_ADC_Resolution_2424//寫命令voidADX3208_Command(uint8_tCom);//獲取芯片的ID號uint8_tADX3208_GetChipID(void);//獲取寄存器值uint8_tADX3208_GetReg(uint8_tRreg);//獲取多個寄存器值voidADX3208_ReadMultiReg(uint8_tStartReg,uint8_tRegNum,uint8_t*Data);//寫入寄存器值void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房產抵押合同協(xié)議書房產抵押租賃合同3篇
- 二零二五年度帶車位房產銷售合同3篇
- 二零二五年度廣州市居民財產分割離婚協(xié)議書3篇
- 二零二五年度智慧城市SaaS解決方案服務協(xié)議2篇
- 自動控制大實驗課程設計
- 二零二五年度開業(yè)慶典活動互動游戲定制合同3篇
- 二零二五年度度假村合作投資開發(fā)房地產項目合同3篇
- 二零二五年度公積金貸款二手房交易合同模板3篇
- 早教老師工作職責范圍范文(2篇)
- 二零二五年度房地產廣告代理權益保護協(xié)議3篇
- 2023年成都東部集團有限公司招聘筆試題庫及答案解析
- 角點網格一.角點網格定義
- 聚酯合成反應動力學
- 自動控制原理全套課件
- 視頻監(jiān)控室值班記錄表
- 上??萍即髮W,面試
- 歌曲《梁?!泛喿V完整版
- 小學語文教研組期末考試質量分析
- 《五年級奧數總復習》精編課件
- 校園安全存在問題及對策
- 鉆井作業(yè)常見安全隱患
評論
0/150
提交評論