S17 1 May 16, 2023 Posted May 16, 2023 · Report post On 5/11/2023 at 10:02 PM, makc said: Разберёмся. Благодарю! Хотелось бы, чтоб файл был восстановлен! Quote Share this post Link to post Share on other sites More sharing options...
makc 314 May 17, 2023 Posted May 17, 2023 · Report post 10 часов назад, S17 сказал: Благодарю! Хотелось бы, чтоб файл был восстановлен! /pub/DOC/Datasheets/Motorcomm Quote Share this post Link to post Share on other sites More sharing options...
S17 1 May 18, 2023 Posted May 18, 2023 · Report post On 5/17/2023 at 8:21 AM, makc said: /pub/DOC/Datasheets/Motorcomm Спасибо! Quote Share this post Link to post Share on other sites More sharing options...
Рашид 0 June 15, 2023 Posted June 15, 2023 · Report post В 22.03.2023 в 17:47, Hevmal сказал: Запустил устройство на данном чипе. Контроллер STM32F407. Базовый проект - эхо чипа DP83848. Есть несколько доработок относительно проекта на DP83848. 1. Регистры PHY_MICR и PHY_MISR имеют другие адреса //#define PHY_MICR ((uint16_t)0x11U) /*!< MII Interrupt Control Register */ //#define PHY_MISR ((uint16_t)0x12U) /*!< MII Interrupt Status and Misc. Control Register */ #define PHY_MICR ((uint16_t)0x10U) /*!< MII Interrupt Control Register */ #define PHY_MISR ((uint16_t)0x11U) /*!< MII Interrupt Status and Misc. Control Register */ 2. В файле xxx_hal_eth.c необходимо изменить проверку статуса скорости /* Configure the MAC with the speed fixed by the auto-negotiation process */ if((phyreg & PHY_SPEED_STATUS) == PHY_SPEED_STATUS) { /* Set Ethernet speed to 10M following the auto-negotiation */ //(heth->Init).Speed = ETH_SPEED_10M; (heth->Init).Speed = ETH_SPEED_100M; } else { /* Set Ethernet speed to 100M following the auto-negotiation */ //(heth->Init).Speed = ETH_SPEED_100M; (heth->Init).Speed = ETH_SPEED_10M; } HAL_Delay(PHY_RESET_DELAY); 3. Нужно учесть что адрес чипа YT8512H определяется подтягиванием входов LED0 и LED1. Чтобы адрес был как у DP83848 (1ый) необходимо LED1 через светодиод на землю садить (светодиод будет светиться когда выход высокий), а LED0 к питанию (светодиод будет светиться когда выход низкий). Либо адрес чипа в проекте поменять относительно заданного светодиодами. Работает Auto-MDIX ? Quote Share this post Link to post Share on other sites More sharing options...
IgorAVR2 1 September 24, 2023 Posted September 24, 2023 · Report post Я ещё не щупал, в процессе. Но зато нашёл более дешёвые аналоги: https://mt-system.ru/company/news/byudzhetnye_mikroskhemy_phy_ot_kompanii_wch/ По ногам совместимы вроде. Quote Share this post Link to post Share on other sites More sharing options...
mitya1698 27 September 24, 2023 Posted September 24, 2023 · Report post Этим еще токозадающий резистор не нужен и кондеры к кварцу Quote Share this post Link to post Share on other sites More sharing options...
IgorAVR2 1 September 24, 2023 Posted September 24, 2023 · Report post 3 hours ago, mitya1698 said: Этим еще токозадающий резистор не нужен и кондеры к кварцу Да, хитрый резистор не нужен. Но место я бы оставил и под него и под кондёры. Quote Share this post Link to post Share on other sites More sharing options...
ReZIStoR 0 September 27, 2023 Posted September 27, 2023 · Report post В 15.06.2023 в 20:51, Рашид сказал: Работает Auto-MDIX ? Собрал плату на YT8512H, проект сгенерирован через CubeMX, подправил определение скорости как написано выше, пинг работает. Auto-MDIX работает. Для подключения используется RMII интерфейс. Не работает скорость 10 Мбит, как я понимаю в данном физическом уровне не совсем стандартно реализован этот режим. Цитата из даташита: Цитата For 100M application, REF_CLK is 50MHz; for 10M application, REF_CLK is still 50MHz, data will be duplicated for 10 times in 20ns cycles. YT8512 supports two types of connection method; Надо что-то свое городить если нужны 10 МБит. p/s И кстати если использовать новую версию библиотек в CubeMX, то там все по-другому уже реализовано. 10 минут назад, ReZIStoR сказал: Собрал плату на YT8512H, проект сгенерирован через CubeMX, подправил определение скорости как написано выше, пинг работает. Auto-MDIX работает. Для подключения используется RMII интерфейс. Не работает скорость 10 Мбит, как я понимаю в данном физическом уровне не совсем стандартно реализован этот режим. Цитата из даташита: Надо что-то свое городить если нужны 10 МБит. p/s И кстати если использовать новую версию библиотек в CubeMX, то там все по-другому уже реализовано. Кажется разобрался )) у меня проект под LAN8742A, а там режим 10 МБит по другому, а у DP83848 все как надо судя по даташиту.)) Quote Share this post Link to post Share on other sites More sharing options...
ReZIStoR 0 September 29, 2023 Posted September 29, 2023 (edited) · Report post В общем чтобы все работало во всех режимах (без использования прерываний от PHY), требуется минимум три регистра: #define PHY_BCR ((uint16_t)0x00U) /*!< Transceiver Basic Control Register */ #define PHY_BSR ((uint16_t)0x01U) /*!< Transceiver Basic Status Register */ #define PHY_SR ((uint16_t)0x11U) /*!< PHY status register Offset */ Эти битовые маски остаются без изменений: #define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */ #define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */ #define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */ #define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */ #define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */ #define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */ #define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */ #define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */ #define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */ #define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */ #define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */ #define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */ #define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ А эти надо подправить: #define PHY_SPEED_STATUS ((uint16_t)0x4000U) /*!< PHY Speed mask */ #define PHY_DUPLEX_STATUS ((uint16_t)0x2000U) /*!< PHY Duplex mask */ Все остальное можно закоментить. Определение скорости (10Мбит и 100 Мбит) надо поменять местами не только в файле stm32fxx_hal_eth.c, но и в ethernetif.c, иначе после переподключения кабеля не будет связи. Edited September 29, 2023 by ReZIStoR Quote Share this post Link to post Share on other sites More sharing options...
BALDA 0 November 2, 2023 Posted November 2, 2023 · Report post Ребят подскажите, если я подключаю PHY YT8512 без инициализации со стороны STM32( фактически нет прошивки) линк должен подниматься? Именно линк? Quote Share this post Link to post Share on other sites More sharing options...
IgorAVR2 1 May 3 Posted May 3 · Report post On 9/29/2023 at 3:57 AM, ReZIStoR said: В общем чтобы все работало во всех режимах (без использования прерываний от PHY), требуется минимум три регистра: #define PHY_BCR ((uint16_t)0x00U) /*!< Transceiver Basic Control Register */ #define PHY_BSR ((uint16_t)0x01U) /*!< Transceiver Basic Status Register */ #define PHY_SR ((uint16_t)0x11U) /*!< PHY status register Offset */ Спасибо за ваши настройки, только с ними у меня заработало. Quote Share this post Link to post Share on other sites More sharing options...
Андр 0 May 6 Posted May 6 · Report post Подскажите как побороть проблему, если витая пара не подключена при включении МК, то если потом подключить витую пару ничего не работает. Но если витая пара подключена при включении МК, то работает и даже если переподключить витую пару. Quote Share this post Link to post Share on other sites More sharing options...