⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf.lst

📁 单片机与a7105组成无线收发程序2.4G多通道
💻 LST
📖 第 1 页 / 共 3 页
字号:
 284   1      
 285   1      }
 286          
 287          
 288          /****************************************************************
 289          name:           A7105_config_chip
 290          input:          none
 291          output:         none
 292          describe:       配置A7105
 293          notice:
 294          creat date:     2008-7-20
 295          creator:        dengyihong
 296          ****************************************************************/
 297          void A7105_config_chip(void)
 298          {
 299   1          U8 i = 0;
 300   1      
C51 COMPILER V7.06   RF                                                                    10/29/2008 11:22:42 PAGE 6   

 301   1          // 0x00 mode register, for reset 
 302   1          // 0x05 fifo data register 
 303   1          // 0x06 id code register 
 304   1          // 0x23 IF calibration II, only read 
 305   1          // 0x32 filter test register 
 306   1      
 307   1              if(System_Mode)
 308   1              {
 309   2              A7105_write_register(1,0xc2);                           // direct mode
 310   2                      for(i=0x02; i<=0x04; i++)
 311   2              {
 312   3                      A7105_write_register(i,A7105_Default_Par[i]);
 313   3              }
 314   2                      /*
 315   2                  for(i=0x07; i<=0x13; i++)
 316   2              {
 317   2                      A7105_write_register(i,A7105_Default_Par[i]);
 318   2              }
 319   2                      */
 320   2                      for(i=0x07; i<0x0e; i++)
 321   2                      {
 322   3                              A7105_write_register(i,A7105_Default_Par[i]);
 323   3                      }
 324   2      
 325   2                      A7105_write_register(0x0e,Rf_Rate_Tab[Rf_Rate_Cnt]);            // set data rate
 326   2      
 327   2                      for(i=0x0f; i<=0x13; i++)
 328   2                      {
 329   3                              A7105_write_register(i,A7105_Default_Par[i]);           
 330   3                      }
 331   2      
 332   2                      A7105_write_register(0x14,0x06);                                                        // close TX modulation
 333   2      
 334   2                  for(i=0x15; i<=0x22; i++)
 335   2              {
 336   3                      A7105_write_register(i,A7105_Default_Par[i]);
 337   3              }
 338   2              }
 339   1              else
 340   1              {
 341   2              for(i=0x01; i<=0x04; i++)
 342   2              {
 343   3                      A7105_write_register(i,A7105_Default_Par[i]);
 344   3              }
 345   2      
 346   2                      for(i=0x07; i<0x0e; i++)
 347   2                      {
 348   3                              A7105_write_register(i,A7105_Default_Par[i]);
 349   3                      }
 350   2      
 351   2                      A7105_write_register(0x0e,Rf_Rate_Tab[Rf_Rate_Cnt]);            // set data rate
 352   2      
 353   2                      for(i=0x0f; i<=0x22; i++)
 354   2                      {
 355   3                      A7105_write_register(i,A7105_Default_Par[i]);                   
 356   3                      }
 357   2                      /*
 358   2                  for(i=0x07; i<=0x22; i++)
 359   2              {
 360   2                      A7105_write_register(i,A7105_Default_Par[i]);
 361   2              }
 362   2                      */
C51 COMPILER V7.06   RF                                                                    10/29/2008 11:22:42 PAGE 7   

 363   2              }
 364   1              for (i=0x24; i<=0x31; i++)
 365   1          {
 366   2              A7105_write_register(i,A7105_Default_Par[i]);
 367   2          }
 368   1      }
 369          
 370          /****************************************************************
 371          name:           set_rf_io
 372          input:          none
 373          output:         none
 374          describe:       上电时设置RF的I/O口方向及状态
 375          notice:
 376          creat date:     2008-7-20
 377          creator:        dengyihong
 378          ****************************************************************/
 379          void set_rf_io(void)
 380          {       
 381   1          RF_SCK_LOW();
 382   1          RF_SDIO_LOW();
 383   1          RF_SCS_HIGH();
 384   1              RF_TX_PA_OFF();
 385   1              RF_GPIO1_INPUT();         
 386   1      }
 387          
 388          /*******************************************************
 389          name:           A7105_calibration
 390          input:          none
 391          output:
 392          describe:       校验A7105 
 393          notice:         1. RF 上电后一定要调用该程序对VCO进行校验
 394                                  2. 校验时需在 stby 状态
 395          creat date:     2008-7-20
 396          creator:        dengyihong
 397          ********************************************************/
 398          void A7105_calibration(void)
 399          {
 400   1          U8 temp = 0;        
 401   1              
 402   1          // standby状态下校准IF 
 403   1          A7105_entry_stby();
 404   1          A7105_write_register(RF_REG_CALIBRATION,0x01);
 405   1          do
 406   1          {
 407   2              temp = A7105_read_register(RF_REG_CALIBRATION);
 408   2              temp &= 0x01;
 409   2          }while(temp);
 410   1              
 411   1          temp = A7105_read_register(RF_REG_IF_CALIBRATION1);
 412   1          temp &= 0x10;
 413   1              
 414   1          if(temp)
 415   1          {
 416   2              // 校准出错 
 417   2          }
 418   1              
 419   1          // anual vco current band 3,vco band 1 
 420   1          A7105_write_register(RF_REG_VCO_CURRENT_CAL,0x13);
 421   1          A7105_write_register(RF_REG_VCO_BAND_CAL1,0x09);
 422   1              
 423   1          A7105_entry_stby();
 424   1      }
