Полная версия этой страницы:
phy w/o mac
Огурцов
Jan 1 2016, 11:33
на сколько реально подключить dp83848 напрямую, скажем через spi ?
Нереально. Интерфейсы там чётко указаны: MII/RMII/SNI. Микросхемы физики с SPI есть у WIZnet, Microchip. Точнее это уже наызвается не микросхема физики, а Ethernet Controller.
у SNI раздельные клоки на приём и передачу, так что надо либо два SPI, либо I2S.
в half duplex можно и на одном SPI что-нибудь сгородить попробовать.
но зачем?
и к чему подключить-то?
Огурцов
Jan 1 2016, 14:31
а что такое rmii ? 4 провода данных плюс синхронизация - очень похоже
медиа акцесс не нужен, контроль коллизий не нужен, адреса, даже контрольная сумма...
зато нужен короткий кадр
а визнет тут вообще избыточен
Цитата(_pv @ Jan 1 2016, 15:22)

два SPI
и к чему подключить-то?
пусть будет на борту 5 spi
предположим два 83848 друг с другом
Цитата(Огурцов @ Jan 1 2016, 21:31)

пусть будет на борту 5 spi
предположим два 83848 друг с другом
ну так в чем тогда проблема, описание сигналов SNI в даташите.
клоки, данные, txen/crs -> соответственно на клоки, данные и CS в spi. (полярности txen/crs только проверить чтобы совпадали).
правда с байтовой синхронизацией на приёме некрасиво может получиться, что придётся всё-таки как в езернете добавить преамбулу 0x55, 0x5d и потом программно весь пакет на бит-другой передвигать.
в принципе любая самая мелкая cpld вполне сойдёт как преобразователь spi <-> mii для подключения любого другого более распростанённогo phy.
Огурцов
Jan 23 2016, 08:10
добрался до ds - вы правы, sni, должно вообще красиво на spi ложиться
Огурцов
Jan 23 2016, 23:01
если я правильно понял, то на 100 мегабит выравнивание на группу, т.е. 4 бита, выполняет phy
при этом не исключено, что стартовые и стоповые группы могут быть исключены из потока
а вот при 10 мегабитах как такового выравнивания на группу нет, потому что нет групп, и выравнивание на границу байта обязан выполнять уже мас
в мк сканировать биты весьма проблематично
поэтому есть мысль использовать uart в асинхронном режиме и phy в режиме таки rmii, т.е. на 50 мегагерц
что, кстати, может позволить подключить второй phy, по типу ethercat, на аппаратном уровне, т.е. без задержек и без нагрузки на мк
остаётся как-то разрулить mii smi
правильно ли я понимаю, что не mac, а приложение, через mac, управляет mdc/mdio ?
Огурцов
Jan 27 2016, 16:56
smi сделал
Огурцов
Jan 28 2016, 01:29
передача идёт, приём на сотке - не идёт, на десятке нули, надо как-то хотя бы осциллографом ткнуть-посмотреть
Огурцов
Jan 30 2016, 04:52
сделал для LAN8720 на 9600, только нужны один/два инвертора
на 115.2 не идёт
dp83848 не идёт, после каждого пакета линк падает на пару секунд
наверно слишком умный, типа преамбулу хочет или ещё что
Огурцов
Feb 3 2016, 12:01
dp83848 в режиме sni выдаёт на tx_clk около 15 мегагерц, кто-нибудь знает, что это за ерунда ?
когда 2.5 и 25 50 выдаёт - это хоть как-то понятно
DmitryM
Feb 3 2016, 13:41
Цитата(Огурцов @ Feb 3 2016, 15:01)

dp83848 в режиме sni выдаёт на tx_clk около 15 мегагерц, кто-нибудь знает, что это за ерунда ?
Это не ерунда, это так и есть. "SNI TRANSMIT CLOCK: 10 MHz Transmit clock output in 10 Mb SNI mode."
Огурцов
Feb 3 2016, 14:17
так бы зарплату - в ведомость написали 10 миллионов, а выдали 15
на rx_clk кстати тоже 15 (
Огурцов
Feb 3 2016, 16:04
вот что нашёл:
Цитата
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
Огурцов
Feb 5 2016, 09:16
сделал в rmii для lan8720
но есть косяки
на 10мбит через дюжину байт идут артефакты
на 100мбит чистенько, но в начале пакета порядка полутора сотен байт вместо данных идут нули
в общем, и то и то не приемлемо
возможно частоты генераторов настолько сильно не совпадают
либо фронты данных где-то на границе и плавают туда-сюда
ну или phy пытается синхронизироваться по данным и лажает - а других-то клоков нет
что ещё, прерываний явных нет, дма может существенно тормозить мк ?
тогда надо и передачу на дма вешать
Огурцов
Feb 5 2016, 20:59
сам дурак - pll оказалось не выставлено
хотя 100% помню, что менял, еще и два раза, сначала на ошибочное 330, и потом на 320
так что задача минимум решена: lan8720 в режиме rmii на 10 мегабит работает
на 100 не работает, думаю там что-то с дма и м.б. с паддингом в пакетах - в буфере одни нули
и для полного счастья остаётся только can over ethernet сделать
Огурцов
Feb 6 2016, 15:16
100 мегабит тоже работает - оказалось, что прерывание dma_it_tc вызывается при пустом буфере
Цитата(Огурцов @ Jan 1 2016, 17:33)

на сколько реально подключить dp83848 напрямую, скажем через spi ?
Если б вопрос был как подключить контроллер с SPI к проволоке Ethernet то ответ мог бы быть:
ENC28J60А конвертер RMMI to SPI звучит зело надуманно.
Огурцов
Mar 14 2016, 16:27
какая разница, как звучит и как выглядит и что у кого-то происходит разрыв сознания - главное результат
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.