2501_92016493 2025-05-11 10:10 采纳率: 0%
浏览 16

关于#c++#的问题:现象:使用全志t507芯片,输出rgb888,输出96MHz的时钟频率,会在95.6MHz.到96MHz之间波动

现象:使用全志t507芯片,输出rgb888,输出96MHz的时钟频率,会在95.6MHz.到96MHz之间波动。
导致输出到转换芯片之后,屏幕显示上会出现拖影现象。时钟分频次数是12次,24Mhz时钟源是OK的。

请问该怎么把这个时钟频率稳定在一个值内,不会出现抖动现象? 全志t507的SDK,内核Linux版本是Linux4.9版本,配置的时钟参数是通过应用层根据set_display 参数配置到内核 。有没有懂全志t507的可以解答一下,有偿。

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-05-11 10:10
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    你遇到的问题可能是由于时钟频率的不稳定性导致的。全志T507芯片的时钟频率在95.6MHz到96MHz之间波动可能会导致输出到转换芯片后的屏幕显示出现拖影现象。

    为了解决这个问题,你可以尝试以下几点:

    1. 时钟频率稳定性:你可以尝试使用时钟频率稳定性相关的寄存器来锁定时钟频率。例如,在全志T507芯片中,你可以使用 RCC_CFGR 寄存器来设置时钟频率的分频器和 PLL。
    2. 时钟分频:你可以尝试使用不同的时钟分频次数来锁定时钟频率。例如,如果你当前使用的时钟分频次数是12次,你可以尝试使用其他的时钟分频次数来锁定时钟频率。
    3. 时钟源选择:你可以尝试使用不同的时钟源来锁定时钟频率。例如,如果你当前使用的是外部时钟,你可以尝试使用内部时钟来锁定时钟频率。
    4. 时钟频率校准:你可以尝试使用时钟频率校准相关的寄存器来校准时钟频率。例如,在全志T507芯片中,你可以使用 RCC_PLLCFGR 寄存器来校准 PLL 的时钟频率。

    以下是一个简单的示例代码,演示如何使用 RCC_CFGR 寄存器来设置时钟频率的分频器和 PLL:

    #include <stdint.h>
    #include <stdbool.h>
    #include <rcc.h>
    
    int main(void) {
        // 设置时钟频率的分频器
        RCC_CFGR |= RCC_CFGR_PPRE1_DIV12; // 设置时钟频率的分频器为12次
    
        // 设置 PLL 的时钟频率
        RCC_PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE | // 设置 PLL 的时钟源为外部时钟
                      RCC_PLLCFGR_PLLM(12) | // 设置 PLL 的分频器为12次
                      RCC_PLLCFGR_PLLN(96) | // 设置 PLL 的时钟频率为96MHz
                      RCC_PLLCFGR_PLLP(2); // 设置 PLL 的时钟频率的分频器为2次
    
        // 启动 PLL
        RCC_PLLCmd(ENABLE);
    
        // 等待 PLL 启动完成
        while (!(RCC_PLLStatus() & RCC_PLL_STATUS_PLLLOCK));
    
        return 0;
    }
    

    请注意,这只是一个简单的示例代码,你需要根据你的具体情况进行修改和调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月11日