Ethernet модуль на ENC28J60

Уже давно был сделан Ethernet модуль, но все валялся в ящике. Никак руки не доходили.

Вот, наконец, собрался. Проверил на примерах от lifelover — работает.


 

В качестве микрухи используется ENC28J60 в SSOP28 корпусе. Бывает также в DIP28 и QFN корпусе. В общем, на любой вкус.
 

Схемотехника
Схема типейшая, по даташиту. Никаких заморочек, разве что применен разъем с трансформатором J00-0086NL, тогда как лучше было бы поставить J00-0066NL — у него коэффициент трансформации оптимальней (1:1). Но что было под рукой то и поставил. Можно и отдельный трансформатор взять, вроде FC-22 который стоял в модуле для WIZ100SR
 

Еще одна важная деталь. Резистор Rbias, у меня он на схеме обозначен как R8 2k 1% нужно подбирать исходя из ревизии микросхемы. Я поставил 2.2кОм. Errata рекомендует
 

For silicon revisions, B1 and B4, use a 2.7 k, 1% external resistor between the RBIAS pin and ground. The value shown in the data sheet (2.32 k,) is correct for revisions B5 and B7.

 

 

Деталей не много, развести все удалось по одной стороне практически, с парой перемычек.



Дорожки мелковаты, 0.3мм, но не думаю, что у кого то это вызовет сильных затруднений. Сделано ЛУТом без проблем.
 

Интерфейс
Связь с контроллером по SPI интерфейсу.

  • SO — MISO
  • SI — MOSI
  • SCK — SCK
  • CS — SS Впрочем, выбор кристалла SS тут может быть повешан куда угодно.
  • RESET — если никуда не подключать, то лучше его повесить на +3.3 вольта. Чтобы не болтался и не создавал глюки.
  • INT — выход прерывания. При приеме пакета может дрыгать этой ногой и заставлять проц срочно обрабатывать пакет. Или, как минимум, принять во внимание, что надо получать данные.
  • WOE — Это, как я понял, Wake On Ethernet. Я никуда не подключал
  • 3V3 — питание на 3.3 вольта. Микруха жручая, потребляет 250мА и весьма активно при этом греется. От платы не отпаивается конечно, но горячая — палец еле держит. Да, несмотря на питание в 3.3 вольта ее входы толерантны к 5 вольтам
  • GND — земля

 

 

Подробнейшее описание работы с этой игрушкой можно найти в сообществе, в цикле статей посвященной этой микросхеме и работе с Ethernet в частности. Подробней вы вряд ли где найдете :)

 

Файлы

 

З.Ы.
Сейчас эта поделка у меня плавно мутирует в боковой модуль для Pinboard II и скоро пойдет в производство.

42 thoughts on “Ethernet модуль на ENC28J60”

    1. у меня w5200, как их питать этих монстров?
      Такое ощущение что не хватает питания, в апп нотах оч много конденсаторов на питании висит.

      у меня не получилось ее возбудить, хотя грешу уже на контроллер.

      ресет проходит, токи и напряжение соответствуют даташиту.
      с ячейки модели нормально читается 0х03h
      В конфиг мака уже не пишется как надо, пишешь 0xFFh, а читается оттуда 0xECh и другая дребедень. если подождать и циклически читать, то иногда читает как надо 0xFF, или 0xFE…
      не могу понять в чем дело.
      смд компонентов нет, запаяно было на обычных, естественно на питание было слегка забито, но потом навешено много конденсаторов как положено, то толку нет.
      три микрухи, поведение одинаковое.
      Может кто знает что за симптом такой?

      1. проверь процедуру инициализации. У меня похожий глюк был на w5100. Либо с таймингами хардверного ресета косяк, либо програмного ресета нет. Хотя на w5200 может принцип и отличается…

  1. Я вот то же месяца два назад воткнул этот модуль в свою самопальную отладочную плату. И так его не как не использовал. У меня вопрос возник по поводу светодиодной индикации, какой диод что сигнализирует? И будут ли статьи по применении этого модуля?

  2. О! как раз в тему. ;)
    На днях человек захотел ( http://www.uschema.com/forum/viewtopic.php?f=43&t=3419 ) этот чип (ENC28J60) прицепить к модулю ARM7MODA
    ( кстати, робото-строителям и квадрокоптеро-строителям могу дать платы даром — тут детальнее http://www.uschema.com/platy_arm7moda_besplatno_dlya_ctrouteley_robotov_i_kvadrokopterov/ )
    И думаю эта статейка будет весьма кстати…

  3. Я сейчас пилю проект на этой микросхеме
    Только она у меня тестовая в DIP корпусе, запускал только ICMP, грелась еле-еле, будет запуск, отпишусь о поведении

    1. Ну дип и не будет особо греться, он же больше гораздо. Теплоотвод много выше. А вот ssop прям так ощутимо.

  4. Errata. Читайте внимательней, там больше чем в даташите :)

    Судя по схеме, ты и сам ее не читал.

    Кстати, ЕМНИП рекомендации по трассировке рекомендуют ставить С1 как можно ближе к микросхеме и использовать Low ESR, а лучше керамику.

    Ну и TX/RX все ж дифпары. Их лучше не разбивать. И перемычки в них не ставить. Хотя я тоже поставил и все работает, но все же… Теоретически полярность пар можно изменить — в МС стоит схема автоопределения. Но как и многое другое в ENC28J60 она не работает :) Так что подключать надо в той полярности, которая указана в даташите.
    С RBIAS тоже веселуха, про нее подробно в эррате.
    CLKOUT желательно вывести. Микросхема очень глючная и эррата, помимо прочего, рекомендует тактовать МК от нее.

    Ну и можно поплотнее развести. У меня на DIP версии микры плата примерно таких же размеров, и там еще нашлось место для стабилизатора 3.3В.

        1. А чо светодиоды? В эррате про них ничего не сказано. Олимекс же в свой блочок на этой микре ставит 180ом

    1. У меня в Rbias стоит 2.2кОм. Самое близкое что нашел. У меня запустилось нормально. По поводу CKOUT Lifelover писал, что оно вообще не работате. Надо попробовать посмотреть, кстати.

      1. Оно вроде как работает, но даташит требует 1%-й резистор и утверждает что иначе что-то там не соответствует спецификациям Ethernet.

        По поводу CKOUT Lifelover писал, что оно вообще не работате.

        Клок глохнет если микру в спячку отправить, ЕМНИП. Или трансмиттер ли вырубить. В любом случае, костыль для обхода этой проблемы в эррате есть.

  5. Магджек тоже неправильный, кстати. Даташит на енку требует трансформаторы 1:1, а в этом — 1.414:1. У меня правда стоит 1:1/2.5:1 и работает, но…

  6. Алсо, по поводу магджека и RBIAS. ИМХО, для модуля, который будет серийно производиться и продаваться — можно напрячься и найти именно то, что требует спецификация.
    Этих джеков J00-00xx дохрена разных.

    1. Это само собой. Благо у них подсадка стандартная. потому я и не стал трансформатор отдельный ставить которые все разные. Оно более громоздко, дороже и это уже две детальки вместо одной.

  7. Было бы здорово сделать аналогичную платку на KSZ8851SNL. Вроде бы камушек поинтереснее будет особенно в плане прицепки к АРМ. Хотя после LPC1769 это все не то :)

  8. народ, можете кто конвертнуть плату в формат P-CAD(ASCII), или OrCad, Gerber…
    в дип трейсе открыть чтобы короче

  9. Хотел собрать макет данного устройства в Протеусе (железяка идет по почте где-то), собрал схему 1 в 1 как нарисовано в статьях и даташитах, разъем вот только оригинальный RJ45 не нашел в протеусе. Подключил ATmega128. Прошивку за основу взял из статьи в сообществе. В итоге МК зацикливается на инициализации ENC28J60. Если конкретно то зацикливается на ожидании занятости микросхемки. Вот в этой строчке:
    while(enc28j60_rcr(MISTAT) & MISTAT_BUSY) {}
    Вот схема: http://images.vfl.ru/ii/1359019325/8bc944f4/1618654.jpg
    МК кликает бесконечно ногами SCK и SI и всё.
    Куда здесь копать?

  10. Тоже захотел собрать схемку, заказал деталей и т.д. В итоге наткнулся на аукционе, да и просто в интернете готовый модуль за 55 грн (около 8 баксов) уже все собрано. Если есть желание собрать самому — то одно, если нужно собрать побыстрее и дешевле — ищите что-то типа «Сетевой модуль Ethernet Shield Arduino, ENC28J60» Там разъем тоже МагДжек стоит, но по деньгам дешевле и для опытов нужно меньше затрат.

    1. на ebay готовый модуль на этой микросхеме стоит столько же, сколько она сама — около 4 у.е.

  11. да,таки по 4 бакса готовый красивенький модуль с маской,все как надо.

    Но мы не ищем легких путей.

    Что за резистор DNP такой?
    В этой статье он есть,в теме про родключение МК к сети Ethernet его в схеме нет.

  12. нашел.
    Do Not Place или Do Not Populate.

    Еще кстати в статье про подключению к Ethernet в схеме стоит конденсатор ан 2кВ а здесь нет.Назначение-разряд статики с кабеля.
    Может стоит в статье дописать про него?оО

  13. R1 R2 R3 R4 это так называемые терминаторы чтобы устранить отражение сигнала? или в случае трансформаторов терминаторы не нужны?

  14. Вожможно ли подключить к этому модулю выход rs 485?
    Если да то подскажите. Готовый такой модуль у нас в мариуполе не продается.

    1. Только если сделать внешнюю плату на которой будет контроллер и rs485 сразу же. Т.к. там на выходе, если в сочетании с процессорным модулем (AVR Mega16 или STM32) есть только штыри под USART и вот в него надо будет завернуть ваш 485, пробросив проводки.

      Насчет Мариуполя не уверен, а вот в Киеве есть наш товарищ, спросите его, может у него есть в наличии: http://arduino-ua.com в принципе могут еще быть. Ну или мы можем выслать, сообщение между Украиной и Россией пока есть, несмотря на все это говно.

  15. То есть rs подключить к модулю ethernet, на прямую?
    Но там вместо rx tx есть только mosi,miso,sck,rst.
    Как быть в этом случае.

  16. То есть как я понял, к pinboard подключаем rs,и все ?
    Вопрос еще такой, а конфигурационный софт к этой железяке есть,или нужно пилить его самостоятельно?

    1. Можно к ней, а можно и в отрыве от платы. Она довольно самостоятельная железка получилась. На нее можно ставить пинбордовские процессорные модули.

      Там разве что прошивку управляющую под свои нужды допилить. А уж реализация на стороне компа это самому делать.

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha