AN3988 应用笔记 适用于 STM32F40x/41x 微控制器的时钟配置工具 简介 本应用笔记介绍了适用于 STM32F4xx 微控制器系列的时钟系统配置工具。 此工具的目的是帮助用户配置微控制器时钟,并将电源和 Flash 访问模式等参数考虑在内。 此配置工具在“STM32F4xx_Clock_Configuration_VX.Y.Z.xls”文件中实现,该文件随 STM32F4xx 标准外设库提供,并可以从 www.st.com 下载。 此工具支持 STM32F4xx 的下列功能: ● 配置系统时钟、HCLK 源和输出频率。 ● 配置 Flash 延迟(等待周期数取决于 HCLK 频率)。 ● 设置 PCLK1、PCLK2、TIMCLK(定时器时钟)、USBCLK 和 I2SCLK 频率。 ● 生成含有上述全部设置的可直接使用的 system_stm32f4xx.c 文件(STM32F4xx CMSIS Cortex-M4 器件外设访问层系统源文件)。 在本文档中,STM32F4xx_Clock_Configuration_VX.Y.Z.xls 称为“时钟工具”。 在使用时钟工具之前,必须阅读 STM32F4xx 微控制器参考手册 (RM0090)。本应用笔记不 是参考手册的替代。 此工具仅支持 A 版 STM32F4xx。 注: 2011 年 10 月 对于 VX.Y.Z,请参见工具版本,例如 V1.0.0 文档 ID 022298 第 1 版 1/21 www.st.com 目录 AN3988 目录 1 词汇表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 使用入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 2.1 软件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 STM32F4xx 微控制器的时钟方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 I2S 时钟发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 教程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1 向导模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.1 3.2 分步过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 专家模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4 已知限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2/21 文档 ID 022298 第 1 版 表格索引 AN3988 表格索引 表 1. 表 2. 表 3. 术语定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 等待周期数与 CPU 时钟 (HCLK) 频率对应关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 文档 ID 022298 第 1 版 3/21 3 图片索引 AN3988 图片索引 图 1. 图 2. 图 3. 图 4. 图 5. 图 6. 图 7. 图 8. 图 9. 图 10. 图 11. 图 12. 图 13. 4/21 时钟方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 I2S 时钟发生器架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 向导模式用户界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 HSE 值超出范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 VDD 超出范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 HCLK 错误消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 选择时钟源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 无可用配置错误. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 文件生成错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 专家模式用户界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 超出系统时钟频率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 超出 PLL 输入频率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 I2S 频率超出范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 文档 ID 022298 第 1 版 词汇表 AN3988 1 词汇表 表 1. 术语定义 术语 说明 HCLK AHB 时钟 PCLK1 APB1 时钟 PCLK2 APB2 时钟 TIMCLK 定时器时钟 USB OTG FS USB 全速 OTG FCPU Cortex-M4 时钟 Ext.Clock 外部时钟 VDD 电源 HSI 高速内部时钟 HSE 高速外部时钟 MCLK 主时钟 I2S 内部集成音频 Fs 采样频率 I2SCLK I2S 时钟 RNG 随机数发生器 SDIO 安全数字输入 /输出接口 文档 ID 022298 第 1 版 5/21 20 使用入门 2 AN3988 使用入门 本节介绍开始使用时钟工具所需的系统要求和步骤。 2.1 软件要求 要在 Windows® 操作系统中使用时钟工具,必须在至少有 256 MB RAM 的 PC 中安装最新 版本的 Windows,如 Windows XP、Vista 或 Windows 7。 在开始使用时钟工具前,确保已在计算机上安装了 Microsoft® Office,然后按照以下步骤操作: ● 从 www.st.com 下载最新版的适用于 STM32F4xx 产品的时钟工具。 ● 启用宏和 ActiveX 控件: Excel® 1997-2003 版 注: 1. 单击菜单栏中的工具 2. 3. 单击宏 单击安全性 4. 单击低(不建议使用) 如果未启用 ActiveX 控件,将显示一条警告消息,询问是否启用 ActiveX。此时,应单击“确 定”以启用 ActiveX 控件。 Excel 2007 版 注: 6/21 1. 单击 Microsoft Office 按钮,然后单击 Excel 选项。 2. 3. 依次单击信任中心、信任中心设置、宏设置。 单击启用所有宏(不推荐;可能会运行有潜在危险的代码)。 4. 依次单击信任中心、信任中心设置、ActiveX 设置。 5. 单击无限制启用所有控件并且不进行提示(不推荐;可能会运行有潜在危险的控件)。 6. 单击确定。 有关如何启用宏和 ActiveX 控件的更多信息,请参见 Microsoft Office 网站。 文档 ID 022298 第 1 版 使用入门 AN3988 2.2 硬件要求 2.2.1 简介 时钟工具可以为 STM32F4xx 微控制器配置系统时钟并生成 system_stm32f4xx.c 文件。 system_stm32f4xx.c 可以作为系统时钟配置文件的模板,用户可以轻松修改该文件以选择相 应的系统时钟频率和配置 CPU 对 Flash 的等待周期。 2.2.2 STM32F4xx 微控制器的时钟方案 本节介绍的系统时钟方案取决于电压要求 (VDD) 与系统时钟频率的关系以及对 Flash 的等待 周期与系统时钟频率的关系。 可以使用三种不同的时钟源来驱动系统时钟 (SYSCLK): 1. HSI (16 MHz) 振荡器时钟 2. HSE(4 MHz 到 26 MHz)振荡器时钟 3. 主锁相环 (PLL) 时钟,PLL 压控振荡器输入频率在 1 MHz 到 2 MHz 之间(推荐使用 2 MHz 以减小 PLL 抖动),有 M、N、P 和 Q 多个分频器。 除以下时钟外,所有外设时钟均源自 SYSCLK: 1. USB OTG FS 时钟 (48 MHz)、RNG 时钟 (48 MHz) 和 SDIO 时钟 (48 MHz),这些时钟 源自 PLL (PLL48CLK) 的特定输出。 2. I2S 时钟。要实现高品质的音频性能,I2S 时钟可源自特定的 PLL (PLLI2S) 或映射到 I2S_CKIN 引脚的外部时钟。 文档 ID 022298 第 1 版 7/21 20 使用入门 AN3988 图 1. 时钟方案 ⳟ䮼⢫ Փ㛑 /6, /6,5& N+] ,:'*&/. ࠄ⣀ゟ ⳟ䮼⢫ 57&6(/>@ 26&B,1 /6( /6(26& N+] 26&B287 57& Փ㛑 57&&/. ࠄ57& 6<6&/. 0&2 ࠄ +6(B57& /6( 0&2 ࠄ 䆒ᯊ䩳 Փ㛑 ࠄ 0+] +6,5& ᳔催0+] ᯊ䩳 Փ㛑 +6, +6, +6( 6: $+% 35(6& 3//&/. 6<6&/. ᳔催0+] 26&B287 26&B,1 䆒 ᯊ䩳Փ㛑 䆒 ᯊ䩳Փ㛑 LI$3%[SUHVF [ HOVH[ +6( 0+] +6(26& $3%[ 35(6& ҹ㔥 373ᯊ䩳 +&/. ࠄ$+%ᘏ㒓ǃݙḌǃ ᄬ఼ټ'0$ ࠄ&RUWH[㋏㒳 ᅮᯊ఼ )&/.&RUWH[ 㞾⬅䖤㸠ᯊ䩳 $3%[ 䆒ᯊ䩳 $3%[ᅮᯊ఼ ᯊ䩳 0 9&2 3 4 䆒 ᯊ䩳Փ㛑 3//&. 0+] ᯊ䩳 [1 3// 9&2 5 3 ,665& 4 [1 3//,6 5 䚼ᯊ䩳 ,6B&.,1 (7+B0,,B7;B&/.B0,, 3+<ҹ㔥 0+]ࠄ 0+] (7+B0,,B5;B &/.B0,, 86%3+< 0+]ࠄ 0+] 䆒 ᯊ䩳Փ㛑 3//,6&/. 䆒 ᯊ䩳Փ㛑 ,6ᯊ䩳 0$&7;&/. 6<6&)*B30&ᆘᄬ఼Ёⱘ0,,B50,,B6(/ࠄҹ㔥0$& 䆒 ᯊ䩳Փ㛑 0$&5;&/. 䆒 ᯊ䩳Փ㛑 27*B+6B6&/ 0$&50,,&/. 䆒 ᯊ䩳Փ㛑 86%+6 8/3,ᯊ䩳 DLF 8/21 文档 ID 022298 第 1 版 使用入门 AN3988 注: Flash 的等待周期(延迟)数根据 CPU (Cortex-M4) 的频率进行设置,并且与器件电压 (VDD) 间接相关(参见表 2:等待周期数与 CPU 时钟 (HCLK) 频率对应关系)。 表 2. 等待周期数与 CPU 时钟 (HCLK) 频率对应关系(1) fHCLK (MHz) 等待周期 (WS) (延迟) 电压范围 2.7 V - 3.6 V 电压范围 2.4 V - 2.7 V 电压范围 2.1 V - 2.4 V 电压范围 1.8 V - 2.1 V(2) 0 WS(1 个 CPU 周期) 0 <fHCLK≤ 30 0 <fHCLK ≤ 24 0 <fHCLK ≤ 18 0 < fHCLK ≤ 16 1 WS(2 个 CPU 周期) 30 <fHCLK ≤ 60 24 <fHCLK≤ 48 18 <fHCLK ≤ 36 16 <fHCLK ≤ 32 2 WS(3 个 CPU 周期) 60 <fHCLK ≤ 90 48 < fHCLK≤ 72 36 < fHCLK≤ 54 32 < fHCLK≤ 48 3 WS(4 个 CPU 周期) 90 <fHCLK ≤ 120 72 < fHCLK≤ 96 54 <fHCLK ≤ 72 48 < fHCLK≤ 64 4 WS(5 个 CPU 周期) 120 <fHCLK ≤ 150 96 < fHCLK≤ 120 72 < fHCLK≤ 90 64 < fHCLK≤ 80 5 WS(6 个 CPU 周期) 150 <fHCLK ≤ 168 120 <fHCLK ≤ 144 90 < fHCLK≤ 108 80 < fHCLK≤ 96 144 <fHCLK ≤ 168 108 < fHCLK≤ 120 96 < fHCLK≤ 112 120 <fHCLK ≤ 138 112 < fHCLK≤ 128 6 WS(7 个 CPU 周期) 7 WS(8 个 CPU 周期) 1. 当 PWR_CR 寄存器的 VOS 位置“0”时,fHCLK 的最大值为 144 MHz。 2. 如果 PDR_ON 设置为 VSS,则此值可降到 1.7 V。 2.2.3 I2S 时钟发生器 本节介绍与主时钟 MCLK(使能或禁止)、帧宽以及 I2S 外设时钟 (I2SCLK) 相关的 I2S 时 钟发生器。 图 2. I2S 时钟发生器架构 MCK I2SxCLK 0 8 位线性 分频器 + 整形阶段 2 分频 4 分频 0 CK 1 1 MCKOE MCKOE ODD I2SDIV[7:0] I2SMOD CHLEN 音频采样频率可能是 192 kHz、96 kHz、48 kHz、44.1 kHz、32 kHz、22.05 kHz、16 kHz、 11.025 kHz 或 8 kHz。为达到所需频率,需要根据以下公式对线性分压器 (DIV) 进行编程: 主时钟使能时(SPI_I2SPR 寄存器中的 MCKOE 位置 1): ● Fs = I2SxCLK/[(16*2)*((2*I2SDIV)+ODD)*8)](通道中数据帧的宽度为 16 位) ● Fs = I2SxCLK/[(32*2)*((2*I2SDIV)+ODD)*4)](通道中数据帧的宽度为 32 位) 其中 ODD 是预分频器的奇数因子。 文档 ID 022298 第 1 版 9/21 20 使用入门 AN3988 当主时钟已禁止(MCKOE 位清零)时: ● FS = I2SxCLK/[(16*2)*((2*I2SDIV)+ODD))](通道中数据帧的宽度为 16 位时) ● FS = I2SxCLK/[(32*2)*((2*I2SDIV)+ODD))](通道中数据帧的宽度为 32 位时) 此工具可执行 PLLI2S_N 和 PLLI2S_R 的最佳配置,保证采样频率误差最小且符合 I2S 参数 (帧宽度、MCKO 和采样频率)。 注: “system_stm32f4xx.c”文件中只配置 PLLI2S_N 和 PLLI2S_R。 此工具不配置 I2S 寄存器。 该工具还计算采样频率误差,作为输出文件“system_stm32f4xx.c”中未配置的 I2S 参数的 指标。 10/21 文档 ID 022298 第 1 版 教程 AN3988 3 教程 本节分步介绍如何使用时钟工具配置所有系统时钟和生成 system_stm32f4xx.c 文件。 可使用两种模式:向导和专家。在配置模式列表框中进行选择。 3.1 向导模式 此模式(默认模式)引导用户轻松快速地完成一系列步骤来获得所需的系统时钟配置。 图 3. 向导模式用户界面 注: “View(视图)”按钮用于激活或停用 xls 文件的全屏查看。 “Reset(复位)”按钮用于设置默认配置的系统时钟。 3.1.1 分步过程 1. 注: 如果应用中用到 HSE,则将其频率设置为介于最小值 4 MHz 和最大值 26 MHz 之间的值。 每次用户更改 HSE 振荡器频率值时,都必须修改 stm32f4xx.h 文件中 HSE_VALUE 的定义。 如果输入的频率超出范围,将显示一条如图 4 所示的错误消息。必须输入有效的频率。 文档 ID 022298 第 1 版 11/21 20 教程 图 4. AN3988 HSE 值超出范围 2. 输入介于 1.8 V 和 3.6 V 之间的 VDD 电源电压(参见图 3:向导模式用户界面)。如果 VDD 电压超出范围,将显示一条如图 5 所示的错误消息。 图 5. 3. 12/21 VDD 超出范围 配置主调压器输出电压: — 从列表框中选择 Scale1 mode(Scale1 模式),获取最大值为 168 MHz 的系统时 钟频率 (fHCLK)。 — 选择 Scale2 mode(Scale2 模式),获取最大值为 144 MHz 的系统时钟频率 (fHCLK)。 4. 配置 Prefetch buffer(预取缓冲器)、Instruction Cash(指令缓存)和 Data cash (数据缓存)(从列表框中选择 ON 或 OFF)。 5. 在此版本中,预取缓冲器始终为 OFF。 6. 指定是否需要 PLLI2S。如果需要,使能该时钟并按照步骤 9、10、11 和 12 进行操 作。否则,转到步骤 5。 7. 指定 USB OTG FS、RNG 或 SDIO 操作是否需要 48 MHz 时钟。如果需要,这将对 PLL 配置中的参数设置添加一个约束条件。如果不需要,则不会添加任何 USB 约束条件。 8. 设置所需的 HCLK 频率。最大 HCLK 频率取决于主调压器电压输出的 Scale1/Scale2 模 式(参见步骤 4)以及 VDD 电压(参见表 2)。如果输入的值高于最大 HCLK 频率,将 显示一条如图 6 所示的错误消息。 文档 ID 022298 第 1 版 教程 AN3988 图 6. 9. HCLK 错误消息 从列表框中选择 PCLK1 和 PCLK2 预分频器设置,获取所需的 PCLK1 和 PCLK2 频 率。TIMCLK 频率会根据 PCLK1 和 PCLK2 预分频器设置自动进行配置。 10. 参见步骤 8。 11. 从 I2S 源中选择 I2S 时钟源。如果选择外部时钟作为 I2S 外设的时钟源,则忽略步骤 10、 11 和 12。 12. 如果选择 PLLI2S 作为 I2S 时钟源,则选择帧宽度(16 位或 32 位)。 13. 指定是使能还是禁止主时钟(从列表中选择 ON/OFF)。 14. 从列表框中选择 Fs。Fs 值可以是 192 kHz、96 kHz、48 kHz、44.1 kHz、32 kHz、 22.05 kHz、16 kHz、11.025 kHz 和 8 kHz。 15. 单击 RUN(运行)按钮。 如果有多个时钟源可用,将通过一个消息框显示可选择的时钟源。(参见图 7)。选择 HSE、 HSI 或 PLL(源自 HSI 或 HSE)。 图 7. 选择时钟源 1. 使能 USB 和 / 或 I2S(在时钟工具中选中相应复选框)且所选 HCLK 频率不可用时,将弹出一个消息框显示 可供使用的最接近的 HCLK 时钟频率。 文档 ID 022298 第 1 版 13/21 20 教程 AN3988 图 8. 无可用配置错误 配置 Flash 延迟:运行应用程序后,等待周期数将自动配置为最佳值(最低可能值),可以 使用其它大于所选值的数值对此加以修改。 单击 RUN(运行)按钮显示进度条。 16. 最后,单击 Generate(生成)按钮自动生成 system_stm32f4xx.c 文件。 将在时钟工具所在的位置生成 system_stm32f4xx.c 文件。检查此文件,以确认系统时钟 SystemCoreClock 的值、HCLK 值、PCLK1 值和 PCLK2 值、Flash 访问模式以及 SetSysClock 函数中定义的其它参数。 必须将 system_stm32f4xx.c 文件添加到将要创建的工作项目。 如果未生成此文件,将显示一条如图 9 所示的错误消息。 图 9. 14/21 文件生成错误 文档 ID 022298 第 1 版 教程 AN3988 3.2 专家模式 此模式在配置设置方面具有更高的灵活性,但前提是用户确保配置正确。 图 10. 专家模式用户界面 “View(视图)”按钮用于激活或停用 xls 文件的全屏查看。 “Reset(复位)”按钮用于设置默认配置的系统时钟。 1. 按照以下步骤配置 SYSCLK 频率: a) — 如果应用中用到 HSE,则频率范围应设置为: 最小值 4 MHz。 — 最大值 26 MHz。 注:每 次 用 户 更 改 HSE 振 荡 器 频 率 值 时,都 必 须 修 改 stm32f4xx.h 文 件 中 HSE_VALUE 的定义。 如果输入的频率超出范围,将显示一条如图 4 所示的错误消息。必须输入有效的频率。 b) 输入介于 1.8 V 和 3.6 V 之间的 VDD 电源电压(参见图 10:专家模式用户界面)。 c) 配置主调压器输出电压: — 从列表框中选择 Scale1 mode(Scale1 模式),获取最大值为 168 MHz 的系统时 钟频率 (fHCLK)。 — 选择 Scale2 mode(Scale2 模式),获取最大值为 144 MHz 的系统时钟频率 (fHCLK)。 d) 配置 SYSCLK 源(PLL、HSE 或 HSI)。如果时钟源选择无效(HCLK 频率过高), 将显示一条如图 11 所示的错误消息。 文档 ID 022298 第 1 版 15/21 20 教程 AN3988 图 11. 16/21 超出系统时钟频率 e) 如果选择 PLL 作为 SYSCLK 源,则必须为 PLL 选择时钟源(HSE 或 HSI)。 f) 如果选择 PLL 作为 SYSCLK 源,应配置主 PLL(M) 的分频系数,以使 PLLVCO 频 率介于 1 MHz 与 2 MHz 之间。如果选择的分频系数无效,将显示一条如图 12 所示 的错误消息。如果 I2S 频率高于 192 MHz,将显示一条如图 13 所示的错误消息。 图 12. 超出 PLL 输入频率 图 13. I2S 频率超出范围 g) 使用 AHBPrescaler 列表框设置 HCLK 预分频器,获取所需的 HCLK 频率。 h) 从列表框中选择 PCLK1 预分频器设置,获取所需的 PCLK1 频率。TIMCLK 频率 会根据 PCLK1 预分频器设置自动进行配置。 i) 从列表框中选择 PCLK2 预分频器设置,获取所需的 PCLK2 频率。TIMCLK 频率 会根据 PCLK2 预分频器设置自动进行配置。 j) 配置 Flash 延迟:设置 HCLK 预分频器后,Flash 等待周期数将自动配置为最佳值 (最低可能值),可以使用其它大于所选值的数值对此加以修改。 k) 单击 Generate(生成)按钮生成时钟配置文件。 文档 ID 022298 第 1 版 教程 AN3988 2. 按照以下步骤配置 I2S 时钟频率: a) 如果需要 PLLI2S,则使能该时钟,然后按照以下步骤操作。 b) 如果选择外部时钟源作为 I2S 时钟源,则可以忽略以下步骤。 c) 如果选择 PLLI2S 作为 I2S 外设的时钟源,则配置 PLLI2S(N) 倍频系数。 d) 如果选择 PLLI2S 作为 I2S 外设的时钟源,则配置 PLLI2S(R) 分频系数。 e) 如果选择 PLLI2S 作为 I2S 时钟源,则选择帧宽度(16 位或 32 位)并指定是使能 还是禁止主时钟。 f) 从列表框中选择 Fs。Fs 值可以是 192 kHz、96 kHz、48 kHz、44.1 kHz、32 kHz、 22.05 kHz、16 kHz、11.025 kHz 和 8 kHz。 3. 配置 USB OTG FS、RNG 或 SDIO 时钟 4. 可选配置 配置 Prefetch buffer(预 取 缓 冲 器)、Instruction Cash(指 令 缓 存)和 Data cash (数据缓存)。 5. 生成 system_stm32f4xx.c 文件 为 USB OTG FS、SDIO 和 RNG 配置 PLL(Q) 分频系数。 单击 Generate(生成)按钮自动生成 system_stm32f4xx.c 文件。 将在时钟工具所在的位置生成 system_stm32f4xx.c 文件。检查此文件,以确认 SYSCLK “SystemCoreClock”的值、HCLK 值、PCLK1 值和 PCLK2 值、Flash 访问模式以及 “SetSysClock”函数中定义的其它参数。 必须将 system_stm32f4xx.c 文件添加到将要创建的工作项目。 文档 ID 022298 第 1 版 17/21 20 已知限制 4 AN3988 已知限制 本节介绍时钟配置工具的已知限制。 此工具不支持使用 HSE 外部时钟源(HSE 旁路)的配置。 18/21 文档 ID 022298 第 1 版 结论 AN3988 5 结论 本应用笔记介绍了用于 STM32F4xx 微控制器器件的时钟工具的使用方法。此工具可使用两 种配置模式生成源代码文件 system_stm32f4xx.c,以配置 STM32F4xx 的时钟系统。 共有两种模式。 第一种模式为向导模式,用户可在该模式下轻松快速地配置系统时钟。 第二种模式为专家模式。此模式在设置系统时钟配置方面具有更高的灵活性,但仍需符合所 有产品约束条件。 文档 ID 022298 第 1 版 19/21 20 版本历史 6 AN3988 版本历史 表 3. 20/21 文档版本历史 日期 版本 2011 年 10 月 10 日 1 变更 初始版本 文档 ID 022298 第 1 版 AN3988 请仔细阅读: 中文翻译仅为方便阅读之目的。该翻译也许不是对本文档最新版本的翻译,如有任何不同,以最新版本的英文原版文档为准。 本文档中信息的提供仅与 ST 产品有关。意法半导体公司及其子公司(“ST”)保留随时对本文档及本文所述产品与服务进行变更、更正、修改或改进 的权利,恕不另行通知。 所有 ST 产品均根据 ST 的销售条款出售。 买方自行负责对本文所述 ST 产品和服务的选择和使用,ST 概不承担与选择或使用本文所述ST 产品和服务相关的任何责任。 无论之前是否有过任何形式的表示,本文档不以任何方式对任何知识产权进行任何明示或默示的授权或许可。如果本文档任何部分涉及任何第三方产 品或服务,不应被视为 ST 授权使用此类第三方产品或服务,或许可其中的任何知识产权,或者被视为涉及以任何方式使用任何此类第三方产品或服务 或其中任何知识产权的保证。 除非在ST 的销售条款中另有说明,否则,ST 对 ST 产品的使用和 /或销售不做任何明示或默示的保证,包括但不限于有关适销性、适合特定用途(及其 依据任何司法管辖区的法律的对应情况),或侵犯任何专利、版权或其他知识产权的默示保证。 意法半导体的产品不得应用于武器。此外,意法半导体产品也不是为下列用途而设计并不得应用于下列用途:(A)对安全性有特别要求的应用,例 如,生命支持、主动植入设备或对产品功能安全有要求的系统;(B)航空应用;(C)汽车应用或汽车环境,且 / 或(D)航天应用或航天环境。如果 意法半导体产品不是为前述应用设计的,而采购商擅自将其用于前述应用,即使采购商向意法半导体发出了书面通知,采购商仍将独自承担因此而导 致的任何风险,意法半导体的产品设计规格明确指定的汽车、汽车安全或医疗工业领域专用产品除外。根据相关政府主管部门的规定,ESCC、QML 或 JAN正式认证产品适用于航天应用。 经销的ST产品如有不同于本文档中提出的声明和/或技术特点的规定,将立即导致ST针对本文所述ST产品或服务授予的任何保证失效,并且不应以任 何形式造成或扩大 ST 的任何责任。 ST 和ST 徽标是 ST在各个国家或地区的商标或注册商标。 本文档中的信息取代之前提供的所有信息。 ST 徽标是意法半导体公司的注册商标。其他所有名称是其各自所有者的财产。 © 2013 STMicroelectronics 保留所有权利 意法半导体集团公司 澳大利亚 - 比利时 - 巴西 - 加拿大 - 中国 - 捷克共和国 - 芬兰 - 法国 - 德国 - 中国香港 - 印度 - 以色列 - 意大利 - 日本 - 马来西亚 - 马耳他 - 摩洛哥 — 菲律宾 — 新加坡 - 西班牙 - 瑞典 - 瑞士 - 英国 - 美国 www.st.com 文档 ID 022298 第 1 版 21/21 21