|
Вопросы по AVR+Ethernet, Буду дружить AVR+ENC28J60 нужен стек протоколов IP |
|
|
|
Nov 20 2010, 12:39
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Собственно задача назревала достаточно долго, но похоже, созрела. Немного введения. Существует "отдельностоящая" серверная. В количестве двух штук. В них бывают случаи сбоя по ~220, в результате чего кондиционер самостоятельно бывает, не запускается, в результате чего довольно быстро начинает нарастать t. Это проблема первая. В общем-то крайне близкая проблема, результат тот же, но причины разные - при переходе лето-зима и наоборот периодически кондей опять же "встает". Причины не нашли, поэтому, просто дергаем "кондиционерщиков". А за это время температура опять же, нарастает... И, наконец, еще одна проблема - в одной из серверных резервный, а в другой - боевой кондиционеры не имеют "наружнего" слива. Т.е. слив конденсата организован в локальное харнилище - по-простому - ведро. Имеет место быть ограниченность системы в силу небесконечности накопителя  по простому - ведро наполняется рано или поздно. В итоге имеем задачу - собрать два схожих устройства, с возможностью дальнейшего масштабирования (планируется организация "полноценных" серверных либо просто закрытых "серверных шкафов" в других городах). Устройства должны иметь возможность мониторинга трех параметров: 1. температура (DS1820 где-то доложон валяться) 2. фиксировать пропадание электричества (по возможности с организацией RTC и запоминанием, когда пропало, когда появилось) 3. мониторить состояние ведра (исполнительный механизм, вернее, идея его организации, имеется - датчик наполнения будет самым, пожалуй, простейшим - на базе обычного кулера с поговревшей обмоткой - к крыльчатке прилажен рычаг с поплавком, поплавок всплыл, крыльчатка повернулась, датчик Холла, имеющийся внутри кулера, выдал "1" вместо "0" на выходе. Собственно, дело за малым - начать да кончить. Не решен вопрос с выбором контроллера - боюсь, что tiny2313 просто не хватит памяти на реализацию TCP/IP. А делать прийдется именно TCP поскольку таким образом достигается масштабируемость любого уровня - и в перспективе на другой город, и в имеющихся масштабах - между этажами нет прямого интерфейса, зато свободных портов в коммутаторах найти можно. Но дальше первого же маршрутизатора UDP не протолкнешь. Собирать данные планируется на "большом брате", благо, опять же, свободных вычислительных ресурсов в контексте данной задачи на каком-нибудь из серверов найти можно с избытком. Это было введение на будущее. А теперь, с позволения, начну задавать глупые вопросы Чем отличаются следующие трансформаторные развязки. На старой доброй сетевухе-комбе имеются и тот и другой, оба - 10Мбит. Но только один 16PT-006A и чуть поменьше, другой 20F001N и чуть побольше. По обвязке оба братья-близнецы. Сравнение в ДШ дало следующее: Vend | Part Number | Package | Cores | Temp | Configuration YCL | 16PT-006A | 16-pin DIL | 3 | +25° C | 10BASE2 & 5 YCL | 20F001N | 16-pin DIL | 3 | +25° C | 10BASE-T (LPF) Что из себя представляет та и другая конфигурация? Как-то даже растерялся...
|
|
|
|
|
Nov 20 2010, 15:23
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(esaulenka @ Nov 20 2010, 20:16)  я б ARM взял. Получится куда лучшая масштабируемость... Вероятно, я бы тоже. Просто на полке 8-разрядники лежат, а вот ARMов немайя... К тому же, с 8-разрядными я хоть как-то знаком, а про ARMы только и знаю, что они "есть", ни что нужно для разработки на них, ни как, ни с чем, я не знать  рано или поздно, конечно, дорасту, но сейчас, думаю, не готов. Да и делать буду все, видимо, исключительно в DIP/DIL/и т.п. исполнениях, чтобы "на коленке" можно было делать.
|
|
|
|
|
Nov 21 2010, 18:59
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(esaulenka @ Nov 21 2010, 15:33)  А на коленке ничего делать не надо. Надо раскрутить начальство (раз есть серверные, значит есть и начальство) на закупку Начальство мы не раскручиваем, решаем имеющуюся проблему своими силами. А нет - так хоть ночуй и карауль самолично. Но шоп работало! У начальства бывают разные политики управления. Мелкий саботаж в этом плане неуместен. И давайте не будем их здесь обсуждать, pls. Мозоли и так болят. По существу хочется вспомнить, как держать в руках паяльник, собрать что-нибудь работающее и внедрить на месте, дабы облегчить жизнь себе и коллегам, при этом получить дополнительное моральное удовлетворение с минимальными материальными затратами  P.S.: про гайку М3. В данном случае если со всеми задачами "по отдельности" я готов справиться, то с эзернетом работаю только как админ, но не как "железячник", а посему вопрос остается прежним, ищу (заметьте, ИЩУ, а не жду, это действительно так) варианты реализации стека TCP/IP на базе AVR 8-разрядного. Рассматриваю варианты кастрации, но передавать данные все равно необходимо по IP, причины уже назвал - свичи и маршрутизаторы "по дороге от А к Б"
|
|
|
|
|
Nov 22 2010, 04:44
|
Местный
  
Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940

|
Есть такие библиотеки 1. uIP2. Procyon AVRlibМожет чем-нибудь поможет
|
|
|
|
|
Nov 22 2010, 05:41
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(Rst7 @ Nov 22 2010, 01:46)  Вопрос к топикстартеру - почему так цинично игнорируется поиск (я не говорю даже про гугль, конкретно в данном форуме)? Минимум было бы несколько вариантов ответов на Ваш вопрос. Ну а дабы не просто ругать, а быть конструктивным - http://electronix.ru/forum/index.php?showtopic=44276Поиском пользуюсь, темы изучаю... Вашу ругань понимаю, но свои вопросы - есть свои... Если позволите, конечно Цитата(alexeyv @ Nov 22 2010, 10:44)  Есть такие библиотеки 1. uIP2. Procyon AVRlibМожет чем-нибудь поможет Про первое - изучаю, там есть ссылки вроде как даже народ начинал портировать под мелкие АВРы, но почему-то оба проекта "в стадии разработки" уже достаточно долго висят... Смушшаеть. За второе - спасибо! Еще не видел. P.S. Нашел крайне любопытную вещь: http://www.avrfreaks.net/index.php?func=vi...=Freaks%20Tools но по ссылке на обещанные исходники.... то ли лыжи не едут, то ли я... Боюсь, что второе
|
|
|
|
|
Nov 26 2010, 05:58
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Похоже, потихоньку схожу с ума... Пытаюсь отлаживать собранную схему, понимаю, что осциллограммы какие-то "не такие", каких ожидалось. (в частности, задающая частота CLK). Беру два щупа двухканального осыиллографа, измеряю в одной точке, получаю результат, который ни в какие ворота не лезет - вплоть до того, что не "хватается" за синхронизацию ни по положительному, ни по отрицательному фронту. Ну, думаю, хана бобику... Не изменяя никаких параметров, цепляю оба щупа (как были вместе, так одновременно и цепляю) к калибратору и вижу стабильную синхронизированную картинку. По любому каналу, по любому фронту "цепляется" уверенно... Где что могу делать не так? Прилагаю две картинки: сигнал с калибратора и "подопытный" сигнал. Видно, что на калибраторе частота выше, но фронты не валятся и все ок на обоих каналах. Но в случае сигнала из схемы даже на картинке видно, что засинхронизирован непонятно от чего. Стоит синхронизация по первому (синему) каналу, по положительному фронту. (метки синхронизации - маленькие синие штрихи на соответствующих осях). Калибратор:
Сигнал из схемы:
|
|
|
|
|
Nov 26 2010, 06:45
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 2-12-07
Пользователь №: 32 880

|
Может, если еще не поздно, имеет смысл взглянуть в сторону PIC18F97J60? На борту: Program Memory (KB) 128 CPU Speed (MIPS) 10.5 RAM Bytes 3,808 Digital Communication Peripherals 2-A/E/USART, 2-MSSP(SPI/I2C) Capture/Compare/PWM Peripherals 2 CCP, 3 ECCP Timers 2 x 8-bit, 3 x 16-bit ADC 16 ch, 10-bit Comparators 2 Ethernet 10 Base T Temperature Range © -40 to 85 Operating Voltage Range (V) 2 to 3.6 Pin Count 100 Все поместится в один корпус, ну плюс транс еще. На сайте Microchip.com есть куча работающих примеров, в том числе готовый TCP/IP стек.
|
|
|
|
|
Nov 26 2010, 06:55
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(ncux @ Nov 26 2010, 12:45)  Может, если еще не поздно Увы... Даже не в "поздно" дело, а в определяющих задачу параметрах: сделать из того, что имеется в наличии. Цитата(ncux @ Nov 26 2010, 12:45)  в том числе готовый TCP/IP стек. Это, конечно, шик... Но пока для меня - фантастика...
|
|
|
|
|
Dec 1 2010, 15:00
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
На данный момент так и не смог понять поведения щупов, расчитанных на частоту с запасом (описывал в 9 посте) Но на данный момент созрел еще один вопрос. Перебрал схему, собрал на другом трансформаторе, который совмещен с разъемом. Не знаю, что изменилось, но линк стал по крайней мере, определяться. Но в изучаемом примере все равно не срабатывает стек протоколов. Поэтому, вопрос - какие существуют способы отладки Ethernet? Как можно отследить, скажем, приходящие фреймы или что-то еще? Как искать, какая часть простейшей, грубо говоря, схемы не работает? Оговорюсь, у осциллографа неизолированы входы, существует связь по "земляному" проводу с ПК... Хотя, можно попробовать отключать RS232 (отлаживаюсь на STK500)
|
|
|
|
|
Dec 2 2010, 05:35
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(alexeyv @ Dec 2 2010, 11:14)  Есть снифер Wireshark. С помощью него, например, можно выяснить правильность структуры кадра, просмотреть содержание принятого/переданного кадра или вообще его наличие в сети. С этим делом я знаком, как бы посмотреть на уровне 28J60 это дело? Может, в SPI проблемы, может, на уровне 28J60.... Вообще, сеть живет в "боевой" сети, с моей рабочей машины. На коммутаторе выделен порт специально для сниффа, дублирующий порт с девайсом. На нем ШВ ARP запросы идут. Но железка моя на них партизанит. Линк 10Мбит подняла и на этом всё...
|
|
|
|
|
Dec 2 2010, 06:34
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 6-12-07
Из: Рига, Латвия
Пользователь №: 33 036

|
Цитата(aspID @ Dec 2 2010, 07:35)  С этим делом я знаком, как бы посмотреть на уровне 28J60 это дело? Может, в SPI проблемы, может, на уровне 28J60.... Вообще, сеть живет в "боевой" сети, с моей рабочей машины. На коммутаторе выделен порт специально для сниффа, дублирующий порт с девайсом. На нем ШВ ARP запросы идут. Но железка моя на них партизанит. Линк 10Мбит подняла и на этом всё... Один из самых простых способов "дебажить" - скидывать в последовательный порт контроллера все происходящее в 28J60. Скажем так, для начала, убедится что необходимые регистры установлены. Записали, прочитали. Затем можно уже с буфера приема скидывать и смотреть, что же мы там напринимали.  Так в процессе картинка уже будет более детально обрисовываться. На передачу, естественно, сниффер и контроль заполнения буфера и отправки. --- Dmitry
|
|
|
|
|
Dec 7 2010, 08:56
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE опять устройство отказывается видеть линк при подключении провода. Не знаю, на что грешить. Начать рекомендую с простого - у 28J60 нет MDI-X, посему часто тип патчкорда (прямой/перекрестный) важен. Второе - не попутали ли Вы где случайно цепи RX+ и RX-? Ибо ENC не понимает изменения полярности (см. Errata). Ну и конечно, надо убедиться в правильности инициализации. QUOTE Так что 'плоский шлейфик 15см' вполне может все угобить Я Вам по секрету скажу, что 10МБит через любой гуанокабель поднимается. Шлейф до одного места.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Dec 7 2010, 14:06
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Как бы из того и исхожу, что 10Мбит... Вроде не должно вносить никаких критических ошибок. Тем не менее... Опять же, ситуация до смешного - именно вечером работало, утром с тем же кабелем - не работает... Где я облондинился не понимаю. Скажите только, как определять, куда +, куда - подавать на трансформатор? Транс используется вот такой: ftp://ftp.efo.ru/pub/wiznet/MJLU1T516.pdf
Сейчас подается: OUT+ = "2" OUT- = "1" IN+ = "8" IN- = "7"
|
|
|
|
|
Dec 10 2010, 07:25
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Собрал "сеть" в сочетании "хост-хост", минуя все свичи. Просниффил трафик. От прямизны/кроссоверности кабеля результат не зависит. Устройство категорически не желает отзываться. Хотя линк загорается и поднимается на 10Мбит стабильно. Инициализация ходит, данные между контроллером и 28J60 ходят верно, но уровень от 28J60 и в провода - упорно остается для меня непонимаем. Может быть, действительно, будет работать только при разведении на плате, а "на коленке" даже на 10Мбит не желает? И еще вопрос... Кварц с тремя ногами - ему обвязка в виде конденсаторов нужна? Есть низкий кварц 25МГц, он с конденсаторами работает, но если меняю его на "трехногий" без кондёров - то стоит как рыба об лед. Еще обнаружил, что чем-то ловлю не совсем понятную помеху - по питанию получается некоторая "грязь", которая на тактёр идет очень даже заметной, сигнал отслеживается, но шум приличный. Может быть, с этим связано нежелание даже на 10Мбит работать?
|
|
|
|
|
Dec 10 2010, 07:55
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(alexeyv @ Dec 2 2010, 07:14)  Есть снифер Wireshark. С помощью него, например, можно выяснить правильность структуры кадра, просмотреть содержание принятого/переданного кадра или вообще его наличие в сети. можно ссылку, плиз upd нашелона бесплатная или платная. Если платная, то можно ли лекарство
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Dec 12 2010, 18:07
|
Группа: Новичок
Сообщений: 3
Регистрация: 20-11-10
Из: Москва
Пользователь №: 61 045

|
Цитата(aspID @ Nov 20 2010, 15:39)  Собственно задача назревала достаточно долго, но похоже, созрела.
1. температура (DS1820 где-то доложон валяться)
2. фиксировать пропадание электричества (по возможности с организацией RTC и запоминанием, когда пропало, когда появилось)
3. мониторить состояние ведра
Собственно, дело за малым - начать да кончить. Не решен вопрос с выбором контроллера - боюсь, что tiny2313 просто не хватит памяти на реализацию TCP/IP. Может это тот случай, когда никакой контроллер и не нужен? DS1820, "монитор ведра" и прочее может контролировать через LPT порт одного из сервера? Сервер ведь имеет резервное питание?
|
|
|
|
|
Dec 12 2010, 23:52
|

Местный
  
Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714

|
Цитата(dvl @ Dec 13 2010, 00:07)  Может это тот случай, когда никакой контроллер и не нужен? DS1820, "монитор ведра" и прочее может контролировать через LPT порт одного из сервера? Сервер ведь имеет резервное питание? 1) Есть не только серверные с серверами, но и без них (коммуникации) а также "тупо шкафы с цисками". 2) Вы таки не поверите, но серверы HP ProLiant DL3xx и DL5xx не имеют наружних LPT портов... впрочем, как и многие совремённые мамы По теме - сваял такую вот схемку. Может, кто на досуге закритикует? Питать планирую от 3.7-вольтовой зарядки для сотового.
|
|
|
|
|
Dec 13 2010, 03:51
|
Местный
  
Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798

|
я для себя в аналогичной (да практически идентичной) задаче принял следующее решение: самый дешевый роутер из поддающихся пилению (искать по *-WRT) и на любом понравившемся пике-тини-меге необходимые датчики-кнопочки-пищалки. вяжутся по UART`у. на круг (учитывая, что вагонные поставки не планируются даже в самых радужных снах) выходит даже дешевле чем на арме с сетью. например минимум, с которым сталкивался - DIR300($25), но лучше дир320(~$40) или что-то аналогичное из совсем китайцев. бонусом получаем все возможные плюшки - веб-интерфейс, снмп, смтп, сислог, локальное хранилище логов на флешке/карточке и функциональность, какая только в голову взбредет. ну и сроки внедрения. лично у меня от первых набросков до полноценной работы ушла неделя (в удовольствие больше) времени. сейчас это полноценный центр (удаленного) управления серверной с контролем состояния (напряжения всех железок, температура где только вздумается, влажность) всего что там есть, включением-выключением, ребутом оборудования, логированием событий. а как прикрутил сим300 (сначала вообще был классический семен ме45), так еще и к географии не привязан - веб/вап/смс. где-то так... даже по стоимости железа такое решение выходит всего на 10-15 баксов дороже standalone. а по программингу... лучше умолчим. вешается это дело на первый попавшийся бесперебойник (у меня это все дело потребляет максимум 15 ватт) и получаем непрерывную работоспособность. да, после некоторых событий еще и мониторинг силовой сети прикрутил. так что и электриков есть возможность своевременно пнуть.  вот смотрите. первое Ваше сообщение от 20 ноября. т.е. прошел месяц. из результатов - только размышления над схемой. да уже пару недель все это могло работать и приносить результаты. а учитывая Цитата В данном случае если со всеми задачами "по отдельности" я готов справиться, то с эзернетом работаю только как админ, но не как "железячник" значит пара скриптов для такого "обычного" линуха в кроне Вам проблемой не будут.
|
|
|
|
|
Dec 13 2010, 05:47
|
Местный
  
Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798

|
ну если 8бит, то отличное решение в свое время предложил Rst7. там всего три корпуса - мега, 8201 и буфер. вот она: http://electronix.ru/forum/index.php?showtopic=44276Берите, творчески перерабатывайте и все. а то про ENC уже столько всего переговорено, что и повторяться не стоит. если самоцель такая - 8бит и сеть. то да. а если практичное решение за разумное время с хорошими возможностями по наворачиванию возможностей... ну Вы меня поняли.  сначала на базе lighttpd, потом от него отказался и сделал на основе родного.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|