Leopoldius 0 23 мая, 2013 Опубликовано 23 мая, 2013 · Жалоба Добрый день. Озадачился я одновременной работой USB и Ethernet на сабже, в качестве PHY планирую использовать DP83848 в режиме RMII. Для этого ее необходимо тактировать от 50мгц клока и я так понимаю процессор тоже должен его получать, если верить ДШ. Проблема состоит в том что я не могу найти "правильную частоту". Что бы обеспечить условие 48МГц для USB и 50МГц для RMII. Единственный вариант, который приходит в голову тактировать от таймера встроенного в процессор. Их там все равно много и у меня есть свободные. Подскажите пожалуйста как выйти из этой ситуации. Вариант с MII выглядит очень даже интересно, но все же, много ног, жалко их... Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 23 мая, 2013 Опубликовано 23 мая, 2013 · Жалоба Для этого ее необходимо тактировать от 50мгц клока и я так понимаю процессор тоже должен его получать, если верить ДШ. Получать на вход REF_CLK, правильно, но где написано, что ядро и внутренние шины процессора должны работать от этой частоты? Даташит оговаривает только ограничение на минимальную частоту AHB - 25МГц Единственный вариант, который приходит в голову тактировать от таймера встроенного в процессор. И как вы собираетесь при частоте таймера, скажем 168 МГц получить ровные 50МГц на выходе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 23 мая, 2013 Опубликовано 23 мая, 2013 · Жалоба Запросто. К примеру для 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 одновременно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 23 мая, 2013 Опубликовано 23 мая, 2013 · Жалоба При чем тут кварц в 25МГц? В вашем примере входная частота первым делом делится на 25 (параметр PLL_M), дальше все частоты считаются из 1МГц * 240. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 24 мая, 2013 Опубликовано 24 мая, 2013 (изменено) · Жалоба Не понятно что Вы этим хотели сказать. USB 48 мгц есть, В STM есть лапка, которая может программироваться на вывод частоты генератора. Используя кварц в 25 мгц можем запрограммировать ее на 25 или 50 мГц. Как раз под MII или RMII. У меня так все и работает. А про 168Мгц. это Вы придумали. Автор темы про это не писал. Что не так ? Изменено 24 мая, 2013 пользователем vlad_new Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aoreh 0 24 мая, 2013 Опубликовано 24 мая, 2013 · Жалоба Не понятно что Вы этим хотели сказать. USB 48 мгц есть, В STM есть лапка, которая может программироваться на вывод частоты генератора. Используя кварц в 25 мгц можем запрограммировать ее на 25 или 50 мГц. Как раз под MII или RMII. У меня так все и работает. А про 168Мгц. это Вы придумали. Автор темы про это не писал. Что не так ? из вашего предыдущего поста - вы использовали STM32F207, там получить на MCO 25 из 25 кварца легко, а 50 - есть нюянсы из-за errata использую ksz8031, у него RMII, но внутренний умножеитель 25->50 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 24 мая, 2013 Опубликовано 24 мая, 2013 · Жалоба К примеру для STM32F207 это выглядит так: Короче кварц в 25 мГц спасёт USB и Ethernet одновременно. +1 для STM32F107 где-то также при кварце 25 мГц: PPL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz PPL1 configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 24 мая, 2013 Опубликовано 24 мая, 2013 · Жалоба А чо нельзя поприличнее PHY поставить и не заморачиваться с тактированием от проца? LAN8720 мы используем например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 24 мая, 2013 Опубликовано 24 мая, 2013 · Жалоба Не понятно что Вы этим хотели сказать. 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, процессор может работать на любой удобной частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 25 мая, 2013 Опубликовано 25 мая, 2013 · Жалоба Ткните меня носом в функцию удвоения HSE для вывода на MCO, в упор не вижу такого. Поделить можно, это да. А с чего Вы решили, что надо умножать. Там делить надо либо на 2 либо на 4. На счет дерганья в F2 - это правильное замечание. Пусть автор F4 ставит. Хотя, как я уже писал и на F2 все работает, даже если там фронт и подергивается. Видимо в phy модеме все равно частота делится и ему начихать на это дрожание. На осциллоскопе выглядело все очень стабильным и без дрожания. Правда я уменьшал полосу лап до 50 мгц, иначе модем не всегда запускался, хотя у меня дешевый реалтек стоит, а не депешка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 25 мая, 2013 Опубликовано 25 мая, 2013 · Жалоба А с чего Вы решили, что надо умножать. Там делить надо либо на 2 либо на 4. Потому что для DP83848 нужно 50МГц на вход. Вы что-то знаете, чего не знаю я, но говорить явно нехотите. Можете все-таки раскроете тайну? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 25 мая, 2013 Опубликовано 25 мая, 2013 · Жалоба чего то я не понимаю при общении мак контролера и фи клок 50 мегогерц генериться в одну сторону фи, в другую сторону контроллером мак. При этом клок должен быть синхронен со всякими дерганьями ножек, не уверен но вроде бы это надо чтобы ФИ отличало интерфейс по которому в него долбят. Неужели при таком раскладе 50 МГц можно сгенерить просто ножкой проца, а не специальной ножкой мак контроллера? у меня вообще клок идет с ФИ в проц, правда у меня марвел... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 26 мая, 2013 Опубликовано 26 мая, 2013 · Жалоба А почему нет? Типовая схема включения DP-шки - 50МГц генератор заведенный как на вход RMII_REF_CLK проца, так и на тактовый вход DP-шки. RMII интерфейс процессора работает в своем частотном домене (этом самом 50МГц), в нем же работает RMII интерфейс PHY. Связь с частотынм доменом AHB (на который накладывается только одно ограничение - не менее 25МГц) и проца в целом - забота MAC, где-то внутри него должны быть FIFO для пересечения разных частотных доменов, аналогично внутри PHY. При таком раскладе нет разницы, берутся эти 50МГц с генератора или с ножки процессора. С процессора 50МГц можно сформировать как я писал выше - используя для HSE кврац кратный 1МГц и задействовав вторую PLL. Видимо можно как-то еще, оттолкнувшись именно от 25МГц кварца, как пишет vlad_new, но детали от не раскрывает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 26 мая, 2013 Опубликовано 26 мая, 2013 · Жалоба Видимо можно как-то еще, оттолкнувшись именно от 25МГц кварца, как пишет vlad_new, но детали от не раскрывает А я то тут причем. Вопрос был быть или не быть! Ответ: - пациен скорее жив, чем мертв. Про подробный диагноз пациент не спрашивал. :) Да и все давно нарисовано. Берем схему кейловского демо борда с PHY и смотрим как там все тактируется. Там можно выбирать варианты тактирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 27 мая, 2013 Опубликовано 27 мая, 2013 · Жалоба А я то тут причем. Вопрос был быть или не быть! Ответ: - пациен скорее жив, чем мертв. Про подробный диагноз пациент не спрашивал. :) Да и все давно нарисовано. Берем схему кейловского демо борда с 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться