Jump to content

    

phy w/o mac

на сколько реально подключить dp83848 напрямую, скажем через spi ?

Share this post


Link to post
Share on other sites

Нереально. Интерфейсы там чётко указаны: MII/RMII/SNI. Микросхемы физики с SPI есть у WIZnet, Microchip. Точнее это уже наызвается не микросхема физики, а Ethernet Controller.

Edited by arhiv6

Share this post


Link to post
Share on other sites

у SNI раздельные клоки на приём и передачу, так что надо либо два SPI, либо I2S.

в half duplex можно и на одном SPI что-нибудь сгородить попробовать.

но зачем?

и к чему подключить-то?

Share this post


Link to post
Share on other sites

а что такое rmii ? 4 провода данных плюс синхронизация - очень похоже

медиа акцесс не нужен, контроль коллизий не нужен, адреса, даже контрольная сумма...

зато нужен короткий кадр

а визнет тут вообще избыточен

 

два SPI

и к чему подключить-то?

пусть будет на борту 5 spi

предположим два 83848 друг с другом

 

Share this post


Link to post
Share on other sites
пусть будет на борту 5 spi

предположим два 83848 друг с другом

ну так в чем тогда проблема, описание сигналов SNI в даташите.

клоки, данные, txen/crs -> соответственно на клоки, данные и CS в spi. (полярности txen/crs только проверить чтобы совпадали).

правда с байтовой синхронизацией на приёме некрасиво может получиться, что придётся всё-таки как в езернете добавить преамбулу 0x55, 0x5d и потом программно весь пакет на бит-другой передвигать.

 

в принципе любая самая мелкая cpld вполне сойдёт как преобразователь spi <-> mii для подключения любого другого более распростанённогo phy.

Share this post


Link to post
Share on other sites

добрался до ds - вы правы, sni, должно вообще красиво на spi ложиться

 

Share this post


Link to post
Share on other sites

если я правильно понял, то на 100 мегабит выравнивание на группу, т.е. 4 бита, выполняет phy

при этом не исключено, что стартовые и стоповые группы могут быть исключены из потока

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

в мк сканировать биты весьма проблематично

поэтому есть мысль использовать uart в асинхронном режиме и phy в режиме таки rmii, т.е. на 50 мегагерц

что, кстати, может позволить подключить второй phy, по типу ethercat, на аппаратном уровне, т.е. без задержек и без нагрузки на мк

 

остаётся как-то разрулить mii smi

правильно ли я понимаю, что не mac, а приложение, через mac, управляет mdc/mdio ?

Edited by Огурцов

Share this post


Link to post
Share on other sites

передача идёт, приём на сотке - не идёт, на десятке нули, надо как-то хотя бы осциллографом ткнуть-посмотреть

 

Share this post


Link to post
Share on other sites

сделал для LAN8720 на 9600, только нужны один/два инвертора

на 115.2 не идёт

dp83848 не идёт, после каждого пакета линк падает на пару секунд

наверно слишком умный, типа преамбулу хочет или ещё что

 

Share this post


Link to post
Share on other sites

dp83848 в режиме sni выдаёт на tx_clk около 15 мегагерц, кто-нибудь знает, что это за ерунда ?

когда 2.5 и 25 50 выдаёт - это хоть как-то понятно

 

Share this post


Link to post
Share on other sites
dp83848 в режиме sni выдаёт на tx_clk около 15 мегагерц, кто-нибудь знает, что это за ерунда ?

 

Это не ерунда, это так и есть. "SNI TRANSMIT CLOCK: 10 MHz Transmit clock output in 10 Mb SNI mode."

Share this post


Link to post
Share on other sites

так бы зарплату - в ведомость написали 10 миллионов, а выдали 15

 

 

 

на rx_clk кстати тоже 15 (

 

Share this post


Link to post
Share on other sites

вот что нашёл:

 

For SNI mode, the X1 input should use a 25MHz crystal or oscillator. The specifications for the crystal or oscillator are in the Design Guidelines section of the datasheet.

 

по первой части может и так, а по второй - врёт, я не нашёл такого ds

Edited by Огурцов

Share this post


Link to post
Share on other sites

сделал в rmii для lan8720

но есть косяки

на 10мбит через дюжину байт идут артефакты

на 100мбит чистенько, но в начале пакета порядка полутора сотен байт вместо данных идут нули

в общем, и то и то не приемлемо

возможно частоты генераторов настолько сильно не совпадают

либо фронты данных где-то на границе и плавают туда-сюда

ну или phy пытается синхронизироваться по данным и лажает - а других-то клоков нет

что ещё, прерываний явных нет, дма может существенно тормозить мк ?

тогда надо и передачу на дма вешать

Edited by Огурцов

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this