標題: MSP430F149控制ADF4360-7程序+資料 [打印本頁]

作者: wenfeizd    時間: 2019-6-19 10:24
標題: MSP430F149控制ADF4360-7程序+資料
在應用ADF4360-7時找到的學習應用資料,用的是MSP430F149單片機。
資料包括
官方資料:芯片數(shù)據(jù)手冊、應用手冊、開發(fā)板資料等
原理圖:ADF4360-7及控制部分原理圖(Altium Designer Winter 09 格式和PDF格式),所需元件封裝庫等
控制程序:基于MSP430F149的控制程序及其他參考程序
單片機源程序如下:
  1. /***********************************************************************************************
  2. 文件:ADF4370.H
  3. 作者:沨
  4. 用途:集成鎖相環(huán)ADF4360-7控制程序
  5. MCU: MSP430F149 晶振:8MHz
  6. 編譯器:IAR Ror MSP430 5.10
  7. 硬  件:2011_10_06
  8. 說明:
  9. 日期:下午 02:56 2011-12-5
  10. ***********************************************************************************************/

  11. #define uchar unsigned char
  12. #define uint unsigned int

  13. #define        PLL_SET_CE()                P5OUT |= BIT0        //P5.0->CE
  14. #define        PLL_CLR_CE()                P5OUT &=~BIT0

  15. #define PLL_SET_DATA()                P5OUT |= BIT1        //P5.1->DATA
  16. #define PLL_CLR_DATA()                P5OUT &=~BIT1
  17. #define PLL_SET_DATA_OUT()        P5DIR |= BIT1
  18. #define PLL_SET_DATA_IN()        P5DIR &=~BIT1
  19. #define PLL_DATA_IN                 (P5IN & BIT1)

  20. #define        PLL_SET_SCL()                P5OUT |= BIT3        //P5.3->SCL
  21. #define        PLL_CLR_SCL()                P5OUT &=~BIT3

  22. #define PLL_SET_LE()                P5OUT |= BIT4        //P5.4->LE
  23. #define PLL_CLR_LE()                P5OUT &=~BIT4

  24. #define PLL_LD_IN                 (P5IN & BIT5)
  25. #define PLL_IO_SET                 P5DIR = 0xDB;                //PLL端口配置


  26. //===========================變量定義=======================================
  27. /*-------------------------------------400MHz---------------------------------------------
  28. ----------------------------------------------------------------------------------------*/
  29. unsigned char CONTROL_LATCH[3]                ={0x0F,0xF1,0x20};               
  30. unsigned char N_COUNTER_LATCH[3]        ={0x00,0x0A,0X02};
  31. unsigned char R_COUNTER_LATCH[3]        ={0x30,0x00,0x09};

  32. void delay (unsigned int length)
  33. {
  34.         while (length >0)
  35.             length--;
  36. }

  37. //--------------------------------------------------------------------------------
  38. void DelaymS(uint ms)
  39. {
  40.     uint i;
  41.     while(ms--)   
  42.    {
  43.      for(i=1;i<(uint)(8*143-2);i++)
  44.          ;
  45.    }   
  46. }
  47. //---------------------------------
  48. //void WriteToADF4350(unsigned char count,unsigned char *buf);
  49. //---------------------------------
  50. //Function that writes to the ADF4350 via the SPI port. 函數(shù),該函數(shù)通過SPI端口寫入ADF4350。
  51. //--------------------------------------------------------------------------------
  52. void WriteToADF4360(unsigned char count, unsigned char *buf)
  53. {
  54.         unsigned        char        ValueToWrite = 0;
  55.     unsigned        char        i = 0;
  56.         unsigned        char        j = 0;
  57.         
  58.         PLL_SET_DATA_OUT();
  59.         
  60.         delay(10);
  61.         PLL_CLR_SCL();
  62.         PLL_CLR_LE();
  63.         delay(10);

  64.         for(i=0;i<count;i++)
  65.          {
  66.                  ValueToWrite = *(buf + i);
  67.                 for(j=0; j<8; j++)
  68.                 {
  69.                         if(0x80 == (ValueToWrite & 0x80))
  70.                         {
  71.                                 PLL_SET_DATA();          //Send one to SDO pin
  72.                         }
  73.                         else
  74.                         {
  75.                                 PLL_CLR_DATA();          //Send zero to SDO pin
  76.                         }
  77.                         delay(10);
  78.                         PLL_SET_SCL();
  79.                         delay(10);
  80.                         ValueToWrite <<= 1;        //Rotate data
  81.                         PLL_CLR_SCL();
  82.                 }
  83.         }
  84.         PLL_CLR_DATA();
  85.         delay(10);
  86.         PLL_SET_LE();
  87.         delay(10);
  88.         PLL_CLR_LE();
  89. }


  90. //---------------------------------
  91. //void ReadFromADF4350(unsigned char count,unsigned char *buf)從ADF4350讀取
  92. //---------------------------------
  93. //Function that reads from the ADF4350 via the SPI port. 該函數(shù)通過SPI端口從ADF4350中讀取數(shù)據(jù)。
  94. //--------------------------------------------------------------------------------
  95. void ReadFromADF4360(unsigned char count, unsigned char *buf)
  96. {
  97.         unsigned        char        i = 0;
  98.         unsigned        char        j = 0;
  99.         unsigned        int          iTemp = 0;
  100.         unsigned        char          RotateData = 0;

  101.         PLL_SET_DATA_IN();
  102.         
  103.         delay(1);
  104.         PLL_CLR_SCL();
  105.         PLL_CLR_LE();
  106.         delay(1);

  107.         for(j=0; j<count; j++)
  108.         {
  109.                 for(i=0; i<8; i++)
  110.                 {
  111.                         RotateData <<= 1;                //Rotate data
  112.                         delay(1);
  113.                         iTemp = PLL_DATA_IN;                        //Read DATA of ADF4350
  114.                         PLL_SET_SCL();        
  115.                         if(iTemp)
  116.                         {
  117.                                 RotateData |= 1;        
  118.                         }
  119.                         delay(1);
  120.                         PLL_CLR_SCL();
  121.                 }
  122.                 *(buf + j)= RotateData;
  123.         }         
  124.         delay(1);
  125.         PLL_SET_LE();
  126.         delay(1);
  127.         PLL_CLR_LE();
  128. }

  129. void PLL_set_frq (void)
  130. {        DelaymS(20);
  131.           PLL_SET_CE();
  132.         WriteToADF4360(3,R_COUNTER_LATCH);        
  133.         WriteToADF4360(3,CONTROL_LATCH);                //
  134.         DelaymS(50);        //需大于10mS
  135.         WriteToADF4360(3,N_COUNTER_LATCH);                //
  136. }
復制代碼

123.png (6.79 KB, 下載次數(shù): 212)

123.png

ADF4360-7應用資料.rar

4.5 MB, 下載次數(shù): 18, 下載積分: 黑幣 -5


作者: chenjh2021    時間: 2019-10-30 12:52
謝謝樓主的分享




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1