MCP2030在有源射頻標簽中的應用
D13~D15為命令類型,MCP2030根據命令類型確定后續(xù)的數據含義并執(zhí)行相應的操作。其中,0x07為寫數據命令,0x06為讀數據命令。如果是寫數據或讀數據命令,則后續(xù)D9~D12為寄存器地址,分別指定該命令所要操作的寄存器地址,D1~D8為寄存器數據內容,D0為該命令行校驗信息;如果不是寫數據或讀數據命令,則D0~D12的數據內容無意義。
為使MCP2030正常工作,系統(tǒng)上電復位時要對該器件進行正確的初始化配置。在此設定無線信號數字濾波序列為2 ms有2 ms無,使能通道自動選擇功能和解調信號輸出功能,初始化程序段如下:
void Init_MCP2030(void) {
ShiftOutSpi(0xe1,0x41);//reg0 111 0000 1010 0000 1
ShiftOutSpi(0xe2,0x01);//reg1 111 0001 0000 0000 1
ShiftOutSpi(0xe4,0x01);//reg2 111 0010 0000 0000 1
ShiftOutSpi(0xe6,0x01);//reg3 111 0011 0000 0000 1
ShiftOutSpi(0xe8,0x01);//reg4 111 0100 0000 0000 1
ShiftOutSpi(0xeb,0x81);//reg5 111 0101 1100 0000 1
ShiftOutSpi(0xed,0x3f);//reg6 111 0110 1001 1111 1
}
控制器向MCP2030發(fā)送數據的程序實現如下:
//數據預先存儲在OutData1和OutData2中
void ShiftOutSpi(unsigned char OutData1,unsigned char OutData2) {
unsigned char i;
SCCLK=0;
MCCS=0;
for(i=0;i8;i++) {
LFDATA=OutData1 0x80;
OutData1=OutData11;
SCCLK=1;
SCCLK=0;
}
for(i=0;i8;i++) {
LFDATA=OutData2 0x80;
OutData2=OutData21;
SCCLK=1;
SCCLK=0;
}
MCCS=1;
}
控制器從MCP2030接收數據的程序段如下:
//數據存儲在AFESpiInDataH和AFESpiInDataL中
void ShiftInSpi(void) {
unsigned char i;
SCCLK=0;
MCCS=0;
for(i=0;i8;i++) {
SCCLK=1;
AFESpiInDataH=AFESpiInDataH LFDATA;
AFESpiInDataH=AFESpiInDataH1;
SCCLK=0;
}
for(i=0;i8;i++) {
SCCLK=1;
AFESpiInDataL=AFESpiInDataL LFDATA;
AFESpiInDataL=AFESpiInDataL1;
SCCLK=0;
}
MCCS=1;
}
結語
本文針對MCP2030的特點具體介紹了其在有源射頻標簽中的應用。該器件不僅集成有3通道低頻接收電路以及3方向的磁場檢測接收電路,而且功耗低,具備多種節(jié)能工作模式,非常適合于其他要求低功耗無線激活的嵌入式系統(tǒng)應用。
評論