Как то раз мне потребовалось устройство способное соединяться с удаленным сервером и пересылать байты. Конечно, для этих целей можно использовать компьютер, но это громоздко и неудобно, да и надежность такой системы оставляет желать лучшего слишком сложное устройство. Другое дело микроконтроллер, например Microchip PIC, MSC-51 или Atmel AVR простой, надежный, потребляет минимум энергии и способен надежно выполнить узкий круг поставленных задач. Например, мониторинг сигнализации через Internet или Ethernet сеть. Всё бы хорошо, но тут появляется очередная проблема протокол TCP/IP. Реализовать на AVR или PIC стек протоколов TCP/IP задача выполнимая, но требует времени, а время, как известно, деньги. Надо было срочно и с минимальным геморроем. И вот тут мне на помощь пришел интерфейсный модуль Ethernet RS232. Задача стандартная, поэтому предложений на рынке готовых модулей предостаточно, однако не стоит торопиться. Тут есть ряд тонкостей, связанных с особенностями работы данных устройств. Например, подавляющее большинство модулей может работать исключительно в роли сервера, которому требуется выделенный IP адрес. Устройство-клиент работает только с специализированным софтом, как правило под Windows, и открывает виртуальный COM порт который соединяется с удаленной системой (UART Ethernet модуль) и обеспечивает обмен данными. Не самый удобный вариант. Для моей задачи данная конструкция была совершенно непригодна. Поэтому я начал искать дальше, вскоре был обнаружен замечательный модуль EG-SR-7100, а потом и его более новая модификация WIZ100SR. Почитал характеристики оно! Все для решения моей задачи!
Протколы:
TCP, UDP, IP, ARP, ICMP, MAC, DHCP, PPPoE
Интерфейсы:
10/100 Base-T Ethernet (Auto detection),
RS232 (3.3V, 230Kbps 8-N-1, 8-O-1, 8-E-1, 7-O-1, 7-E-1)
Размеры:
50mm x 30mm x 12mm
В общем, замечательная штука!
Заказал, оплатил (стоит эта радость порядка 28 баксов), дождался, получил. Чтобы сэкономить лишних 140 долларов, я решил не покупать демоплату, а спаять ее самому, благо схема была и ничего изобретать там не пришлось. Для сборки отладочной платы потребуется микросхема MAX3232, стабилизатор напряжения LM11173.3, логика 74HC14 ну и немного рассыпухи. В итоге получается полный аналог WIZ100SR-EVB стоящий на пару порядков дешевле оригинала.
Проблемы:
Нулевой проблемой стала колодка для подключения. PLS гнезда с шагом 2мм не было в радиусе пятиста километров, поэтому я тупо просверлил дырки в плате и впаял напрямую
Первая проблема с которой я столкнулся отсутствие RJ45 разъема с встроенным согласующим трансформатором. Решилась она просто Трансформатор FC-22 GTS был выпаян из старой сетевой карты, заодно я позаимствовал оттуда же и RJ45 гнездо. Дальше есть одна маленькая тонкость, касаемая подключения этого трансформатора без которой ничего работать не будет. В классической схеме подключения FC-22 (да и других Ethernet трансформаторов) средняя точка на стороне PHY подключена на землю напрямую, либо через конденсатор. В модуле WIZ100SR все оказалось совершенно не так. В отличии от EG-SR-7100 тут имеется вывод PwFbOut (Power Feedback Out колодка JP2 контакт 1) на котором находится 3.3 вольта со внутреннего стабилизатора модуля. Этот вывод надо завести на центральный выводы трансформатора FC-22 со стороны PHY как показано на схеме. И их же через конденсатор в 0.2 uF завести на землю, как я показал ниже на схеме.
Второй проблемой стало отсутствие у меня джампера для перевода модуля в режим отладки (уже исправлено в последней ревизии платы) по RS232. В этом режиме невозможен обмен по Ethernet, зато можно изменить настройки модуля через UART. Все что надо для перехода в режим отладки- посадить вывод Status (колодка JP1 контакт 12) на GND. После чего модуль начинает принимать управляющие команды по RS232.
Третьей проблемой стала невозможность работы программы для настройки под Windows 2000 SP4. Может это глюк конкретного экземпляра винды, может глюк программы, не знаю. Под Windows XP работает без проблем.
Четвертая проблема консоль, а точнее ввод команд. Изначально консоль настроена на скорость 57600 и автодетекта там нет. Так что я поначалу затупил и подумал, что у меня дохлый порт в модуле. Команды нужно вводить не совершая лишних нажатий, т.е. чётко, как в инструкции (сразу вспомнилось как чатился в Hyper Terminal). Благо команд всего три :).
Когда проблемы были решены я подключился через Telnet (просто указав в настройках модуля адрес и порт) к серверу towel.blinkenlights.nl и посмотрел четвертый эпизод звездных войн в ASCII графике. Коннект модуль держит железно, без ошибок было прокачано более двух мегабайт. Потом я просто вырубил систему.
Оцените статью!