Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по AVR+Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
aspID
Собственно задача назревала достаточно долго, но похоже, созрела.

Немного введения. Существует "отдельностоящая" серверная. В количестве двух штук. В них бывают случаи сбоя по ~220, в результате чего кондиционер самостоятельно бывает, не запускается, в результате чего довольно быстро начинает нарастать t. Это проблема первая. В общем-то крайне близкая проблема, результат тот же, но причины разные - при переходе лето-зима и наоборот периодически кондей опять же "встает". Причины не нашли, поэтому, просто дергаем "кондиционерщиков". А за это время температура опять же, нарастает... И, наконец, еще одна проблема - в одной из серверных резервный, а в другой - боевой кондиционеры не имеют "наружнего" слива. Т.е. слив конденсата организован в локальное харнилище - по-простому - ведро. Имеет место быть ограниченность системы в силу небесконечности накопителя smile.gif по простому - ведро наполняется рано или поздно. В итоге имеем задачу - собрать два схожих устройства, с возможностью дальнейшего масштабирования (планируется организация "полноценных" серверных либо просто закрытых "серверных шкафов" в других городах). Устройства должны иметь возможность мониторинга трех параметров:

1. температура (DS1820 где-то доложон валяться)

2. фиксировать пропадание электричества (по возможности с организацией RTC и запоминанием, когда пропало, когда появилось)

3. мониторить состояние ведра (исполнительный механизм, вернее, идея его организации, имеется - датчик наполнения будет самым, пожалуй, простейшим - на базе обычного кулера с поговревшей обмоткой - к крыльчатке прилажен рычаг с поплавком, поплавок всплыл, крыльчатка повернулась, датчик Холла, имеющийся внутри кулера, выдал "1" вместо "0" на выходе.

Собственно, дело за малым - начать да кончить. Не решен вопрос с выбором контроллера - боюсь, что tiny2313 просто не хватит памяти на реализацию TCP/IP. А делать прийдется именно TCP поскольку таким образом достигается масштабируемость любого уровня - и в перспективе на другой город, и в имеющихся масштабах - между этажами нет прямого интерфейса, зато свободных портов в коммутаторах найти можно. Но дальше первого же маршрутизатора UDP не протолкнешь. Собирать данные планируется на "большом брате", благо, опять же, свободных вычислительных ресурсов в контексте данной задачи на каком-нибудь из серверов найти можно с избытком.

Это было введение на будущее. А теперь, с позволения, начну задавать глупые вопросы  smile3046.gif

Чем отличаются следующие трансформаторные развязки. На старой доброй сетевухе-комбе имеются и тот и другой, оба - 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)

Что из себя представляет та и другая конфигурация? Как-то даже растерялся...

esaulenka
Википедия Вам в помощь.
Первый - под коаксиал, второй - под витую пару.

А по остальному.. я б ARM взял. Получится куда лучшая масштабируемость...
aspID
Цитата(esaulenka @ Nov 20 2010, 20:16) *
я б ARM взял. Получится куда лучшая масштабируемость...


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


Что там iosifk про гайку M3 говорил? smile.gif

А на коленке ничего делать не надо. Надо раскрутить начальство (раз есть серверные, значит есть и начальство) на закупку каких-нибудь демо-плат, и на них уже и собрать. Осталось только подобрать что-то нужное (процесор + сеть + макетные "дырочки").
aspID
Цитата(esaulenka @ Nov 21 2010, 15:33) *
А на коленке ничего делать не надо. Надо раскрутить начальство (раз есть серверные, значит есть и начальство) на закупку


Начальство мы не раскручиваем, решаем имеющуюся проблему своими силами. А нет - так хоть ночуй и карауль самолично. Но шоп работало! У начальства бывают разные политики управления. Мелкий саботаж в этом плане неуместен. И давайте не будем их здесь обсуждать, pls. Мозоли и так болят. По существу хочется вспомнить, как держать в руках паяльник, собрать что-нибудь работающее и внедрить на месте, дабы облегчить жизнь себе и коллегам, при этом получить дополнительное моральное удовлетворение с минимальными материальными затратами  rolleyes.gif

P.S.: про гайку М3. В данном случае если со всеми задачами "по отдельности" я готов справиться, то с эзернетом работаю только как админ, но не как "железячник", а посему вопрос остается прежним, ищу (заметьте, ИЩУ, а не жду, это действительно так) варианты реализации стека TCP/IP на базе AVR 8-разрядного. Рассматриваю варианты кастрации, но передавать данные все равно необходимо по IP, причины уже назвал - свичи и маршрутизаторы "по дороге от А к Б"
Rst7
Вопрос к топикстартеру - почему так цинично игнорируется поиск (я не говорю даже про гугль, конкретно в данном форуме)? Минимум было бы несколько вариантов ответов на Ваш вопрос.

Ну а дабы не просто ругать, а быть конструктивным - http://electronix.ru/forum/index.php?showtopic=44276
alexeyv
Есть такие библиотеки
1. uIP
2. Procyon AVRlib

Может чем-нибудь поможет
aspID
Цитата(Rst7 @ Nov 22 2010, 01:46) *
Вопрос к топикстартеру - почему так цинично игнорируется поиск (я не говорю даже про гугль, конкретно в данном форуме)? Минимум было бы несколько вариантов ответов на Ваш вопрос.

Ну а дабы не просто ругать, а быть конструктивным - http://electronix.ru/forum/index.php?showtopic=44276


Поиском пользуюсь, темы изучаю... Вашу ругань понимаю, но свои вопросы - есть свои... Если позволите, конечно unsure.gif



Цитата(alexeyv @ Nov 22 2010, 10:44) *
Есть такие библиотеки
1. uIP
2. Procyon AVRlib

Может чем-нибудь поможет

Про первое - изучаю, там есть ссылки вроде как даже народ начинал портировать под мелкие АВРы, но почему-то оба проекта "в стадии разработки" уже достаточно долго висят... Смушшаеть. За второе - спасибо! Еще не видел.

P.S. Нашел крайне любопытную вещь: http://www.avrfreaks.net/index.php?func=vi...=Freaks%20Tools но по ссылке на обещанные исходники.... то ли лыжи не едут, то ли я... Боюсь, что второе sad.gif
aspID
Похоже, потихоньку схожу с ума... Пытаюсь отлаживать собранную схему, понимаю, что осциллограммы какие-то "не такие", каких ожидалось. (в частности, задающая частота CLK). Беру два щупа двухканального осыиллографа, измеряю в одной точке, получаю результат, который ни в какие ворота не лезет - вплоть до того, что не "хватается" за синхронизацию ни по положительному, ни по отрицательному фронту. Ну, думаю, хана бобику... Не изменяя никаких параметров, цепляю оба щупа (как были вместе, так одновременно и цепляю) к калибратору и вижу стабильную синхронизированную картинку. По любому каналу, по любому фронту "цепляется" уверенно... Где что могу делать не так? Прилагаю две картинки: сигнал с калибратора и "подопытный" сигнал. Видно, что на калибраторе частота выше, но фронты не валятся и все ок на обоих каналах. Но в случае сигнала из схемы даже на картинке видно, что засинхронизирован непонятно от чего. Стоит синхронизация по первому (синему) каналу, по положительному фронту. (метки синхронизации - маленькие синие штрихи на соответствующих осях).

Калибратор:

Нажмите для просмотра прикрепленного файла

Сигнал из схемы:

Нажмите для просмотра прикрепленного файла
ncux
Может, если еще не поздно, имеет смысл взглянуть в сторону 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 стек.
aspID
Цитата(ncux @ Nov 26 2010, 12:45) *
Может, если еще не поздно



Увы... Даже не в "поздно" дело, а в определяющих задачу параметрах: сделать из того, что имеется в наличии.

Цитата(ncux @ Nov 26 2010, 12:45) *
в том числе готовый TCP/IP стек.


Это, конечно, шик... Но пока для меня - фантастика...  wassat.gif
aspID
Совершенно не понимаю, в чем причина. Не получается получить LNK на 28J60. Пробовал уже менять - результат тот же. Не чувствует линка. Подскажите, куда копать, пожалуйста...
aspID
На данный момент так и не смог понять поведения щупов, расчитанных на частоту с запасом (описывал в 9 посте)

Но на данный момент созрел еще один вопрос. Перебрал схему, собрал на другом трансформаторе, который совмещен с разъемом. Не знаю, что изменилось, но линк стал по крайней мере, определяться. Но в изучаемом примере все равно не срабатывает стек протоколов. Поэтому, вопрос - какие существуют способы отладки Ethernet?
Как можно отследить, скажем, приходящие фреймы или что-то еще? Как искать, какая часть простейшей, грубо говоря, схемы не работает?
Оговорюсь, у осциллографа неизолированы входы, существует связь по "земляному" проводу с ПК... Хотя, можно попробовать отключать RS232 (отлаживаюсь на STK500)
alexeyv
Есть снифер Wireshark.
С помощью него, например, можно выяснить правильность структуры кадра, просмотреть содержание принятого/переданного кадра или вообще его наличие в сети.
aspID
Цитата(alexeyv @ Dec 2 2010, 11:14) *
Есть снифер Wireshark.
С помощью него, например, можно выяснить правильность структуры кадра, просмотреть содержание принятого/переданного кадра или вообще его наличие в сети.


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

