hpdell 发表于 2017-12-9 14:00:36

请教下,stm32f7xx 的lcd与sai的时钟源是否相同 ?

请教下,stm32f7xx 的lcd与sai的时钟源是否相同 ?

sai 时钟配置如下:

u8 SAIA_SampleRate_Set(u32 samplerate)
{   
u8 i=0;
RCC_PeriphCLKInitTypeDef RCCSAI1_Sture;

for(i=0;i<(sizeof(SAI_PscTab)/10);i++)//看看改采样率是否可以支持
{
    if((samplerate/10) == SAI_PscTab)
      break;
}
if(i == (sizeof(SAI_PscTab)/10))
    return 1;//搜遍了也找不到

    /* Configure PLLSAI prescalers */
    /* PLLI2S_VCO: VCO_429M
    SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 429/2 = 214.5 Mhz
    SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 214.5/19 = 11.289 Mhz */

RCCSAI1_Sture.PeriphClockSelection = RCC_PERIPHCLK_SAI1;      //外设时钟源选择
RCCSAI1_Sture.Sai1ClockSelection   = RCC_SAI1CLKSOURCE_PLLSAI;
RCCSAI1_Sture.PLLSAI.PLLSAIN       = (u32)SAI_PscTab;    //设置PLLSAIN
RCCSAI1_Sture.PLLSAI.PLLSAIQ       = (u32)SAI_PscTab;    //设置PLLSAIQ
RCCSAI1_Sture.PLLSAIDivQ         = SAI_PscTab;         //设置PLLSAIDivQ   
HAL_RCCEx_PeriphCLKConfig(&RCCSAI1_Sture);                  //设置时钟

__HAL_SAI_DISABLE(&SAI1A_PlayHandler);                        //关闭SAI
SAI1A_PlayHandler.Init.AudioFrequency=samplerate;               //设置播放频率
HAL_SAI_Init(&SAI1A_PlayHandler);                               //初始化SAI
SAIA_DMA_Enable();                                          //开启SAI的DMA功能
__HAL_SAI_ENABLE(&SAI1A_PlayHandler);                           //开启SAI
return 0;
}



lcd 时钟配置如下:
static u8 LTDC_UserClkSet(u32 pllsain,
                           u32 pllsair,
                           u32 pllsaidivr )
{
        RCC_PeriphCLKInitTypeDef PeriphClkIniture;
       
        //LTDC输出像素时钟,需要根据自己所使用的LCD数据手册来配置!
PeriphClkIniture.PeriphClockSelection = RCC_PERIPHCLK_LTDC;        //LTDC时钟        
        PeriphClkIniture.PLLSAI.PLLSAIN       = pllsain;   
        PeriphClkIniture.PLLSAI.PLLSAIR       = pllsair;
        PeriphClkIniture.PLLSAIDivR         = pllsaidivr;
        if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkIniture)==HAL_OK) //配置像素时钟,这里配置为时钟为18.75MHZ
{
    return 0;   //成功
}
else
    return 1;//失败   
}




上述的两个时钟源都使用到

PLLSAI.PLLSAIN   
PLLSAI.PLLSAIQ
PLLSAIDivQ         


,他们在同时使用时是否会发生冲突啊 ?????







toofree 发表于 2018-2-12 09:32:39

本帖最后由 toofree 于 2018-2-12 09:37 编辑

给你上个图,看能说明问题不。图片放大看


意思就是LCD可以与SDI1是由同一个时钟模块PLLSAI1产生,但是输出的分频系数可以不同。
SDI1时钟输出也可以从SDI2的时钟模块产生。

无薪税绵 发表于 2018-2-12 14:22:20

toofree 发表于 2018-2-12 09:32
给你上个图,看能说明问题不。图片放大看




大神的回复,
真到位,一针见血了。:lol

toofree 发表于 2018-2-12 14:28:00

无薪税绵 发表于 2018-2-12 14:22
大神的回复,
真到位,一针见血了。

有好工具得用:)
各种MCU,我一上来就喜欢看时钟树
页: [1]
查看完整版本: 请教下,stm32f7xx 的lcd与sai的时钟源是否相同 ?