AVR Hobby Я
Категории раздела
Мои статьи [8]
Информер
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Понедельник, 29.04.2024, 22:47
    Приветствую Вас Гость | RSS
    Главная | Регистрация | Вход
    Каталог статей
    Главная » Статьи » Мои статьи

    Atmega8 и enc28J60 с поддержкой Ethernet

    Atmega8 и enc28J60 с поддержкой Ethernet

     (оригинальный перевод статьи с сайта http://www.pocketmagic.net/2012/07/


    Atmega8 and enc28J60 for ethernet support )

     By Radu Motisan Posted on July 30th, 2012 , 3640 Views (Rate 16.04)

      Это мой не первый опыт работы на микроконтроллерах с Ethernet интерфейсами, в последний раз я использовал плату Arduino  с защищенным Ethernet  для приложений голосового управления. Теперь у меня есть возможность, чтобы построить все с нуля, и целевой микроконтроллер ATmega8, имеющий так мало  программной памяти  для решения задачи.

     

    Последние изменения:
    2012-07-30, первая установка, с использованием буфера
    2012-10-11, простой вариант, без буфера
    2012-11-03, Другой простой веб-сервер

      30 июля 2012
         Моя Atmega8 будет использовать внешний кварц,  на 16 МГц. Питание Atmega8 5 вольт.  Для питания  ENC28J60 требуется 3,3 вольта. Две микросхемы должны общаться с помощью интерфейса SPI.

        Я нашел оригинальный проект размещен на tuxgraphics. Решение представляет собой хорошую отправную точку, но он имеет много  вопросов, таких как: отсутствие буферизации между микроконтроллером и чипом  Ethernet, микроконтроллер принимает CLK сигналы от чипа Ethernet, будучи не в состоянии работать при различных значениях частот, а не  на 16 МГц, как мне это нужно.

        Есть многочисленные сообщения о проблемах вызванных разностью напряжений в интерфейсе  SPI. Я решил использовать буфер, как советовал  Mirek, из Польши (ссылка).  Он также продает готовые Ethernet платы, которые очень хорошо построены и помогут       вам сэкономить значительное время для такого проекта.

        Для буфера используем чип SN74LS125A. Для чипа  Ethernet я купил простую плату на Ebay, имеющею установленный  ENC28J60 чип, 25MHz кварц, магнитные разъем Ethernet, и несколько других компонентов:


        Когда питание 3,3 вольта поданы на Ethernet модуль и сетевой кабель не подключен, два светодиода, зеленый и желтый должны включаться  время от времени. Я купил два модуля, и оба отказались подавать какие либо признаки жизни. Платы были мертвы. Внимательно  рассмотрев заметил, кварцы припаяны неправильно имело место короткое замыкание нескольких дорожек в схеме. Исправив это, решил проблему и модули были готовы к использованию.
    Вот схема для этих плат:

         На разъеме Ethernet модуля представлены сигналы: CLKOUT, ​​INT, WOL, SO, SI, SCK, CS, RESET, VCC и GND. В настоящей реализации Я использую  только INT, SO, SI, SCK, CS, VCC и GND. Проинспектируйте вывод питания, питание модуля 3,3 вольта  поэтому убедитесь, что вы правильно его подвели.

         Для  подключения платы Ethernet используем буфер SN74LS125AN. На выход используем только сигналы INT и  MISO поэтому в этих цепях необходимо включить буферизацию буфер:


     

         Теперь вы готовы для подключения к Atmega8. Вывод SO модуля идет на вывод MISO Atmegi, SI на  MOSI, SCK к SCK соответственно, также я подключил вывод CS модуля  к PB2 (SS/OC1B) Atmegi и аналогично INT модуля к PD2 (INT0) Atmegi.

     

    Программное обеспечение
            Программное обеспечение  подготовленное
    мною для этой статьи, поставляется с минимизированным  TCP / IP стеком поддерживающим  IP, ARP, UDP и TCP, на основе оригинальной работы Guido Socher,  выпущенной  под лицензией GPL v2.
          Я сделал это как простой веб-сервер,  использующий TCP-порт 80,  так что вы можете соединиться с вашим браузером, но вы должны предварительно установить несколько параметров: http://microcontroller_ip/?cmd=1. В моем примере я использовал http://192.168.2.24/?cmd=1, но вам возможно потребуется изменить код на  новый IP, который соответствует вашей настройки сети.

          Прохождение  ответов на эхо-запросы  PINGs учитываются и отображаются на ЖК-дисплее, а также и на веб-странице  Atmega. Веб-страница показывает, сколько раз он был  доступен (счет количества успешных прохождений
    PINGs прим. перевод..).

    Исходный код:
    ATMegaEth

     

     

     Обновление: 11 октября 2012
          Для более простого варианта, вы можете пропустить установку буфера и просто подключить ENC28J60 модуль непосредственно к Atmega8. Она будет работать хорошо, особенно если у вас нет других устройств, подключенных через SPI..

     

     

         Представляю Вам вот это программное обеспечение, чтобы решить эту задачу. Программа представляет   небольшой веб-сервер, настроенный на  адрес 192.168.2.24, а также поддерживает датчик температуры DS18B20, подключенный к контакту PC4 , а также  датчик температуры и влажности DHT-11  подключенный к выводу PC3 , чтобы отображать температуру через веб-интерфейс.

    Исходный код:
    ATmega8_ENC28J60_NOBUFFER_TEMP_WEBSERVER
        

         Проблема в том, для управления модулем ENC28J60 по TCP / IP стеку использует много доступной   флэш-памяти контроллера Atmega8. Примерно  6-7К из 8K доступных. Это оставляет очень мало места для  других функций.

     

    Еще про датчики температуры здесь.

     

      Обновление: 3 ноября 2012

          Вот очень простая реализация  веб-сервера, на схеме показан только интерфейс Ethernet,  а также представлено минимальное программное обеспечение, которое работает как локальный веб-сервер.

         IP адрес установлен - 192.168.2.24, что необходимо помнить при повторении устройства.
    Электрическая схема:

    Я испытал работу гаджета на мой тестовой плате, получилось неплохо:

     

         Здесь представлены несколько фотографий демонстрирующих работу устройства - проверка командой «пинг»  и открытие  веб-страницы,  все прекрасно работает:

     

      код доступен здесь:
    webserver_atmega8

    конец перевода.

       Согласитесь чудная статья но, что не менее важно автор любезно предоставил исходники. Правда по первой ссылке не обнаружил СИ шных файлов, только заголовки. Зато два последующие пакета превзошли все ожидания, их пере компиляция в  AVR Studio 4 прошла великолепно, всего с несколькими незначительными «ванингами». Вполне можно повторять с имеющимся у нас в  Украине модулем mmx-enc28j60.  

    Да и еще интересные ссылки ЭТО вообще класика, настоятельно рекомендую!,

    а это в дополнение   1  2

    Желающим повторить удачи !  

     

    Категория: Мои статьи | Добавил: avu2 (16.03.2013)
    Просмотров: 15018 | Рейтинг: 5.0/1
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz