Мастер синхронизации Dynami c Реконфигурация - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь переключить выходную частоту IP-адреса Clocking Wizard 6.0 с Xilinx во время выполнения, но Clocking Wizard не изменяет выходную частоту. Мастер синхронизации настроен на вывод тактового сигнала 8 МГц, который затем делится на 200, чтобы получить конечную выходную частоту 40 кГц.

enter image description here

И код для этого дизайна:

#include "xil_printf.h"
#include "xparameters.h"
#include "xil_io.h"

int main(void)
{
    xil_printf("Go...\n\r");
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x00, 0x0A);
    for(u32 i = 0x00; i < 0xFFFFFFF; i++) {};

    while(!(Xil_In32(XPAR_CLK_WIZ_0_BASEADDR + 0x04) & 0x01))
    {
        xil_printf("Not locked\n\r");
    }
    xil_printf("Locked\n\r");

    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x200, 0x01010700);
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x204, 0x00);
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x208, 0x0004000a);
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x20C, 0x00);
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x210, 0x0000C350);
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x25C, 0x03);

    while(!(Xil_In32(XPAR_CLK_WIZ_0_BASEADDR + 0x04) & 0x01))
    {
        xil_printf("Not locked\n\r");
    }
    xil_printf("Locked\n\r");
    Xil_Out32(XPAR_CLK_WIZ_0_BASEADDR + 0x25C, 0x02);

    while(1)
    {

    }

    return 0;
}

Я пытаюсь изменить параметр CLKFBOUT_MULT с 0x0A (по умолчанию) на 0x07, поэтому выходная частота мастера синхронизации изменится с 8 МГц до 5,6 МГц. Но выходная частота не меняется.

Что не так с кодом или с дизайном?

...