搜索
bottom↓
回复: 88

[求助]KE02外部8M晶振是如何设置FLL的输出为40MHZ的

[复制链接]

出0入0汤圆

发表于 2014-12-13 22:44:53 | 显示全部楼层 |阅读模式
本帖最后由 彼岸花开@ 于 2014-12-13 22:57 编辑

软件平台:KEIL5   代码:KE02_SC  
FRDM-KE02Z这个板子上,使用的是8M的外部晶振。 那么经过256分频之后是31.25KHZ 。那么FLL 的输入就是31.25Khz,此时经过1024次倍频输出的应当是32MHZ
我看KE02_SC例程中也是这么设置的。但是最后的BUSOUT输出确实20MHZ..也就是FLL的输出是40MHZ 。

如果外部是10MHZ的晶振。那么PLL 的输出可以为40MHZ
但是8MHZ确实32MHZ ..

有人回答是进行了1280次倍频,但是RM中并没有提及1280 。只有1024次倍频呀。
看使用PE也可以设置。现在不会使用PE .我想安装手册配置寄存器。也是可以配置出来的。

重述疑问点:为什么设置的PLL的输出为32MHZ .
而实际测量BUS_OUT 为20 MHZ 即PLL 的输出为40MHZ呢
  1. /********************************************************************/
  2. void sysinit (void)
  3. {
  4.         /*
  5.         /////////////////////////////////////////////////////////////////////////////////////////
  6.         // Peripheral Init
  7.         // --------------------------------------------------------------------------------------
  8.         /////////////////////////////////////////////////////////////////////////////////////////
  9.         */

  10. #if defined(BUS2CORE_CLOCK_1_2)
  11.   /* bus clock/flash clock is half of the core*/
  12.   SIM_BUSDIV |= 1;
  13. #endif

  14. #if        defined(SEE_DEFAULT_TRIM_VALUE)  
  15.   gwTrimValue = (ICS_C4 << 8) | ICS_C3;
  16. #endif
  17.   
  18. #if 0
  19.   /* If not trimmed, do trim first */
  20.    ICS_C3 =  ICS_TRIM_VALUE;
  21.    ICS_C4 = 1;
  22. #endif
  23.    
  24.    while(!(ICS_S & ICS_S_LOCK_MASK));
  25.   
  26.   /* Initialize the Pass/Fail counts to 0 */
  27.   global_pass_count = 0;
  28.   global_fail_count = 0;

  29. /* Enable SWD pin, RESET pin */
  30. /* NOTE: please make sure other register bits are also write-once and
  31.   * need add other bit mask here if needed.
  32.   */
  33.   SIM_SOPT = SIM_SOPT_SWDE_MASK | SIM_SOPT_RSTPE_MASK;

  34. #if defined(SPI0_PINREMAP)   
  35.   SIM_PINSEL |= SIM_PINSEL_SPI0PS_MASK;
  36. #endif        
  37.   
  38.   
  39.   /* output bus clock if enabled */
  40. #if defined(OUTPUT_BUSCLK)
  41.   SIM_SOPT |= SIM_SOPT_CLKOE_MASK;
  42. #endif


  43.   
  44. /* Initialize the internal clock module */
  45.   ICS_Init();

  46. /* make sure clocks to peripheral modules are enabled */
  47.   SIM_SCGC |= SIM_SCGC_UART0_MASK | SIM_SCGC_UART1_MASK | SIM_SCGC_UART2_MASK;
  48.   
  49. /* Initialize SCI for printing */
  50. UART_InitPrint();                        

  51. #if        defined(PRINT_SYS_LOG)
  52.    print_sys_log();
  53. #endif
  54. #if        defined(SEE_DEFAULT_TRIM_VALUE)  
  55.   printf("default trim value = %#4.4x\n",gwTrimValue);
  56. #endif   
  57. }
复制代码


  1. void ICS_Init(void)
  2. {
  3. #if defined(USE_FEE)  
  4. /* Initialize system clock to 16M with external 8M crystal*/
  5.   FEI_to_FEE();
  6. #elif        defined(USE_FBE_OSC)
  7.   FEI_to_FBE_OSC();  
  8. #elif        defined(USE_FEE_OSC)
  9.   FEI_to_FEE_OSC();   
  10. #endif  
  11. }
复制代码

  1. /*****************************************************************************//*!
  2.    +FUNCTION----------------------------------------------------------------
  3.    * @function name: FEI_to_FEE
  4.    *
  5.    * @brief change clock from FEI mode to FEE mode and divide clock by 2
  6.    *        
  7.    * @param  none
  8.    *
  9.    * @return none
  10.    *
  11.    * @ Pass/ Fail criteria: none
  12.    *****************************************************************************/
  13. void FEI_to_FEE(void)
  14. {
  15.         /* assume external crystal is 8Mhz or 4MHz
  16.          *
  17.          */
  18.         /* enable OSC with high gain, high range and select oscillator output as OSCOUT
  19.          *
  20.          */
  21.         OSC_CR = OSC_CR_OSCEN_MASK
  22.         | OSC_CR_OSCSTEN_MASK         /* enable stop */
  23. #if defined(CRYST_HIGH_GAIN)
  24.         |  OSC_CR_HGO_MASK                 /* Rs must be added and be large up to 200K */
  25. #endif
  26. #if  (EXT_CLK_CRYST >=4000)
  27.         | OSC_CR_RANGE_MASK
  28. #endif       
  29.         | OSC_CR_OSCOS_MASK;                /* for crystal only */
  30. #if defined(IAR)        
  31.         asm(
  32.                 "nop \n"
  33.                 "nop \n"
  34.         );
  35. #elif defined(__MWERKS__)
  36.         asm{
  37.                 nop
  38.                 nop
  39. };        
  40. #endif        
  41.         /* wait for OSC to be initialized
  42.          *
  43.          */
  44.         while(!(OSC_CR & OSC_CR_OSCINIT_MASK));
  45.        
  46.         /* divide down external clock frequency to be within 31.25K to 39.0625K
  47.          *
  48.          */

  49.   #if (EXT_CLK_CRYST == 8000)||        (EXT_CLK_CRYST == 10000)
  50.           /* 8MHz */
  51.          ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK) | ICS_C1_RDIV(3);        /* now the divided frequency is 8000/256 = 31.25K */
  52.   #elif (EXT_CLK_CRYST == 4000)
  53.           /* 4MHz */
  54.          ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK) | ICS_C1_RDIV(2);        /* now the divided frequency is 4000/128 = 31.25K */       
  55.   #elif (EXT_CLK_CRYST == 16000)       
  56.           /* 16MHz */
  57.          ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK) | ICS_C1_RDIV(4);        /* now the divided frequency is 16000/512 = 31.25K */
  58.          
  59.   #elif (EXT_CLK_CRYST == 20000)
  60.           /* 20MHz */
  61.           ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK) | ICS_C1_RDIV(4);        /* now the divided frequency is 20000/512 = 39.0625K */
  62.          
  63.   #elif (EXT_CLK_CRYST == 32)
  64.           ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK);
  65.   #else
  66.           #error "Error: crystal value not supported!\n";
  67.   #endif

  68.         /* change FLL reference clock to external clock */
  69.         ICS_C1 =  ICS_C1 & ~ICS_C1_IREFS_MASK;
  70.          
  71.        
  72.         /* wait for the reference clock to be changed to external */
  73. #if defined(IAR)        
  74.         asm(
  75.                 "nop \n"
  76.                 "nop \n"
  77.         );
  78. #elif defined(__MWERKS__)
  79.         asm{
  80.                 nop
  81.                 nop
  82. };        
  83. #endif        
  84.         while(ICS_S & ICS_S_IREFST_MASK);
  85.        
  86.         /* wait for FLL to lock */
  87.         while(!(ICS_S & ICS_S_LOCK_MASK));
  88.                
  89.         /* now FLL output clock is 31.25K*512*2 = 32MHz
  90.          *
  91.          */
  92.         if(((ICS_C2 & ICS_C2_BDIV_MASK)>>5) != 1)
  93.         {
  94.                 ICS_C2 = (ICS_C2 & ~(ICS_C2_BDIV_MASK)) | ICS_C2_BDIV(1);
  95.         }
  96.         /* now system/bus clock is the target frequency
  97.          *
  98.          */
  99.         /* clear Loss of lock sticky bit */
  100.         ICS_S |= ICS_S_LOLS_MASK;       
  101. }
复制代码


编辑原因:修改标题为40MHZ

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入4汤圆

