硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5205|回复: 2
收起左侧

[客户分享] STM32F407默认的PLLI2S配置

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
发表于 2015-4-18 16:18:05 | 显示全部楼层 |阅读模式
i2sclk = (uint32_t)(((HSE_VALUE  /  PLL_M) * PLLI2S_N ) / PLLI2S_R);
===========================================
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
 楼主| 发表于 2015-4-18 16:24:20 | 显示全部楼层
*=============================================================================
  *=============================================================================
  *                    Supported STM32F40xxx/41xxx devices
  *-----------------------------------------------------------------------------
  *        System Clock source                    | PLL (HSE)
  *-----------------------------------------------------------------------------
  *        SYSCLK(Hz)                             | 168000000
  *-----------------------------------------------------------------------------
  *        HCLK(Hz)                               | 168000000
  *-----------------------------------------------------------------------------
  *        AHB Prescaler                          | 1
  *-----------------------------------------------------------------------------
  *        APB1 Prescaler                         | 4
  *-----------------------------------------------------------------------------
  *        APB2 Prescaler                         | 2
  *-----------------------------------------------------------------------------
  *        HSE Frequency(Hz)                      | 25000000
  *-----------------------------------------------------------------------------
  *        PLL_M                                  | 25
  *-----------------------------------------------------------------------------
  *        PLL_N                                  | 336
  *-----------------------------------------------------------------------------
  *        PLL_P                                  | 2
  *-----------------------------------------------------------------------------
  *        PLL_Q                                  | 7
  *-----------------------------------------------------------------------------
  *        PLLI2S_N                               |   这里参数是192   系统上电后的默认值
  *-----------------------------------------------------------------------------
  *        PLLI2S_R                               | 这里参数是2         系统上电后的默认值
  *-----------------------------------------------------------------------------
  *        I2S input clock                        | 96MHZ                    系统上电后的默认值
  *-----------------------------------------------------------------------------
  *        VDD(V)                                 | 3.3
  *-----------------------------------------------------------------------------
  *        Main regulator output voltage          | Scale1 mode
  *-----------------------------------------------------------------------------
  *        Flash Latency(WS)                      | 5
  *-----------------------------------------------------------------------------
  *        Prefetch Buffer                        | ON
  *-----------------------------------------------------------------------------
  *        Instruction cache                      | ON
  *-----------------------------------------------------------------------------
  *        Data cache                             | ON
  *-----------------------------------------------------------------------------
  *        Require 48MHz for USB OTG FS,          | Disabled
  *        SDIO and RNG clock                     |
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
 楼主| 发表于 2015-4-18 17:05:18 | 显示全部楼层
使用库函数初始化效果不好,特别是播放192KHZ 24BIT音频时,速度很慢,问题是在于
I2S采样率配置有问题,库函数是计算出来的系数:

    /* I2S2 外设配置 */
    I2S_StructInit(&I2S_InitStructure);
    I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;                /* 配置I2S工作模式 */
    I2S_InitStructure.I2S_Standard = _usStandard;                /* 接口标准 */
    I2S_InitStructure.I2S_DataFormat = _usWordLen;                /* 数据格式,16bit */
    I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Enable;    /* 主时钟模式 */
    I2S_InitStructure.I2S_AudioFreq = _uiAudioFreq;                /* 音频采样频率 */
    I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
    I2S_Init(SPI2, &I2S_InitStructure);
===================================================
这种情况下可以使用参考手册里面这个表进行配置,误差率低一些:
1.jpg
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-19 08:31 , Processed in 0.262252 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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