}
/*************************************************** name: rf_entry_rx input: none output: none
Describe: RF进入RX模式 Notice:
creat date: 2008-7-20 creator:
***************************************************/ void A7105_entry_rx(void) {
A7105_write_command(RF_CMD_RX); RF_TX_PA_OFF();
}
/*************************************************** FileName: rf_entry_tx input: none output: none
Describe: RF进入发射模式 Notice:
在进入发射状态时要改变载波频率
creat date: 2008-7-20 creator:
***************************************************/ void A7105_entry_tx(void)
{
A7105_write_command(RF_CMD_TX);
RF_TX_PA_ON();
}
/*************************************************** name: A7105_reset_chip input:
none
output: none
Describe: 软件复位A7105 Notice: creat date: 2009-5 creator:
***************************************************/ void A7105_reset_chip(void)
{
A7105_write_register(RF_REG_MODE,0x00); }
/*************************************************** name: A7105_reset_RX_fifo input:
none
36
// A7105芯片Reset output: none Describe: reset RX fifo Notice:
creat date: 2008-7-20 creator:
***************************************************/ void A7105_reset_RX_fifo(void) {
A7105_write_command(RF_CMD_RX_FIFO_RESET); }
/*************************************************** FileName: A7105_reset_TX_fifo input: output:
none none
Describe: reset TX fifo Notice: creat date: 2009-5 creator:
***************************************************/ void A7105_reset_TX_fifo(void) {
A7105_write_command(RF_CMD_TX_FIFO_RESET); }
/*************************************************** name: write_register input: 1.bits 写入寄存器的bit数 2.value 写寄存器的值 output: none
Describe: 写数据到RF内部的寄存器 Notice:
creat date: 2009-5 creator:
***************************************************/ void write_register(U8 bits,U8 value) {
U8 i = 0;
for(i=0; i if(value & 0x80) { RF_SDIO_HIGH(); } else { RF_SDIO_LOW(); 37 } RF_SCK_HIGH(); value <<= 0x01; RF_SCK_LOW(); } } /*************************************************** name: input: read_register none output: ret_byte Describe: 读取RF寄存器的值 Notice: 1.在调用该函数时一定要先将MCU与SDIO相连的pin设置为输入 2.在调用该函数前一定要先写入需要读的寄存器地址 2009-5 creat date: creator: ***************************************************/ U8 read_register(void) { U8 i = 0; U8 ret_byte = 0; RF_SDIO_INPUT(); for(i=0; i<0x08; i++) { ret_byte <<= 0x01; if(GET_RF_SDIO()) { ret_byte |= 0x01; } RF_SCK_HIGH(); RF_SCK_LOW(); } return ret_byte; } /*************************************************** name: input: A7105_write_command command: 写入到RF的命令 output: none Describe: 写命令到RF Notice: creat date: 2009-5 creator: ***************************************************/ void A7105_write_command(U8 command) { RF_SCS_LOW(); 38 write_register(0x04, command); RF_SCS_HIGH(); } /*************************************************** name: A7105_write_register input: 1. address 写寄存器的地址 2. value 写寄存器的值 output: none Describe: 写数据到RF寄存器 Notice: creat date: 2009-5 creator: ***************************************************/ void A7105_write_register(U8 address,U8 value) { RF_SCS_LOW(); address &= 0x7f; // write data register write_register(0x08,address); // write address write_register(0x08,value); // write data RF_SCS_HIGH(); } /*************************************************** name: A7105_read_register input: address 写入要读寄存器的地址 output: temp Describe: 从RF寄存器读数据 Notice: creat date: 2009-5 creator: ***************************************************/ U8 A7105_read_register(U8 address) { U8 temp = 0; RF_SCS_LOW(); address &= 0x7f; address |= 0x40; write_register(0x08,address); // RF_SDIO_INPUT(); temp = read_register(); RF_SCS_HIGH(); return temp; } /*************************************************** name: input: A7105_write_ID none 39 output: none Describe: 写入ID Notice: creat date: 2009-5 creator: ***************************************************/ void A7105_write_ID(void) { RF_SCS_LOW(); write_register(0x08,RF_REG_ID_DATA); write_register(0x08,RF_ID_CODE0); write_register(0x08,RF_ID_CODE1); write_register(0x08,RF_ID_CODE2); write_register(0x08,RF_ID_CODE3); RF_SCS_HIGH(); } /*************************************************** name: A7105_read_ID input: none output: none Describe: 从RF中读ID Notice: creat date: 2009-5 // write address // 写ID code creator: ***************************************************/ void A7105_read_ID(U8 *read_ptr) { U8 id_buff[4] = {0}; RF_SCS_LOW(); write_register(0x08,(RF_REG_ID_DATA | 0x40)); // 先写入要读的寄存器地址 RF_SDIO_INPUT(); *read_ptr++ = read_register(); *read_ptr++ = read_register(); *read_ptr++ = read_register(); *read_ptr++ = read_register(); RF_SCS_HIGH(); } /*************************************************** name: write_data_to_fifo input: send_cnt 写入的字节数 output: none Describe: 写数据到FIFO中 Notice: creat date: 2009-5 creator: 40