---
Dmitry
aspID
На данный момент имею проблемы с распознаванием линка sad.gif опять устройство отказывается видеть линк при подключении провода. Не знаю, на что грешить. Вечером работало, утром отказалось. Что я делаю не так, не могу понять... Может, провода от розетки-с-трансформатором до самой 28J60 длинные слишком? они у меня организованы в плоский шлейфик, длина его порядка 15см.... наверное, буду от него избавляться
XVR
Цитата
Может, провода от розетки-с-трансформатором до самой 28J60 длинные слишком? они у меня организованы в плоский шлейфик,
Кгхм wacko.gif Там вообще то дифиренциальная линия с нормированным волновым сопротивлением. Так что 'плоский шлейфик 15см' вполне может все угобить
Rst7
QUOTE
опять устройство отказывается видеть линк при подключении провода. Не знаю, на что грешить.


Начать рекомендую с простого - у 28J60 нет MDI-X, посему часто тип патчкорда (прямой/перекрестный) важен. Второе - не попутали ли Вы где случайно цепи RX+ и RX-? Ибо ENC не понимает изменения полярности (см. Errata).

Ну и конечно, надо убедиться в правильности инициализации.

QUOTE
Так что 'плоский шлейфик 15см' вполне может все угобить


Я Вам по секрету скажу, что 10МБит через любой гуанокабель поднимается. Шлейф до одного места.
XVR
Цитата(Rst7 @ Dec 7 2010, 11:56) *
Я Вам по секрету скажу, что 10МБит через любой гуанокабель поднимается. Шлейф до одного места.
Пардон, слона то я и не заметил - на 10М шлейф скорее всего не помешает (если у него какие нибудь провода случайно не оторвутся sm.gif )

aspID
Как бы из того и исхожу, что 10Мбит... Вроде не должно вносить никаких критических ошибок. Тем не менее... Опять же, ситуация до смешного - именно вечером работало, утром с тем же кабелем - не работает... Где я облондинился не понимаю. Скажите только, как определять, куда +, куда - подавать на трансформатор?
Транс используется вот такой: ftp://ftp.efo.ru/pub/wiznet/MJLU1T516.pdf
Нажмите для просмотра прикрепленного файла
Сейчас подается:
OUT+ = "2"
OUT- = "1"
IN+ = "8"
IN- = "7"
aspID
Собрал "сеть" в сочетании "хост-хост", минуя все свичи. Просниффил трафик. От прямизны/кроссоверности кабеля результат не зависит. Устройство категорически не желает отзываться. Хотя линк загорается и поднимается на 10Мбит стабильно. Инициализация ходит, данные между контроллером и 28J60 ходят верно, но уровень от 28J60 и в провода - упорно остается для меня непонимаем. Может быть, действительно, будет работать только при разведении на плате, а "на коленке" даже на 10Мбит не желает?
И еще вопрос... Кварц с тремя ногами - ему обвязка в виде конденсаторов нужна? Есть низкий кварц 25МГц, он с конденсаторами работает, но если меняю его на "трехногий" без кондёров - то стоит как рыба об лед.
Еще обнаружил, что чем-то ловлю не совсем понятную помеху - по питанию получается некоторая "грязь", которая на тактёр идет очень даже заметной, сигнал отслеживается, но шум приличный. Может быть, с этим связано нежелание даже на 10Мбит работать?
Maverick
Цитата(alexeyv @ Dec 2 2010, 07:14) *
Есть снифер Wireshark.
С помощью него, например, можно выяснить правильность структуры кадра, просмотреть содержание принятого/переданного кадра или вообще его наличие в сети.

можно ссылку, плиз

upd

нашел

она бесплатная или платная. Если платная, то можно ли лекарство
aspID
Цитата(Maverick @ Dec 10 2010, 13:55) *
можно ссылку, плиз

 http://www.wireshark.org


К нему еще WinPCAP понадобится. Если не ошибаюсь, идет в комплекте (давно это было...)