发表于 2014-12-16 13:16:22 | 显示全部楼层
上图,一个是8MHz,一个是10MHz

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-12-16 13:46:51 | 显示全部楼层
1、问题经过了三天  终于在 tarzar 的帮助下解决了。。非常感谢各位的板子,大家共同进步。
2、分享一下出现这个问题的几个反面吧
        (1)、出现问题的根源,我想说,应当是我在看晶振的时候,没有看他的标号,SCH明明表的是 Y1 ,而我确视而不见,找到了Y2的那个。
                Y2的晶振是一个金色的。这也是我经常见到的。Y1是黑色的,第一次见到。。经验不足,有待总结与提高



        (2) 当发现BUS_OUT 是20MHZ的时候,我还对KE02的时钟配置不了解。。决定看KE02的RM。看了第三章 Chapter 3 Chip Configuration 第五章  Chapter 5Clock Distribution    Chapter 20 Internal Clock Source (ICS)
Chapter 21 Oscillator (OSC) 。。由于犯了第一个错误。以及程序中注释带来的影响,越发的感觉 8M的晶振怎么能够配置 BUS-CLK为20MHZ呢
         (3)程序中几个注释有问题的地方,让我走了一些弯路。 注释只能作为一种参考。
       
        (4) 没有意识到板子上会有两个晶振

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-13 22:57:10 | 显示全部楼层
额 楼主速度够快的啊  !刚收到板子  还在跟着你前面的贴在上手呢!

出0入0汤圆

发表于 2014-12-13 23:12:31 | 显示全部楼层
本帖最后由 zhangchaoying 于 2014-12-13 23:22 编辑

这个东西现在用的是外部晶振吗?内部木有时钟?

出0入0汤圆

 楼主| 发表于 2014-12-13 23:20:34 | 显示全部楼层
bi大痣 发表于 2014-12-13 22:57
额 楼主速度够快的啊  !刚收到板子  还在跟着你前面的贴在上手呢!

这个问题困扰好几天了。时钟算是研究了一点。看官方的代码困在这了

出0入0汤圆

 楼主| 发表于 2014-12-13 23:25:34 | 显示全部楼层
zhangchaoying 发表于 2014-12-13 23:12
这个东西现在用的是外部晶振吗?内部木有晶振?

研究官方的代码是使用的外部竞争 FEI_to_FEE();

中间有段话
  1.         /* now FLL output clock is 31.25K*512*2 = 32MHz
  2.          *
  3.          */
复制代码


das

但是
  1.         #define  BUS_CLK_HZ                20000000L
复制代码


我就疑惑了

出100入101汤圆

发表于 2014-12-13 23:27:29 | 显示全部楼层
本帖最后由 fengyunyu 于 2014-12-13 23:33 编辑
彼岸花开@ 发表于 2014-12-13 23:20
这个问题困扰好几天了。时钟算是研究了一点。看官方的代码困在这了



#if defined(USE_FEE)  
/* Initialize system clock to 16M with external 8M crystal*/
  FEI_to_FEE();

USE_FEE你有没有定义?

出0入0汤圆

 楼主| 发表于 2014-12-13 23:31:18 | 显示全部楼层
