Ich habe ein Board designed, mit dem STM32F407 und einer DP83848 Phy.
Beide ICs sind via RMII miteinander verbunden. Am PHY Chip selbst ist
kein Oszillator dran, weil ich MCO vom uC verwenden wollte (hatte eine
ähnliche Geschichte mit einem STM32F107). Beim STM32F107 konnte man MCO
mit 50 MHz folgendermaßen laufen lassen:
1 | GPIO_ETH_MediaInterfaceConfig(GPIO_ETH_MediaInterface_RMII);
|
2 |
|
3 | /* Set PLL3 clock output to 50MHz (25MHz/5)) */
|
4 | RCC_PLL3Config(RCC_PLL3Mul_10);
|
5 | /* Enable PLL3 */
|
6 | RCC_PLL3Cmd(ENABLE);
|
7 | /* Wait till PLL3 is ready */
|
8 | while (RCC_GetFlagStatus(RCC_FLAG_PLL3RDY) == RESET)
|
9 | {}
|
10 | /* Get PLL3 clock on PA8 pin (MCO) */
|
11 | RCC_MCOConfig(RCC_MCO_PLL3CLK);
|
Beim STM32F407 habe ich folgendes Probiert:
1 | RCC_PLLConfig(RCC_PLLSource_HSE, 25,300,2,7);
|
2 | // Enable PLL
|
3 | RCC_PLLCmd(ENABLE);
|
4 | // Wait till PLL is ready
|
5 | while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {}
|
6 |
|
7 | // HSE clock selected to output on MCO pin(PA8)
|
8 | //RCC_MCO1Config(RCC_MCO1Source_HSE, 1);
|
9 | RCC_MCO1Config(RCC_MCO1Source_PLLCLK, RCC_MCO1Div_3);
|
Sysclock kommt vom einem 25MHz HSE Oszi und ist auf 150MHz eingestellt.
Weiß einer woran das liegt? Bzw. jemand schon probiert 50MHz am MCO1
rauszubekommen....