Перейти к содержанию
    

imx6q mdio

Доброго дня.

Пытаюсь поднять PHY на linux5.10

Добил все настройки - но чип не отвечает.

Встал осцилом на MDC/MDIO - есть запрос, ответа нет. Увидел обратную полярность MDC.  Вроде по спецификации MDIO  и на PHY, и в отрыве от PHY и от мастера полярность клоков однозначна - фиксация на переднем фронте. У меня на переднем смена состояния MDIO.

Не могу поменять полярность клоков MDC. В даташите на imx6q в настройках MDIO полярность/фазы не настраиваются. В GPIO тоже не нашел. Такое чувство, что где-то в траве бит на GPIO стоит, который тупо инвертирует выход MDC.

настройки портов в *.dts такие

        pinctrl_enet: enetgrp {
            fsl,pins = <
                MX6QDL_PAD_ENET_MDC__ENET_MDC            0x1b0b0        //ENET_MDC        (pin 44)
                MX6QDL_PAD_ENET_MDIO__ENET_MDIO            0x1b0b0        //ENET_MDIO        (pin 58)
                MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK    0x4001b0a8    //ENET_REF_CLK    (pin 56)
                MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0        0x1b0b0        //ENET_RXD0        (pin 26)
                MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1        0x1b0b0        //ENET_RXD1        (pin 46)
                MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN        0x1b0b0        //ENET_CRS_DV    (pin 48)
                MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER        0x1b0b0        //ENET_RX_ER    (pin 79)
                MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0        0x1b0b0        //ENET_TXD0        (pin 197)
                MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1        0x1b0b0        //ENET_TXD1        (pin 214)
                MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN        0x1b0b0        //ENET_TX_EN    (pin 47)
                MX6QDL_PAD_GPIO_19__ENET_TX_ER            0x1b0b0        //ENET_TX_ER    (pin 157)
            >;
        };

Что может быть ещё не так?

 

 

NewFile1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 30.06.2022 в 13:40, ericN сказал:

Увидел обратную полярность MDC.  Вроде по спецификации MDIO  и на PHY, и в отрыве от PHY и от мастера полярность клоков однозначна - фиксация на переднем фронте. У меня на переднем смена состояния MDIO.

точно на переднем фронте смена состояния? MDIO не должен меняться до восходящего клока на MDC минимум 10 нс, после восходящего клока 4 нс. растяните осциллограф.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/30/2022 at 11:40 AM, ericN said:
MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK

у вас тактирование PHY с процессора ? я не помню подробностей в чем разница, дело было почти 10 лет назад, но мы использовали gpio_16

MX6QDL_PAD_GPIO_16__ENET_REF_CLK

после консультаций на форуме NXP, у них еще какой-то аппнот был по поводу подключения PHY. Грепнул исходники - не вижу чтобы кто-то использовал ваш пин, вы по какому примеру делали подключение ?

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 30.06.2022 в 15:09, juvf сказал:

точно на переднем фронте смена состояния?

растянул. действительно.... после переднего фронта данные не меняются 10-15 нс.

 

В 30.06.2022 в 15:21, sasamy сказал:

у вас тактирование PHY с процессора ?

с процессора. физически не с MX6QDL_PAD_GPIO_16__ENET_REF_CLK, а с MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK. С аппнот и с тактирование разобрался. RMII. клоки в 50 МГц появляются на ENET_REF_CLK только на время инита fec/phy (т.е. во время обмена по MDIO клоки на ENET_REF_CLK есть, потом гаснут).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/30/2022 at 1:26 PM, ericN said:

физически не с MX6QDL_PAD_GPIO_16__ENET_REF_CLK, а с MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK. С аппнот и с тактирование разобрался.

не совсем

 

12.4 Generating the reference clock on chip
There are two possible pins that can either source or sink the reference clock: GPIO_16 and
RGMII_TX_CTL. The GPIO_16 pin is the preferred choice because it has the advantage of being in a
high voltage IO domain, which means it can be used at the standard 3.3 V IO voltage levels.
RGMII_TX_CTL should only be used if pin function loadings are such that GPIO_16 is unavailable.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 30.06.2022 в 15:39, sasamy сказал:

не совсем

выход RGMII_TX_CTL уровня 1,5В. Стоит преобразователь уровня из 1,5 в 3,3 и заводиться на PHY. Клоки в 50 МГц на PHY в 3,3 приходят нормально. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/30/2022 at 1:47 PM, ericN said:

Клоки в 50 МГц на PHY в 3,3 приходят нормально.

тогда кроме того что адрес PHY неправильный у меня больше мыслей нет, попробуйте не указывать его в DTS, чтобы ядро само сканировало шину, тут пример от нашего модуля - поменяйте пины на свои

Quote

&fec {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet_sodimm>;
    phy-mode = "rmii";
    phy-reset-gpios = <&gpio1 23 0>;
    fsl,magic-packet;
    status = "okay";
};

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...