1. 时钟驱动

AD14N / AD15N / AC104N / AD17N 支持动态设置系统HSB、LSB时钟,支持多种分频组合;

时钟驱动中限制着内置系统flash的spi时钟速度,SDK为兼容大多数flash,默认的spi时钟不超过60MHz;

最高系统时钟如下:

最高系统时钟 / CPU

AD14N / AC104N

AD15N

AD17N

AD18

HSB(系统时钟)

192MHz(超频)

160MHz

160MHz

160MHz

LSB

96MHz(超频)

80MHz

80MHz

96MHz

AD14/15/17以及AC104时钟相关函数:

void pll_sel(u32 pll_clock, _PLL_DIV pll_div, _PLL_B_DIV pll_b_div);
int clk_get(const char *name);

AD18时钟相关函数::

int clk_set(const char *name, int clk);
int clk_get(const char *name);

1.1. AD14N / AC104N 系统时钟超频说明

AD14N / AC104N支持最高192MHz的系统时钟,在运行大于160MHz系统时钟前需要提高系统内核电压,否则可能会导致运行异常;

支持192MHz时钟的内核电压,需要调用以下接口修改,需要在系统时钟初始化前调用:

VDC13_VOL_SEL(VDC13_VOL_SEL_140V);

SYSVDD_VOL_SEL(SYSVDD_VOL_SEL_129V);

系统时钟不超过

内核电压挡位

内置系统Flash

A0芯片外挂系统Flash

160mhz

默认值

支持

支持

192Mhz

1.29v

支持

支持

表 系统时钟支持情况

1.2. 内置系统flash spi时钟说明

当使用A0芯片时,系统Flash需要外挂,由于Flash的型号以及性能,加上PCB布线等情况的影响,不能预测系统Flash波特率运行在超过50Mhz、甚至是到96MHZ的具体情况;在此种情况下,客户如果需要系统Flash波特率运行在超过50Mhz,需要自行评估。

系统Flash波特率

内置系统Flash

A0芯片外挂系统Flash

“<=60Mhz”

支持

支持

“>=60mhz” & “<=96Mhz”

支持

不能直接支持

“>96MHZ”

不支持

不支持

表 系统Flash波特率支持情况

1.2.1. AD14N / AC104N SPI时钟限制

"AD14N / AC104N SPI时钟限制"

AD14N / AC104N SPI时钟限制

1.2.2. AD15N SPI时钟限制

"AD15N SPI时钟限制"

AD15N SPI时钟限制

1.2.3. AD17N SPI时钟限制

"AD17N SPI时钟限制"

AD17N SPI时钟限制


1.3. 时钟相关函数

1.3.1. 函数void pll_sel(u32 pll_clock, _PLL_DIV pll_div, _PLL_B_DIV pll_b_div)

此函数实现动态配置系统时钟源和分频,系统时钟配置关系如下:

sys_clk = pll_clock / pll_div / pll_b_div;

注:选择系统时钟时,优先调整二级分频 pll_b_div,无法满足所需要的时钟下再调整一级分频 pll_div!

AD17N的二级分频参数命名为hsb_div,枚举类型为_HSB_CLK_DIV,效果与其他芯片一致!

其中参数:

1. pll_clock:PLL时钟源
    ①、PLL_96M;
    ①、PLL_107M;
    ①、PLL_137M;
    ①、PLL_192M;
    ①、PLL_320M;
    ①、PLL_480M;
2. pll_div:PLL时钟一级分频
    ①、可选PLL_DIV1~PLL_DIV56,具体请参考_PLL_DIV枚举;
3. pll_b_div:PLL时钟二级分频
    ①、可选PLL_B_DIV1~PLL_B_DIV8,具体请参考_pll_b_div枚举;

1.3.2. 函数int clk_get(const char *name);

此函数实现获取各时钟域的频率,具体参数请查看函数内部。

1.3.3. 函数int clk_set(const char *name, int clk)

此函数用于AD18,实现动态配置系统时钟源和分频

其中参数:

1. name:时钟名,可配置以下时钟
    ①、sys:系统时钟,即hsb时钟;
    ①、lsb:低速时钟;
    ①、sfc: sfc时钟;
2. clk:时钟设置目标频率