fengyunyu 发表于 2014-12-13 23:27
#if defined(USE_FEE)  
/* Initialize system clock to 16M with external 8M crystal*/
  FEI_to_FEE( ...
  1. #define USE_FEE                /* FEE clock mode */          
复制代码

出0入0汤圆

 楼主| 发表于 2014-12-14 09:53:30 | 显示全部楼层
大家有没有知道的呢,。求助呀。

出0入0汤圆

发表于 2014-12-14 10:12:24 | 显示全部楼层
不了解
建议你用PE,图形界面设置到40M, 再看PE生成的代码

另,好像总线时钟就是时钟模块输出的一半

出100入101汤圆

发表于 2014-12-14 10:28:37 | 显示全部楼层
LZ用什么方式测试到BUSOUT输出的是20M?另外建议LZ上传个完整的工程。

出0入0汤圆

发表于 2014-12-14 10:28:51 | 显示全部楼层
直接PE配,很简单就帮你搞定。

出0入0汤圆

发表于 2014-12-14 10:32:38 | 显示全部楼层
本帖最后由 ayaqby 于 2014-12-14 10:35 编辑

外部晶振不是10M么?FLL输出不是40M么? ICSOUTCLK为20M么?送的板子

出0入0汤圆

发表于 2014-12-14 10:34:13 | 显示全部楼层
难道FRDM-KE02Z不是一个版本么 ?

出0入0汤圆

 楼主| 发表于 2014-12-14 11:10:06 | 显示全部楼层
fengyunyu 发表于 2014-12-14 10:28
LZ用什么方式测试到BUSOUT输出的是20M?另外建议LZ上传个完整的工程。

PTH2输出。。。。

出0入0汤圆

 楼主| 发表于 2014-12-14 11:14:22 | 显示全部楼层
ayaqby 发表于 2014-12-14 10:32
外部晶振不是10M么?FLL输出不是40M么? ICSOUTCLK为20M么?送的板子

是送的板子。。但是板子上的确实是8Mhz.原理图是10Mhz

出100入101汤圆

发表于 2014-12-14 11:17:30 | 显示全部楼层

BUSOUT和PTH2是同一个管脚

出0入0汤圆

 楼主| 发表于 2014-12-14 11:19:27 | 显示全部楼层
浪里白条 发表于 2014-12-14 10:28
直接PE配,很简单就帮你搞定。

有没有PE入门的文档。看网站上那个几个。没看懂。

出0入0汤圆

发表于 2014-12-14 12:35:40 | 显示全部楼层
彼岸花开@ 发表于 2014-12-14 11:19
有没有PE入门的文档。看网站上那个几个。没看懂。

http://www.soku.com/search_video ... _processor%20Expert
看视频吧,我是看视频看懂的。

出0入0汤圆

发表于 2014-12-14 12:36:24 | 显示全部楼层
彼岸花开@ 发表于 2014-12-14 11:19
有没有PE入门的文档。看网站上那个几个。没看懂。

http://www.amobbs.com/forum.php? ... =processor%2BExpert
还有这个,原来版主发的这个帖子

出0入0汤圆

发表于 2014-12-14 13:49:54 | 显示全部楼层
老白好强大~

出0入4汤圆

发表于 2014-12-14 15:14:47 | 显示全部楼层
这是做不到的,除非能像内部RC振荡器有微调才可以。你先确定是使用内部晶振,还是外部晶振

出100入101汤圆

发表于 2014-12-14 15:18:44 | 显示全部楼层
按LZ描述的情况,只有等版主来给出最后答案了。

出0入0汤圆

 楼主| 发表于 2014-12-14 15:24:11 | 显示全部楼层
tarzar 发表于 2014-12-14 15:14
这是做不到的,除非能像内部RC振荡器有微调才可以。你先确定是使用内部晶振,还是外部晶振 ...






设置确实是使用外部晶振。
板载晶振 8Mhz

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-12-14 15:27:01 | 显示全部楼层
fengyunyu 发表于 2014-12-14 15:18
按LZ描述的情况,只有等版主来给出最后答案了。

版主周一才上班?这两天没见到呀。。这个问题不太好弄。。头文件文件设置是20Mhz。我测试也是20Mhz.但是程序确实16MHZ  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出100入101汤圆

发表于 2014-12-14 15:33:34 | 显示全部楼层
彼岸花开@ 发表于 2014-12-14 15:27
版主周一才上班?这两天没见到呀。。这个问题不太好弄。。头文件文件设置是20Mhz。我测试也是20Mhz.但是 ...


周一,版主就应该出现了。估计版主也觉得奇怪。

出0入0汤圆

 楼主| 发表于 2014-12-14 15:46:36 | 显示全部楼层
fengyunyu 发表于 2014-12-14 15:33
周一,版主就应该出现了。估计版主也觉得奇怪。

弄了几天时钟这块。自己倒是明白了时钟该怎么个配置。。
ICS  OSC 这几个模块也懂了很多。。。等版主、、

出0入4汤圆

发表于 2014-12-14 16:07:56 | 显示全部楼层
楼主,你的工程是IAR的吗?如果是上传上来,我帮忙看看

出0入0汤圆

 楼主| 发表于 2014-12-14 16:54:31 | 显示全部楼层
tarzar 发表于 2014-12-14 16:07
楼主,你的工程是IAR的吗?如果是上传上来,我帮忙看看

我用的是KEIL 。我看了看IAR 的工程代码是一样的。你可以看一下里边这个的代码 platinum

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-14 17:10:13 | 显示全部楼层
楼主用示波器来看了么,PTH2的输出时钟是多少呢 ?

出0入0汤圆

 楼主| 发表于 2014-12-14 17:21:41 | 显示全部楼层
ayaqby 发表于 2014-12-14 17:10
楼主用示波器来看了么,PTH2的输出时钟是多少呢 ?

示波器看了。。。


此外
  1. #if (EXT_CLK_CRYST == 8000)||        (EXT_CLK_CRYST == 10000)
  2.           /* 8MHz */
  3.          ICS_C1 = ICS_C1 & ~(ICS_C1_RDIV_MASK) | ICS_C1_RDIV(3);        /* now the divided frequency is 8000/256 = 31.25K */
复制代码

这段代表表示将(8M晶振或者10MHz的)  FLL的参考设置设置为31.25KHZ . 1024倍频后为32MHZ

  1. #if        defined(USE_FEI)
  2.         #define  BUS_CLK_HZ                10000000L
  3. #elif  (EXT_CLK_CRYST == 20000)
  4.            #define  BUS_CLK_HZ                20000000L
  5. #else   
  6.         #define  BUS_CLK_HZ                20000000L
  7. #endif
复制代码


USE_FEI没有定义。
EXT_CLK_CRYST == 10000


怎么个设置也不能够成为20Mhz的bus_clk_hz


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-14 17:27:25 | 显示全部楼层

如果是8M,根据分频系数,不可能分出39.0625K, FLL就不应该是40M,等版主吧,

出0入0汤圆

发表于 2014-12-14 17:35:17 | 显示全部楼层
EXT_CLK_CRYST 定义的是多少?

出0入0汤圆

发表于 2014-12-14 17:44:42 | 显示全部楼层
我擦, platinum工程下为什么没有看见main函数,难道是老娘眼花了?

出0入0汤圆

 楼主| 发表于 2014-12-14 17:58:28 | 显示全部楼层
浪里白条 发表于 2014-12-14 17:44
我擦, platinum工程下为什么没有看见main函数,难道是老娘眼花了?

我没有打开过,我都用工具建个GPIO工程来看的。

出0入0汤圆

发表于 2014-12-14 18:00:16 | 显示全部楼层
EXT_CLK_CRYST == 10000
这里,你为什么要定义成10M?

出0入0汤圆

发表于 2014-12-14 18:02:33 | 显示全部楼层
你外部晶振是8M 就应该定义成8000啊、

出0入0汤圆

 楼主| 发表于 2014-12-14 18:39:23 | 显示全部楼层
本帖最后由 彼岸花开@ 于 2014-12-14 18:43 编辑
浪里白条 发表于 2014-12-14 18:02
你外部晶振是8M 就应该定义成8000啊、


定义成8000000,还不是在一样的代码 。在选择RDIV那块。。。
8m和10m分频都是31.25。。最终pll也是32mhz呢

出0入4汤圆

发表于 2014-12-14 18:53:10 | 显示全部楼层
彼岸花开@ 发表于 2014-12-14 16:54
我用的是KEIL 。我看了看IAR 的工程代码是一样的。你可以看一下里边这个的代码 platinum
...

刚下了KEIL并安装完,且下了你上传的代码,打开里面KEIL有很多工程,你是用哪个工程啊?

出0入0汤圆

 楼主| 发表于 2014-12-14 18:54:59 | 显示全部楼层
tarzar 发表于 2014-12-14 18:53
刚下了KEIL并安装完,且下了你上传的代码,打开里面KEIL有很多工程,你是用哪个工程啊? ...

用那个工具生成一个gpio的工程。。。我是这么做的 。

出0入4汤圆

发表于 2014-12-14 18:56:40 | 显示全部楼层
彼岸花开@ 发表于 2014-12-14 16:54
我用的是KEIL 。我看了看IAR 的工程代码是一样的。你可以看一下里边这个的代码 platinum
...

找到了,你是指 platinum工程吗?

出0入0汤圆

 楼主| 发表于 2014-12-14 19:00:48 | 显示全部楼层
tarzar 发表于 2014-12-14 18:56
找到了,你是指 platinum工程吗?

你可以使用里边的那个建立工程的工具,建立一个工程,其实那个工程应当就是plat,只是那个工具该了该东西。。

出0入4汤圆

发表于 2014-12-14 19:02:36 | 显示全部楼层
楼主,你用make_new_project-sc_Keil工具生成的工程,是没有用到外部晶振的,默认用内部晶振,我在初始化都没有看到初始化ICS,楼主你确认一下,头文件虽然定义为外部,但实际还是用内部的,因为并没有对外部晶振进行配置。

出0入4汤圆

发表于 2014-12-14 19:06:09 | 显示全部楼层
本帖最后由 tarzar 于 2014-12-14 19:09 编辑

make_new_project-sc_Keilt自动建的工程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出100入101汤圆

发表于 2014-12-14 19:19:05 | 显示全部楼层
tarzar 发表于 2014-12-14 19:02
楼主,你用make_new_project-sc_Keil工具生成的工程,是没有用到外部晶振的,默认用内部晶振,我在初始化都 ...

“在初始化都没有看到初始化ICS”,LZ搞忘了?

出0入0汤圆

 楼主| 发表于 2014-12-14 19:21:01 | 显示全部楼层
tarzar 发表于 2014-12-14 19:06
make_new_project-sc_Keilt自动建的工程

启动文件里边有个SystemInit函数,顺着下去 就有配置了。

出0入0汤圆

 楼主| 发表于 2014-12-14 19:27:45 | 显示全部楼层
fengyunyu 发表于 2014-12-14 19:19
“在初始化都没有看到初始化ICS”,LZ搞忘了?

启动文件里边有被调用到,算不算初始化呢。。

出0入0汤圆

发表于 2014-12-14 19:35:55 | 显示全部楼层
tarzar 发表于 2014-12-14 19:02
楼主,你用make_new_project-sc_Keil工具生成的工程,是没有用到外部晶振的,默认用内部晶振,我在初始化都 ...

void FEI_to_FEE(void)
这个函数执行后就是使用外部时钟了呀。

出100入101汤圆

发表于 2014-12-15 09:28:09 | 显示全部楼层
看版主能否给出合理的解释。

出0入4汤圆

发表于 2014-12-15 09:46:34 | 显示全部楼层
我这边自动建的工程,怎么找不到有初始化ICS.为了方便讨论建议楼主还是单独把你的工程上传。

早上看了一下,KE02的FLL都是1024倍,而KE06才是1280倍,难道楼主的芯片是KE06?

出0入0汤圆

 楼主| 发表于 2014-12-15 09:53:00 | 显示全部楼层
tarzar 发表于 2014-12-15 09:46
我这边自动建的工程,怎么找不到有初始化ICS.为了方便讨论建议楼主还是单独把你的工程上传。

早上看了一下 ...

中午回去上传一下。芯片还真没怎么看过,应当是呀。。。common或者cpu分组里边有个sysinit.c的文件,里边有个void SystemInit(void)  里边有个ICS_Init函数。
或者您从启动文件里看看,

出0入0汤圆

 楼主| 发表于 2014-12-15 12:50:35 | 显示全部楼层
tarzar 发表于 2014-12-15 09:46
我这边自动建的工程,怎么找不到有初始化ICS.为了方便讨论建议楼主还是单独把你的工程上传。

早上看了一下 ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2014-12-15 13:37:34 | 显示全部楼层
看了启动代码里,确实先调用SystemInit再去调用sysinit,昨晚我还在纳闷怎么时钟都不用初始化,就可以打印日记。
楼主你这个问题,得等版主来帮你了,
呼叫版主!

出0入0汤圆

发表于 2014-12-15 15:20:35 | 显示全部楼层
我及得你的这个问题,不单单在这个帖子中提过吧,我先看看,稍后回复你

出0入0汤圆

发表于 2014-12-15 15:57:54 | 显示全部楼层
本帖最后由 FSL_TICS_ZP 于 2014-12-15 16:10 编辑

我认同你的看法,我当时也很奇怪,板子确实表明使用的是8Mhz的晶振啊,但是在FRDM-KE02的原理图上,
我看到的晶振居然变成了10Mhz,我想确认一下你的FRDM-KE02版本的原理图是否跟我的一致。
我的FRDM-KE02版本为:
REV  A
SCH:REV A2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-12-15 16:06:29 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-12-15 15:57
我认同你的看法,我当时也很奇怪,板子确实表明使用的是8Mhz的晶振啊,但是在FRDM-KE02的原理图上,
我看到 ...

我是在官网下载的,版本我现在没法看,晚上给你吧。,但是原理图上确实是10M的晶振。

出0入0汤圆

发表于 2014-12-15 16:10:38 | 显示全部楼层
彼岸花开@ 发表于 2014-12-15 16:06
我是在官网下载的,版本我现在没法看,晚上给你吧。,但是原理图上确实是10M的晶振。 ...

Ok,好的。

出0入0汤圆

 楼主| 发表于 2014-12-15 22:44:23 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-16 11:14:04 | 显示全部楼层

你上传的原理上标记的晶振也是10M的。

出0入0汤圆

 楼主| 发表于 2014-12-16 11:31:59 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-12-16 11:14
你上传的原理上标记的晶振也是10M的。

是的。。有8M的原理图?有没有相应的代码

出0入4汤圆

发表于 2014-12-16 11:45:03 | 显示全部楼层
之前收到本坛兑的板子还没来及用,今天有时间早上把它搭起来,现在可以仿真测试了,下午再研究一下这时钟到底是怎么回事,

出0入0汤圆

发表于 2014-12-16 11:57:10 | 显示全部楼层
彼岸花开@ 发表于 2014-12-16 11:31
是的。。有8M的原理图?有没有相应的代码

我用示波器测了一下,晶振本身确实是8M的,但是晶振电路输入到XTAL的波形却是10MHz.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-16 12:28:10 | 显示全部楼层
这晶振也太牛掰了,求详情

出100入101汤圆

发表于 2014-12-16 12:37:55 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-12-16 11:57
我用示波器测了一下,晶振本身确实是8M的,但是晶振电路输入到XTAL的波形却是10MHz.
...

这样的话,这算是该款开发板的一个BUG了。

出0入0汤圆

 楼主| 发表于 2014-12-16 12:48:52 | 显示全部楼层
fengyunyu 发表于 2014-12-16 12:37
这样的话,这算是该款开发板的一个BUG了。

8M 的和10M价格有没有区别  。。有的话,以后买个8M的当10M用哈

出0入0汤圆

 楼主| 发表于 2014-12-16 13:07:16 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-12-16 11:57
我用示波器测了一下,晶振本身确实是8M的,但是晶振电路输入到XTAL的波形却是10MHz.
...

图片挂了哈。。
既然这么的话。就相当于对10Mhz就行操作了。


图中这句话实际上是对10Mhz进行分频 即10M/256 = 39.0625Khz 。这样BUS_OUT 就呢刚刚刚满足20MHZ的要求了。。

在使用中,可以默认外部是10MHZ的晶振哈。


还是比较好奇。怎么8MHZ变成10MHZ了呢。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出100入101汤圆

发表于 2014-12-16 13:11:32 | 显示全部楼层
彼岸花开@ 发表于 2014-12-16 12:48
8M 的和10M价格有没有区别  。。有的话,以后买个8M的当10M用哈

价格没区别。LZ发现了这么大个bug,FSL要奖励点什么才过得去。

出0入4汤圆

发表于 2014-12-16 13:13:46 | 显示全部楼层
找到问题了,完全是乌龙事件,开发板上有两个晶振一个8M供OPENSDA,一个10供KE02Z64

出0入0汤圆

 楼主| 发表于 2014-12-16 13:15:33 | 显示全部楼层
tarzar 发表于 2014-12-16 13:13
找到问题了,完全是乌龙事件,开发板上有两个晶振一个8M供OPENSDA,一个10供KE02Z64 ...

那个在哪?

出100入101汤圆

发表于 2014-12-16 13:16:01 | 显示全部楼层
tarzar 发表于 2014-12-16 13:13
找到问题了,完全是乌龙事件,开发板上有两个晶振一个8M供OPENSDA,一个10供KE02Z64 ...

这貌似和版主的回复”我用示波器测了一下,晶振本身确实是8M的,但是晶振电路输入到XTAL的波形却是10MHz.“有不同

出0入0汤圆

 楼主| 发表于 2014-12-16 13:19:18 | 显示全部楼层
tarzar 发表于 2014-12-16 13:16
上图,一个是8MHz,一个是10MHz

。。怎么这么样。。还有俩晶振,一个还是黑色的。。 。。程序写的8M分频。。我就看到一个金黄色的8M晶振,,

下次好好看电路图。。谢谢找到了问题。

出0入4汤圆

发表于 2014-12-16 13:20:30 | 显示全部楼层
中午还特意在公司的电脑装了keil5.12,正要按楼主提供的工程仿真,再认真看一下原理图和实物板,才发现有两个晶振。等版主来确认一下,应该就可以结贴了吧

出0入4汤圆

发表于 2014-12-16 13:25:25 | 显示全部楼层
楼主,你的这个问题我持续关注两天,
本为抱着可以有什么新发现,因为KE02的ICS我之前花了很多时间研究过,感觉是不可能出现这种问题的,
所以前面我才很肯定说外部8MHz不可能倍频到40MHz的。

出0入0汤圆

 楼主| 发表于 2014-12-16 13:28:00 | 显示全部楼层
tarzar 发表于 2014-12-16 13:25
楼主,你的这个问题我持续关注两天,
本为抱着可以有什么新发现,因为KE02的ICS我之前花了很多时间研究过, ...

我能力有待提高、

出100入101汤圆

发表于 2014-12-16 13:28:40 | 显示全部楼层
看来版主也犯了一个低级错误。或者是卖关子!

出0入4汤圆

发表于 2014-12-16 13:29:46 | 显示全部楼层

共同进步, ,我也还在学习中。

出0入4汤圆

发表于 2014-12-16 13:31:15 | 显示全部楼层
对了,顺便问一下,不知道这开发板有没有PCB文件啊?官网上好像只有SCH

出0入0汤圆

 楼主| 发表于 2014-12-16 13:32:17 | 显示全部楼层
fengyunyu 发表于 2014-12-16 13:28
看来版主也犯了一个低级错误。或者是卖关子!

应当是让我发的那个8M晶振晶振给迷惑了。。就没有意识到还有一个晶振。。或者说大家经常见的是金色的那个,而不是黑色的那个晶振。
问题来了:金色8MHZ那个和黑色的10MHZ有什么区别呢

出0入0汤圆

 楼主| 发表于 2014-12-16 13:32:45 | 显示全部楼层
tarzar 发表于 2014-12-16 13:31
对了,顺便问一下,不知道这开发板有没有PCB文件啊?官网上好像只有SCH

没看到PCB文件。。。

出0入0汤圆

发表于 2014-12-16 13:40:56 | 显示全部楼层
彼岸花开@ 发表于 2014-12-16 13:19
。。怎么这么样。。还有俩晶振,一个还是黑色的。。 。。程序写的8M分频。。我 ...

我也看到啊,那个Y2晶振太显眼啊,让人先入为主啊!

出0入0汤圆

发表于 2014-12-16 13:41:51 | 显示全部楼层
tarzar 发表于 2014-12-16 13:31
对了,顺便问一下,不知道这开发板有没有PCB文件啊?官网上好像只有SCH

没有PCB文件提供。

出0入0汤圆

发表于 2014-12-16 13:47:00 | 显示全部楼层
fengyunyu 发表于 2014-12-16 12:37
这样的话,这算是该款开发板的一个BUG了。

不是BUG,一个先入为主的概念导致了问题的发送,因为板子上有两个晶振,一个8M,一个10M,
由于8M晶振是金色的,很显眼,是我们想当然认为它就是KE02的晶振,而其实它是K20的晶振,而另个
10M的晶振才是KE02的晶振。

出0入0汤圆

发表于 2014-12-16 13:48:24 | 显示全部楼层
彼岸花开@ 发表于 2014-12-16 13:46
1、问题经过了三天  终于在 tarzar 的帮助下解决了。。非常感谢各位的板子,大家共同进步。
...

这个问题,我以前也遇到过,但过太久啊,有点忘了,抱歉哦。

出0入0汤圆

 楼主| 发表于 2014-12-16 13:48:56 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-12-16 13:47
不是BUG,一个先入为主的概念导致了问题的发送,因为板子上有两个晶振,一个8M,一个10M,
由于8M晶振是 ...

“先入为主”有时候确实比较难办,,修改一下标题吧。。可以结贴了。

出0入4汤圆

发表于 2014-12-16 13:52:59 | 显示全部楼层
本帖最后由 tarzar 于 2014-12-16 13:54 编辑

哈哈,这叫“惯性误导”,这个词是我自己想的。
上次我也是因为这种习惯性误导,被KE02的GPIO卡住

出0入0汤圆

发表于 2014-12-16 14:02:41 | 显示全部楼层
彼岸花开@ 发表于 2014-12-16 13:48
“先入为主”有时候确实比较难办,,修改一下标题吧。。可以结贴了。

OK,好的。

出0入0汤圆

 楼主| 发表于 2014-12-16 14:09:56 | 显示全部楼层
tarzar 发表于 2014-12-16 13:52
哈哈,这叫“惯性误导”,这个词是我自己想的。
上次我也是因为这种习惯性误导,被KE02的GPIO卡住 ...

这个词不错,借用了哈。。GPIO有点奇葩。。。这么弄寄存器里,真心不太好弄,每次都需要查在哪,需要自己封装一下。

出0入0汤圆

发表于 2014-12-16 14:10:13 | 显示全部楼层
这个贴要顶,可以让后面的人少犯错误,FAE有空的时候做个整理的文档放出来吧,长犯的错误啥的  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-30 22:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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