打印
[Atmel]

跑一下XMEGA-B1程序(13)进一步时钟配置

[复制链接]
991|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2016-1-7 19:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个例子展示了一个更进一步的使用系统时钟服务的例子。这个例子将主系统时钟配置到2MHz,使用内部RC振荡器校准2MHz内部32kHz振荡器。外设总线时钟将运行在同CPU时钟一样的频率,USB时钟将被配置成使用内部32MHz(通常)RC效验到48MHz带有USB启始帧作为效验参考。

配置为conf_clock.h

当在程序中加入sysclk_init();

时自动就配置了。

#define CONFIG_SYSCLK_SOURCE                SYSCLK_SRC_RC2MHZ
#define CONFIG_OSC_AUTOCAL_RC2MHZ_REF_OSC   OSC_ID_RC32KHZ
#define CONFIG_USBCLK_SOURCE                USBCLK_SRC_RCOSC
#define CONFIG_OSC_RC32_CAL                 48000000UL
#define CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC  OSC_ID_USBSOF

实际的配置为:

#ifndef CONF_CLOCK_H_INCLUDED
#define CONF_CLOCK_H_INCLUDED

#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_RC2MHZ
//#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_RC32MHZ
//#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_RC32KHZ
//#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_XOSC
//#define CONFIG_SYSCLK_SOURCE        SYSCLK_SRC_PLL
#define CONFIG_OSC_AUTOCAL_RC2MHZ_REF_OSC   OSC_ID_RC32KHZ

/* Fbus = Fsys / (2 ^ BUS_div) */
#define CONFIG_SYSCLK_PSADIV          SYSCLK_PSADIV_1
#define CONFIG_SYSCLK_PSBCDIV         SYSCLK_PSBCDIV_1_2

//#define CONFIG_PLL0_SOURCE          PLL_SRC_XOSC
#define CONFIG_PLL0_SOURCE          PLL_SRC_RC2MHZ
//#define CONFIG_PLL0_SOURCE          PLL_SRC_RC32MHZ

/* Fpll = (Fclk * PLL_mul) / PLL_div */
#define CONFIG_PLL0_MUL             (32000000UL / BOARD_XOSC_HZ)
#define CONFIG_PLL0_DIV             1

/* External oscillator frequency range */
/** 0.4 to 2 MHz frequency range */
//#define CONFIG_XOSC_RANGE XOSC_RANGE_04TO2
/** 2 to 9 MHz frequency range */
//#define CONFIG_XOSC_RANGE XOSC_RANGE_2TO9
/** 9 to 12 MHz frequency range */
//#define CONFIG_XOSC_RANGE XOSC_RANGE_9TO12
/** 12 to 16 MHz frequency range */
//#define CONFIG_XOSC_RANGE XOSC_RANGE_12TO16

/* DFLL autocalibration */
//#define CONFIG_OSC_AUTOCAL_RC2MHZ_REF_OSC  OSC_ID_RC32KHZ
//#define CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC OSC_ID_XOSC

/* The following example clock configuration definitions can be used in XMEGA
* devices that contain a USB controller. It configures the USB controller clock
* source to use the internal (nominally) 32MHz RC oscillator, up-calibrated to
* run at 48MHz via the periodic 1ms USB Start Of Frame packets sent by the
* host. The USB controller requires 48MHz for Full Speed operation, or 6MHz
* for USB Low Speed operation.
*
* Note that when the 32MHz RC oscillator is tuned to 48MHz, it cannot be used
* directly as the system clock source; it must either be prescaled down to a
* speed below the maximum operating frequency given in the datasheet, or an
* alternative clock source (e.g. the internal 2MHz RC Oscillator, multiplied
* to a higher frequency via the internal PLL module) must be used instead.
*/
#define CONFIG_USBCLK_SOURCE                USBCLK_SRC_RCOSC
#define CONFIG_OSC_RC32_CAL                 48000000UL
#define CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC  OSC_ID_USBSOF
//#define CONFIG_OSC_AUTOCAL          OSC_ID_RC32MHZ

/* Use to enable and select RTC clock source */
//#define CONFIG_RTC_SOURCE           SYSCLK_RTCSRC_ULP

#endif /* CONF_CLOCK_H_INCLUDED */

上述编译一下,通过说明没有问题

相关帖子

沙发
墨鱼腌肉| | 2020-1-8 15:08 | 只看该作者
楼主,如果使用外部时钟改怎样配置?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