本人最近看一本《ARM9嵌入式技术及Linux高级实践教程》第五章 基本接口实验
的内容有些疑惑。
void changeclockdivider(int hdvin, int pdivn){
// hdvin,pdivn FCLK:HCLK:PCLK
// 0,0 1:1:1
// 0,1 1:1:2
// 1,0 1:2:2
// 1,1 1:2:4
rCLKDIVN = (hdivn < <1)|pdivn;
if(hdivn)
MMU_SetAsyncBusMode();
else
MMU_SetFastBusMode();
}
以上函数是配置APB总线时钟和AHB总线时钟,内部时钟PCLK作为UART的时钟。
我猜hdvin,pdvin分别是设置APB,AHB得。但后边的FCLK:HCLK:PCLK是什么意思呢?
这是基于ARM的
------解决方案--------------------
分频比
------解决方案--------------------
需要看芯片的技术手册
------解决方案--------------------
hdvin,pdvin用来设置FCLK:HCLK:PCLK三个频率的比例,
APB总线时钟频率称为PCLK
AHB总线时钟频率称为HCLK
“1,1 1:2:4”表示FCLK:HCLK:PCLK= 1: 1/2 : 1/4
比如HCLK=200MHz,则HCLK=100MHz,PCLK=50MHz
------解决方案--------------------
就是分频比