C51 COMPILER V7.06   RF                                                                    10/29/2008 11:22:42 PAGE 8   

 425          
 426          /***************************************************
 427          name:           A7105_entry_stby
 428          input:          none
 429          output:         none
 430          Describe:       RF进入等待模式 
 431          Notice: 
 432          creat date:     2008-7-20
 433          creator:        dengyihong      
 434          ***************************************************/
 435          void A7105_entry_stby(void)
 436          {
 437   1          A7105_write_command(RF_CMD_STBY); 
 438   1          delay_2us(100);
 439   1      }
 440          
 441          /***************************************************
 442          name:           A7105_setup_wpll
 443          input:          none
 444          output:         none
 445          Describe:               
 446          Notice: 
 447          creat date: 2008-7-20
 448          creator:        dengyihong      
 449          ***************************************************/
 450          void A7105_setup_wpll(void)
 451          {
 452   1          A7105_write_command(RF_CMD_PLL);
 453   1      }
 454          
 455          /***************************************************
 456          name:           A7105_setup_channel
 457          input:      channel RF工作通道
 458          output:     none
 459          Describe:   设置RF的工作频率
 460          Notice: 
 461          creat date: 2008-8-7
 462          creator:    dengyihong  
 463          ***************************************************/
 464          void A7105_setup_channel(U8 channel)
 465          {
 466   1          A7105_write_register(RF_REG_PLL1,channel);
 467   1      }
 468          
 469          
 470          /***************************************************
 471          name:           A7105_setup_data_rate
 472          input:          data_rate_cnt 要写入A7105的速率参数
 473          output:         none
 474          Describe:       设置A7105的速率 
 475          Notice:
 476          creat date: 2008-8-8
 477          creator:        dengyihong              
 478          ***************************************************/
 479          void A7105_setup_data_rate(U8 data_rate_cnt)
 480          {
 481   1              A7105_write_register(RF_REG_DATA_RATE,data_rate_cnt);
 482   1      }
 483          
 484          
 485          /***************************************************
 486          name:           rf_entry_rx
C51 COMPILER V7.06   RF                                                                    10/29/2008 11:22:42 PAGE 9   

 487          input:          none
 488          output:         none
 489          Describe:       RF进入RX模式 
 490          Notice:
 491          creat date: 2008-7-20
 492          creator:        dengyihong              
 493          ***************************************************/
 494          void A7105_entry_rx(void)
 495          {
 496   1          A7105_write_command(RF_CMD_RX); 
 497   1          RF_TX_PA_OFF();
 498   1      }
 499          
 500          /***************************************************
 501          FileName:       rf_entry_tx
 502          input:          none
 503          output:         none
 504          Describe:       RF进入发射模式 
 505          Notice:         在进入发射状态时要改变载波频率
 506          creat date: 2008-7-20
 507          creator:        dengyihong              
 508          ***************************************************/
 509          void A7105_entry_tx(void)
 510          {
 511   1          A7105_write_command(RF_CMD_TX); 
 512   1              RF_TX_PA_ON();
 513   1      }
 514          
 515          
 516          /***************************************************
 517          name:           A7105_reset_chip
 518          input:          none
 519          output:         none
 520          Describe:       软件复位A7105   
 521          Notice:
 522          creat date:     2008-7-20
 523          creator:        dengyihong              
 524          ***************************************************/
 525          void A7105_reset_chip(void)
 526          {       
 527   1          A7105_write_register(RF_REG_MODE,0x00);            // A7105芯片Reset 
 528   1      }
 529          
 530          
 531          /***************************************************
 532          name:           A7105_reset_RX_fifo
 533          input:          none
 534          output:         none
 535          Describe:       reset RX fifo
 536          Notice:
 537          creat date: 2008-7-20
 538          creator:        dengyihong              
 539          ***************************************************/
 540          void A7105_reset_RX_fifo(void)
 541          {
 542   1          A7105_write_command(RF_CMD_RX_FIFO_RESET);  
 543   1      }
 544          
 545          
 546          /***************************************************
 547          FileName:       A7105_reset_TX_fifo
 548          input:          none
C51 COMPILER V7.06   RF                                                                    10/29/2008 11:22:42 PAGE 10  

 549          output:         none
 550          Describe:       reset TX fifo
 551          Notice:
 552          creat date:     2008-7-20
 553          creator:        dengyihong              
 554          ***************************************************/
 555          void A7105_reset_TX_fifo(void)
 556          {
 557   1          A7105_write_command(RF_CMD_TX_FIFO_RESET);          
 558   1      }
 559          
 560          
 561          /***************************************************
 562          name:           write_register
 563          input:          1.bits     写入寄存器的bit数
 564                                  2.value    写寄存器的值
 565          output:         none
 566          Describe:       写数据到RF内部的寄存器
 567          Notice:
 568          creat date:     2008-7-20
 569          creator:        dengyihong      
 570          ***************************************************/
 571          void write_register(U8 bits,U8 value)
 572          {
 573   1          U8 i = 0;
 574   1              
 575   1          for(i=0; i<bits; i++)
 576   1          {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -