|
Одновременная работа USB и Ethernet на STM32F407VG |
|
|
|
May 23 2013, 16:31
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
Цитата(Leopoldius @ May 23 2013, 14:39)  Для этого ее необходимо тактировать от 50мгц клока и я так понимаю процессор тоже должен его получать, если верить ДШ. Получать на вход REF_CLK, правильно, но где написано, что ядро и внутренние шины процессора должны работать от этой частоты? Даташит оговаривает только ограничение на минимальную частоту AHB - 25МГц Цитата(Leopoldius @ May 23 2013, 14:39)  Единственный вариант, который приходит в голову тактировать от таймера встроенного в процессор. И как вы собираетесь при частоте таймера, скажем 168 МГц получить ровные 50МГц на выходе?
|
|
|
|
|
May 23 2013, 18:21
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Запросто. К примеру для STM32F207 это выглядит так: Код *----------------------------------------------------------------------------- * System Clock source | PLL (HSE) *----------------------------------------------------------------------------- * SYSCLK(Hz) | 120000000 *----------------------------------------------------------------------------- * HCLK(Hz) | 120000000 *----------------------------------------------------------------------------- * AHB Prescaler | 1 *----------------------------------------------------------------------------- * APB1 Prescaler | 4 *----------------------------------------------------------------------------- * APB2 Prescaler | 2 *----------------------------------------------------------------------------- * HSE Frequency(Hz) | 25000000 *----------------------------------------------------------------------------- * PLL_M | 25 *----------------------------------------------------------------------------- * PLL_N | 240 *----------------------------------------------------------------------------- * PLL_P | 2 *----------------------------------------------------------------------------- * PLL_Q | 5 *----------------------------------------------------------------------------- * Flash Latency(WS) | 3 *----------------------------------------------------------------------------- * Prefetch Buffer | ON *----------------------------------------------------------------------------- * Instruction cache | ON *----------------------------------------------------------------------------- * Data cache | ON *----------------------------------------------------------------------------- * Require 48MHz for USB OTG FS, | Enabled * SDIO and RNG clock | *----------------------------------------------------------------------------- Для F4 надо просто пересчитать. Короче кварц в 25 мГц спосет USB и Ethernet одновременно.
|
|
|
|
|
May 24 2013, 05:57
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 16-06-11
Пользователь №: 65 731

|
Цитата(vlad_new @ May 24 2013, 05:54)  Не понятно что Вы этим хотели сказать. USB 48 мгц есть, В STM есть лапка, которая может программироваться на вывод частоты генератора. Используя кварц в 25 мгц можем запрограммировать ее на 25 или 50 мГц. Как раз под MII или RMII. У меня так все и работает. А про 168Мгц. это Вы придумали. Автор темы про это не писал. Что не так ? из вашего предыдущего поста - вы использовали STM32F207, там получить на MCO 25 из 25 кварца легко, а 50 - есть нюянсы из-за errata использую ksz8031, у него RMII, но внутренний умножеитель 25->50
|
|
|
|
|
May 24 2013, 06:50
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(vlad_new @ May 23 2013, 22:21)  К примеру для STM32F207 это выглядит так: Короче кварц в 25 мГц спасёт USB и Ethernet одновременно. +1 для STM32F107 где-то также при кварце 25 мГц: PPL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz PPL1 configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
May 24 2013, 09:03
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
Цитата(vlad_new @ May 24 2013, 06:54)  Не понятно что Вы этим хотели сказать. USB 48 мгц есть, В STM есть лапка, которая может программироваться на вывод частоты генератора. Используя кварц в 25 мгц можем запрограммировать ее на 25 или 50 мГц. Как раз под MII или RMII. У меня так все и работает. А про 168Мгц. это Вы придумали. Автор темы про это не писал. Что не так ? Да, мне тоже не понятно, что вы хотите сказать  Ткните меня носом в функцию удвоения HSE для вывода на MCO, в упор не вижу такого. Поделить можно, это да. Или вы предлагаете использовать вторую PLL, ту что I2S? Так для нее тоже 25МГц не нужно, т.к. формула генератора частоты имеет вид HSE / PLL_M * PLLI2S_N / PLLI2S_Q, где при HSE=25, имеем M=25,N=200,Q=4. Т.е. для получения 50МГц на MCO нужен любой кратный 1МГц кварц. Дальше ТС писал про подачу 50МГц с таймера. Надеюсь не нужно объяснять вам разницу между МСО и таймером? Попробуйте сгенерить 48МГц для USB и при этом получить с таймера 50МГц. И, как сказали выше, errata пишет нам для F2 Цитата When the clock source output by the microcontroller on the MCO pin is issued from the PLL, the MCO pin cannot be used to deliver a 50 MHz RMII clock input or a 25 MHz MII clock input to the ethernet PHY compliant with the long term jitter maximum value for 1.4 ns specified in the IEEE802.3 standard. для F4, правда, этого уже нет. Вот только, насколько я понял, вопрос был совсем в другом. На PHY идут 50МГц, взять их можно с внешнего генератора, и эти же 50МГц нужно подать на вход REF_CLK процессора. ТСа смутило то, что процессор вроде как должен работать внутри на этих 50МГц, а это не так, согласованием частот занимается контроллер Ethernet, процессор может работать на любой удобной частоте.
|
|
|
|
|
May 25 2013, 00:13
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата Ткните меня носом в функцию удвоения HSE для вывода на MCO, в упор не вижу такого. Поделить можно, это да. А с чего Вы решили, что надо умножать. Там делить надо либо на 2 либо на 4. На счет дерганья в F2 - это правильное замечание. Пусть автор F4 ставит. Хотя, как я уже писал и на F2 все работает, даже если там фронт и подергивается. Видимо в phy модеме все равно частота делится и ему начихать на это дрожание. На осциллоскопе выглядело все очень стабильным и без дрожания. Правда я уменьшал полосу лап до 50 мгц, иначе модем не всегда запускался, хотя у меня дешевый реалтек стоит, а не депешка.
|
|
|
|
|
May 25 2013, 16:44
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
Цитата(vlad_new @ May 25 2013, 04:13)  А с чего Вы решили, что надо умножать. Там делить надо либо на 2 либо на 4. Потому что для DP83848 нужно 50МГц на вход. Вы что-то знаете, чего не знаю я, но говорить явно нехотите. Можете все-таки раскроете тайну?
|
|
|
|
|
May 26 2013, 07:18
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
А почему нет? Типовая схема включения DP-шки - 50МГц генератор заведенный как на вход RMII_REF_CLK проца, так и на тактовый вход DP-шки. RMII интерфейс процессора работает в своем частотном домене (этом самом 50МГц), в нем же работает RMII интерфейс PHY. Связь с частотынм доменом AHB (на который накладывается только одно ограничение - не менее 25МГц) и проца в целом - забота MAC, где-то внутри него должны быть FIFO для пересечения разных частотных доменов, аналогично внутри PHY. При таком раскладе нет разницы, берутся эти 50МГц с генератора или с ножки процессора. С процессора 50МГц можно сформировать как я писал выше - используя для HSE кврац кратный 1МГц и задействовав вторую PLL. Видимо можно как-то еще, оттолкнувшись именно от 25МГц кварца, как пишет vlad_new, но детали от не раскрывает
|
|
|
|
|
May 26 2013, 20:52
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата Видимо можно как-то еще, оттолкнувшись именно от 25МГц кварца, как пишет vlad_new, но детали от не раскрывает А я то тут причем. Вопрос был быть или не быть! Ответ: - пациен скорее жив, чем мертв. Про подробный диагноз пациент не спрашивал.  Да и все давно нарисовано. Берем схему кейловского демо борда с PHY и смотрим как там все тактируется. Там можно выбирать варианты тактирования.
|
|
|
|
|
May 27 2013, 06:41
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
Цитата(vlad_new @ May 27 2013, 00:52)  А я то тут причем. Вопрос был быть или не быть! Ответ: - пациен скорее жив, чем мертв. Про подробный диагноз пациент не спрашивал.  Да и все давно нарисовано. Берем схему кейловского демо борда с PHY и смотрим как там все тактируется. Там можно выбирать варианты тактирования. Тот пациент ответ давно получил. Теперь я - пациент, и вот уже который день топаю ногами и требуют подробный диагноз В кейловской плате PHY тактируется с внешнего генератора 50МГц - никакого выбора нет. На STшной плате действительно можно выбрать MCO как источник, но там подается с MCO только 25MHz для MII. Для RMII написано буквально следующее: Цитата RMII mode configuration(*) (*) User have to provide the 50 MHz clock by soldering a 50 MHz oscillator (ref SM7745HEV-50.0M or equivalent) on the U3 footprint located under CN3 and also removing jumper on JP5. This oscillator is not provided with the board. Мне действительно очень интересно узнать, как можно удовлетворить потребность PHY в 50 мегагерцах не задействуя ни доп. генератор, ни вторую PLL.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|