找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2714|回复: 1
打印 上一主题 下一主题
收起左侧

MSP430F149控制ADF4360-7程序+资料

[复制链接]
跳转到指定楼层
楼主
在应用ADF4360-7时找到的学习应用资料,用的是MSP430F149单片机。
资料包括
官方资料:芯片数据手册、应用手册、开发板资料等
原理图:ADF4360-7及控制部分原理图(Altium Designer Winter 09 格式和PDF格式),所需元件封装库等
控制程序:基于MSP430F149的控制程序及其他参考程序
单片机源程序如下:
  1. /***********************************************************************************************
  2. 文件:ADF4370.H
  3. 作者:沨
  4. 用途:集成锁相环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. 函数,该函数通过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. 该函数通过SPI端口从ADF4350中读取数据。
  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, 下载次数: 172)

123.png

ADF4360-7应用资料.rar

4.5 MB, 下载次数: 18, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:632612 发表于 2019-10-30 12:52 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表