esaulenka
Блин. По Вашей же ссылке предлагают скачать в т.ч. исходные коды.
Дальше обсуждать проблемы "лекарства" будем? sm.gif
dvl
Цитата(aspID @ Nov 20 2010, 15:39) *
Собственно задача назревала достаточно долго, но похоже, созрела.

1. температура (DS1820 где-то доложон валяться)

2. фиксировать пропадание электричества (по возможности с организацией RTC и запоминанием, когда пропало, когда появилось)

3. мониторить состояние ведра

Собственно, дело за малым - начать да кончить. Не решен вопрос с выбором контроллера - боюсь, что tiny2313 просто не хватит памяти на реализацию TCP/IP.
Может это тот случай, когда никакой контроллер и не нужен? DS1820, "монитор ведра" и прочее может контролировать через LPT порт одного из сервера? Сервер ведь имеет резервное питание?

aspID
Цитата(dvl @ Dec 13 2010, 00:07) *
Может это тот случай, когда никакой контроллер и не нужен? DS1820, "монитор ведра" и прочее может контролировать через LPT порт одного из сервера? Сервер ведь имеет резервное питание?


1) Есть не только серверные с серверами, но и без них (коммуникации) а также "тупо шкафы с цисками".


2) Вы таки не поверите, но серверы HP ProLiant DL3xx и DL5xx не имеют наружних LPT портов... впрочем, как и многие совремённые мамы sad.gif

По теме - сваял такую вот схемку. Может, кто на досуге закритикует? Питать планирую от 3.7-вольтовой зарядки для сотового.
Нажмите для просмотра прикрепленного файла
garlands
я для себя в аналогичной (да практически идентичной) задаче принял следующее решение: самый дешевый роутер из поддающихся пилению (искать по *-WRT) и на любом понравившемся пике-тини-меге необходимые датчики-кнопочки-пищалки. вяжутся по UART`у. на круг (учитывая, что вагонные поставки не планируются даже в самых радужных снах) выходит даже дешевле чем на арме с сетью. например минимум, с которым сталкивался - DIR300($25), но лучше дир320(~$40) или что-то аналогичное из совсем китайцев. бонусом получаем все возможные плюшки - веб-интерфейс, снмп, смтп, сислог, локальное хранилище логов на флешке/карточке и функциональность, какая только в голову взбредет. ну и сроки внедрения. лично у меня от первых набросков до полноценной работы ушла неделя (в удовольствие больше) времени. сейчас это полноценный центр (удаленного) управления серверной с контролем состояния (напряжения всех железок, температура где только вздумается, влажность) всего что там есть, включением-выключением, ребутом оборудования, логированием событий. а как прикрутил сим300 (сначала вообще был классический семен ме45), так еще и к географии не привязан - веб/вап/смс. где-то так... даже по стоимости железа такое решение выходит всего на 10-15 баксов дороже standalone. а по программингу... лучше умолчим. вешается это дело на первый попавшийся бесперебойник (у меня это все дело потребляет максимум 15 ватт) и получаем непрерывную работоспособность. да, после некоторых событий еще и мониторинг силовой сети прикрутил. так что и электриков есть возможность своевременно пнуть. wink.gif

вот смотрите. первое Ваше сообщение от 20 ноября. т.е. прошел месяц. из результатов - только размышления над схемой. да уже пару недель все это могло работать и приносить результаты.

а учитывая
Цитата
В данном случае если со всеми задачами "по отдельности" я готов справиться, то с эзернетом работаю только как админ, но не как "железячник"

значит пара скриптов для такого "обычного" линуха в кроне Вам проблемой не будут.
aspID
Цитата(garlands @ Dec 13 2010, 09:51) *
значит пара скриптов для такого "обычного" линуха в кроне Вам проблемой не будут.


Можно, конечно, и сервак на линуксе завести с LPT портом... Но давайте вернемся к поставленной задаче - ограничимся 8К 8-bit МК sm.gif Что касается решения на роутере - практично, но не совсем интересно. К тому же, не очень понял, как Вы крутили там веб-фейс
garlands
ну если 8бит, то отличное решение в свое время предложил Rst7. там всего три корпуса - мега, 8201 и буфер. вот она: http://electronix.ru/forum/index.php?showtopic=44276
Берите, творчески перерабатывайте и все. а то про ENC уже столько всего переговорено, что и повторяться не стоит.
если самоцель такая - 8бит и сеть. то да. а если практичное решение за разумное время с хорошими возможностями по наворачиванию возможностей... ну Вы меня поняли. wink.gif

сначала на базе lighttpd, потом от него отказался и сделал на основе родного.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.