Например TDA7294

Форум РадиоКот • Просмотр темы - W5500_client+Atmega8_для самых начинающих.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 20:09:24

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 86 ]    , , 3, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 04, 2021 03:12:17 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Ночь плохо спал. Думки покоя не давали.
Утром пришел на работу и опять попробовал установить соединение с удаленным сервером, в надежде, что не я виноват. Но нет. Не прошло....
Стал пересматривать еще раз и код программы и все написанное Романом с самого начала.
Пока не дошел до строк:
Цитата:
- пишем IP (Destination), порт (Destination) сервера
(для сервера HTTP порт 80, для сервера HTTPS порт 443, и т.д.)

Поменял с 80 на 443 и все заработало...
Сегодня не получится вечером протестировать модель на соединение, а завтра наверняка смогу.
По поводу напряжения питания 5V модуля....
На схеме стоит стабилизатор.
Сегодня переключил его на 3.3V
На анализаторе ничего не вижу. Выставляю фильтр по ip = 192.168.0.110 (модуля) и пусто.
Без фильтра много чего есть, но не разберусь что к чему. Выкладываю данные анализатора в момент соединения модуля с сервером:
Вложение:
ip_192_168_0_110.png [116.43 KiB]
Скачиваний: 265


Спасибо Роману!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 04, 2021 16:15:06 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
kondeg писал(а):
Пока не дошел до строк:
Цитата:
- пишем IP (Destination), порт (Destination) сервера
(для сервера HTTP порт 80, для сервера HTTPS порт 443, и т.д.)

:shock:
Странный сервер))
Должно быть так:
Сайт http://www.pogoda19.ru/ - это протокол HTTP порт 80.
Сайт https://www.pogoda19.ru/ - это протокол HTTPS порт 443.
:tea:

Добавлено after 2 minutes 59 seconds:
По поводу напряжения питания 5V модуля....
На схеме стоит стабилизатор.
Сегодня переключил его на 3.3V

У меня больше не стоит)) У меня W5500 подключён к роутеру. А в роутере свой стабилизатор (импульсный, с высоким КПД) 3.3V ))

Добавлено after 9 minutes 17 seconds:
На анализаторе ничего не вижу. Выставляю фильтр по ip = 192.168.0.110 (модуля) и пусто.

Ничего и не будет. W5500 надо подключать к анализатору. А у Вас W5500 подключён к шлюзу (роутеру).

Перед соединением с сервером W5500 отправляет ARP запрос на шлюз (роутер) для определения MAC-адреса шлюза (роутера).
Пакет ARP запроса использует бродкаст адреса (MAC-адрес FF:FF:FF:FF:FF:FF)
Поэтому анализатор видит ARP запрос.
Вложение:
ip_192_168_0_110.jpg [94.55 KiB]
Скачиваний: 250

А дальше шлюз (роутер) отправляет ARP ответ на MAC-адрес W5500.
Поэтому анализатор не видит ARP ответ шлюза (роутера).

А дальше W5500 отправляет все пакеты шлюзу (роутеру) с MAC-адресом шлюза (роутера).
Поэтому анализатор не видит пакеты W5500.
:roll:

Лучше сначала подключиться к сайту браузером и посмотреть как работает браузер.
1- браузер передаёт ARP запрос на шлюз (роутер) для определения MAC-адреса шлюза (роутера).
2- браузер передаёт DNS запрос на DNS сервер для определения IP сервера http://www.pogoda19.ru/ = 31.31.196.28.
3- браузер передаёт SYN запрос для подключения к серверу IP сервера = 31.31.196.28.
Вложение:
Screenshot_1.jpg [101.71 KiB]
Скачиваний: 253

Теперь, когда мы знаем как работает браузер надо в точности скопировать работу браузера в W5500. Кроме DNS запроса.))

Скопировать в W5500 всё что передаёт браузер.
Вложение:
HTTP.jpg [151.46 KiB]
Скачиваний: 249

Чтобы сервер http://www.pogoda19.ru/ думал что W5500 это браузер.
Тогда всё должно работать чётко.
:tea:
А какой порт отправителя (Source Port) использует браузер ? Точно не 80. )) Source Port = 80 - это для HTTP Серверов.
На примере выше браузер использует Source Port = 34348.
Почему это может быть важно ? Я не знаю как настроен шлюз на предприятии)) Многие шлюзы на предприятии фильтруют трафик...
Поэтому лучше сделать порт (Source Port) в W5500 такой же как в браузере.

Меняем порт (Source Port) в настройках W5500... На всякий случай))

Далее открываем сокет.
Например откроем сокет номер 2.
Для этого надо прописать регистр сокета номер 2.
Регистр сокета номер 2 находится в блоке 0x09.
Записываем в него протокол TCP и порт (например как выше Source Port = 34348):

// Протокол: пишем протокол TCP Socket_2:
PORTB.6=0; // SS W5500
tx=0x00; SPI(); tx=0x00; SPI(); tx=0x4C; SPI(); // Address + Control Registers
tx=0x01; SPI(); // Data -0x01 (protocol TCP).
PORTB.6=1; // SS W5500
// Порт: пишем Socket_2 Source Port:
PORTB.6=0; // SS W5500
tx=0x00; SPI(); tx=0x04; SPI(); tx=0x4C; SPI(); // Address + Control Registers
tx=0x68; SPI(); // Data -0x68 (порт 34348)
tx=0x2C; SPI(); // Data -0x2C (порт 34348)
PORTB.6=1; // SS W5500
:tea:

Чтоб посмотреть все пакеты W5500 на анализаторе можно сделать все пакеты W5500 бродкаст.
Теоретически должно работать... зависит от шлюза (роутера). Не помню... Надо проверить))
Вложение:
2.jpg [71.02 KiB]
Скачиваний: 242

Только по даташиту протокол TCP в W5500 не поддерживает бродкаст. Не знаю... не пробовал)) Надо проверить))

Знаю что протокол UDP поддерживает бродкаст. Это я пробовал))

Чтоб W5500 передавал все пакеты с бродкаст по UDP надо сделать две вещи:
1- Перед отправкой пакета по протоколу UDP надо указать MAC-адрес (Destination).
2- Для передачи пакета использовать другую команду - вместо SEND использовать SEND_MAC.

1-
// (для команды SEND_MAC без автоматического ARP-запроса)
tx=0x00; SPI(); tx=0x06; SPI(); tx=0x4C; SPI(); // MAC, IP, порт

// MAC адрес - бродкаст :
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR0)(0x0006 - Address)
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR1)(0x0007 - Address)
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR2)(0x0008 - Address)
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR3)(0x0009 - Address)
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR4)(0x000A - Address)
tx=0xFF; SPI(); // Data // Destination Hardware Address (Sn_DHAR5)(0x000B - Address)

// IP адрес:
tx=31; SPI(); // Data // Destination IP Address (Sn_DIPR0)(0x000C - Address)
tx=31; SPI(); // Data // Destination IP Address (Sn_DIPR1)(0x000D - Address)
tx=196; SPI(); // Data // Destination IP Address (Sn_DIPR2)(0x000E - Address)
tx=28; SPI(); // Data // Destination IP Address (Sn_DIPR3)(0x000F - Address)

// порт:
tx=0x00; SPI(); // Data // Destination Port (Sn_DPORT0) (0x0010 - Address) -порт 80
tx=0x50; SPI(); // Data // Destination Port (Sn_DPORT1) (0x0011 - Address) -порт 80
...
...
...
2-
//Пишем команду передачи SEND_MAC Socket 2 Command:
PORTB.2=0; // SS W5500
tx=0x00; SPI(); tx=0x01; SPI(); tx=0x4C; SPI(); // Address + Control Registers
tx=0x21; SPI();// Data -0x21 (команда SEND_MAC без автоматического ARP-запроса)
PORTB.2=1; // SS W5500
:tea:

Ну или другой вариант сделать все пакеты бродкаст - использовать в W5500 режим MACRAW.
Режим MACRAW поддерживает любые протоколы. Вообще любые))
Только придётся писать все протоколы (включая TCP протокол) вручную)) А это долго...
:tea:

Добавлено after 1 hour 36 minutes 2 seconds:
Ну или третий вариант - запустить на своём компе свой сервер (аналог http://www.pogoda19.ru/) и подключаться к нему.
Вон я запустил у себя на компе простой Java сервер
Вложение:
Screenshot_1.jpg [105.89 KiB]
Скачиваний: 321

И подключаюсь к нему как браузером так и с помощью W5500
Вложение:
дом_2.jpg [196.83 KiB]
Скачиваний: 267

Через всякие VPN...
Вложение:
Screenshot_2.jpg [186.04 KiB]
Скачиваний: 229

Тогда анализатор работает и всё чётко видно. ))
:tea:
Короче... вариантов много))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт авг 05, 2021 03:18:15 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома привет.
Попробовал сегодня , по твоему совету , на своем локальном сервере поработать с подключением к нему и посмотреть через анализатор.
В общем все прошло хорошо и на 80 и 443 портах.
прикрепляю снимки анализатора.
Вложение:
port_80.png [96.27 KiB]
Скачиваний: 234

Вложение:
port_443.png [107.74 KiB]
Скачиваний: 240

На 443 порту W5500 подключается ко все, которые я пробовал (google, yandex, pogoda19) сайтам,
а по 80 никак.
Пока все на этом.
Должен уже два дня как отдыхать, но напарник попросил подменить.
До встречи в следующую среду.
С уважением к тебе Константин.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт авг 05, 2021 12:47:20 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
google, yandex, vk и т.д. все работают изначально по HTTPS - порт 443.
HTTPS - протокол с шифрованием.
Подключиться к ним можно.
>SYN
>SYN ACK
>ACK
А передавать ничего нельзя. Потому что HTTPS попросит протокол шифрования TLS.
Протокол шифрования TLS для Ардуины слишком сложный.
Хотя не знаю. Не пробовал))
:tea:
Хотел использовать облачный сервер для хранения данных... типа Яндекс диск и т.д.
Но протокол шифрования TLS для МК слишком сложный.
А облачный сервер для хранения данных без шифрования (HTTP - порт 80) я не нашёл...
Жаль...
:(


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс авг 08, 2021 04:57:53 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома здравствуй.
Привет всем.
Решил в воскресенье поработать немного с модулем.
Подправил код для теста соединения и передачи данных.
Теперь могу наблюдать на мобильнике есть передачи (соответственно и соединение с сайтом) или нет.
Передача идет с интервалом в 50 секунд.
Если без сбоев со стороны хоста отработает несколько суток, то думаю и дальше будет работать.
Немного по другому сконфигурировал socket_2. Прописал в конфигурации порт 443, а в конфигурации адреса назначения передачи прописал порт 80.
Будем наблюдать.
Всем хороших выходных.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн авг 09, 2021 00:04:23 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
kondeg писал(а):
Теперь могу наблюдать на мобильнике есть передачи (соответственно и соединение с сайтом) или нет.

На мобильнике ? Чисто интересно...
А как W5500 подключён к мобильнику ? Там приложение какое на мобильнике ?

порт назначения для сайтов с HTTP должен быть порт 80.
порт отправителя может быть любой разрешённый от 1000 до 65535.
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP

Вообще мне не нравится протокол TCP. Слишком сложно и ненадёжно.
Лучше всё делать по UDP. Проще и надёжней))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 11, 2021 01:56:28 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Цитата:
Вообще мне не нравится протокол TCP. Слишком сложно и ненадёжно.
Лучше всё делать по UDP. Проще и надёжней))

Да Рома, это так. Но что есть, то есть. Буду "добивать" эту тему до логического конца.
Цитата:
На мобильнике ? Чисто интересно...
А как W5500 подключён к мобильнику ? Там приложение какое на мобильнике ?

:)) Нет. Приложений нет, передаю на страницу сайта термометра тестовый счет числа от 0 до 10.
Цитата:
порт назначения для сайтов с HTTP должен быть порт 80.

Когда в конфигурации сокета указываю 80 порт, то модуль никак не переходит в ESTABLISHED (статус 0x17)
Вот такие дела.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт авг 12, 2021 12:54:11 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
kondeg писал(а):
Приложений нет, передаю на страницу сайта термометра тестовый счет числа от 0 до 10.

Лучше сделать свой сайт)) Там возможностей больше...
kondeg писал(а):
Когда в конфигурации сокета указываю 80 порт, то модуль никак не переходит в ESTABLISHED (статус 0x17)

При порт Destination 80 модуль никак не переходит в ESTABLISHED (статус 0x17) ?
Странный какой-то сайт))
kondeg писал(а):
Буду "добивать" эту тему до логического конца.

Так там больше нечего добивать)) Разве что добавить тайм-аут на каждое действие. Чтоб модуль не "зависал".
Больше там добивать нечего))
К стати в W5500 есть встроенный тайм-аут. Но я им не пользуюсь. проще делать программно в Ардуино (или МК).

Лучше подумать как добавить в Ардуино (или МК) протокол TLS 1.2 для работы с сайтами по протоколу HTTPS.
Это будет интересней))
В принципе можно. Только алгоритм RSA с AES256 и SHA256 ещё не готов...))

Интересней другое - убрать из схему модуль W5500 и сделать всё на Ардуино (или МК).
Вот к примеру я сделал UDP на простом МК.
Вложение:
Ethernet-Atmega8-тр.jpg [200.93 KiB]
Скачиваний: 217

Добавить в схему ещё несколько деталей и получится аналог W5500 на простом МК.
Причём с лучшими параметрами чем у модуля W5500)) В частности с меньшим потреблением. это важно для автономной работы. Например если датчик температуры работает автономно. И т.д. и т.п.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт авг 13, 2021 10:52:18 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома привет.
Сегодня "пересадил" всю программу из ардуино в свой W5500+Atmega_8.
Данные отправляются, температура на страничке меняется-отображается...
Красота... :))

Цитата:
При порт Destination 80 модуль никак не переходит в ESTABLISHED (статус 0x17) ?
Странный какой-то сайт))

Интересно то, что модуль на 80_м порту не соединяется ни с одним сайтом за пределами моего предприятия.. Грешу все таки на сервер нашего предприятия.. Попробую дома соединиться на 80_м порту.
Хотя с локальным сервером, который стоит на моем ноутбуке, соединяется по 80_му порту.

Цитата:
Разве что добавить тайм-аут на каждое действие.

Тайм аут как использовать? Команду в модуль отправлять? Честно говоря слышал про него, но как задействовать не знаю.

Цитата:
Добавить в схему ещё несколько деталей и получится аналог W5500 на простом МК.
Причём с лучшими параметрами чем у модуля W5500)) В частности с меньшим потреблением. это важно для автономной работы. Например если датчик температуры работает автономно. И т.д. и т.п.

Рома. Я так далек от таких знаний, если бы только знал...
Если бы не ты, так бы и отправлял данные через ардуинку.
А так хоть немного "пощупал" W5500 изнутри :))
За что тебе огромное спасибо !!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт авг 13, 2021 20:17:24 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
kondeg писал(а):
Интересно то, что модуль на 80_м порту не соединяется ни с одним сайтом за пределами моего предприятия.. Грешу все таки на сервер нашего предприятия..

Грешить не надо)) Надо включить анализатор и всё будет понятно.

1- Включаем анализатор.
2- Подключаемся к серверу с помощью браузера (по умолчанию браузер отправляет запрос на порт 80, если не указано другое).

На анализаторе должно быть примерно вот так:
Вложение:
браузер HTTP порт 80.jpg [153.66 KiB]
Скачиваний: 181

На анализаторе чётко видно, что браузер подключился к серверу с IP адресом 64.74.98.80 по протоколу HTTP на порт 80.
Значит порт 80 работает))
Если браузер на порт 80 к серверу подключился, значит и W5500 сможет))
Всё просто))
:tea:

Добавлено after 3 minutes 56 seconds:
РТайм аут как использовать? Команду в модуль отправлять? Честно говоря слышал про него, но как задействовать не знаю.

У модуля W5500 есть куча регистров настройки...
Среди кучи регистров настройки есть и регистр тайм-аута...
Сейчас не вспомню)) Надо глянуть даташит...
Я им никогда не пользовался. Мне он не нужен)) У меня всё программно.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб авг 14, 2021 02:53:27 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома здравствуй.
Цитата:
1- Включаем анализатор.
2- Подключаемся к серверу с помощью браузера (по умолчанию браузер отправляет запрос на порт 80, если не указано другое).

Браузер с сервером соединяется. И обмен данными идет.
Вложение:
браузер_сервер_.jpg [249.94 KiB]
Скачиваний: 156

У меня проблема вот где:
- сконфигурировали socket_2
Код:
// конфигурация socket №_2
void Init_Socket2(void)
{
   //// протокол TCP
   SS_0;
   SPI(0x00); SPI(0x00); SPI(0x4C);
   SPI(0x01);
   SS_1;
   //// порт 80 или 433
   // устанавливается до открытия socket
   SS_0;
   SPI(0x00); SPI(0x04); SPI(0x4C); //socket source port / запись
   //SPI(0x00); SPI(0x50);//port 80
   SPI(0x01); SPI(0xBB);//port 443
   SS_1;
}

Открываем socket_2
Код:
// открываем socket №_2
void Open_Socket2(void)
{
   SS_0;
   SPI(0x00); SPI(0x01); SPI(0x4C); //команда socket_2 / запись в sock_2
   SPI(0x01); //data = открыть socket команда OPEN (стр.46)
   SS_1;
}


И затем подключаемся к серверу
(проверяем подключен или нет):

Код:
//подключаемся к server(conect)+
uint8_t Connect_client_server(void)
{
   Open_Socket2(); //открыли сокет

   SS_0;
   //Подключение к серверу. Команда conect
   SPI(0x00); SPI(0x01); SPI(0x4C); //команда CONECT
   SPI(0x04);
   SS_1;
                      // проверка (ожидание) подключения к серверу
                      for (uint8_t count =0; count<100; count++)
                      {
                     SS_0;
                     SPI(0x00); SPI(0x03); SPI(0x48);
                     SPI2(0x00);  //rx2
                     SS_1;
                     
                            if (rx2==23)  // 0x17  если есть подключение к серверу
                            {
                             return 1; // если есть подключение к серверу
                            }
                  _delay_ms(100);       
                      }                  
   return 0; // если за 10 секунд не удалось подключится               
}

И вот когда в конфигурации socket_2 указан порт 80, тогда модуль никак не хочет менять свой статус на 0x17.
Ну а если порт указан 443, тогда соединяется без проблем.
А вот передача данных на сервер идет по 80-му порту.
Но это уже после того как W5500 изменил статус на 0x17
Код:
//ip и port назначения (server)
void Destination_Ip_Port_Server(void)
{
   SS_0;
   SPI(0x00); SPI(0x0C); SPI(0x4C);
   //ip
        SPI(31); SPI(31); SPI(196); SPI(28); //pogoda19.ru
   SPI(0x00); SPI(0x50);//port 80
   SS_1;
}

Рома. Может быть я по невнимательности где то в настройках ошибку допустил?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб авг 14, 2021 16:24:53 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
kondeg писал(а):
Может быть я по невнимательности где то в настройках ошибку допустил?

Угу))
когда в конфигурации socket_2 указан порт 80, тогда модуль никак не хочет менять свой статус на 0x17.
Ну а если порт указан 443, тогда соединяется без проблем.
А вот передача данных на сервер идет по 80-му порту.

Угу))
Когда в конфигурации socket_2 указан порт 80, тогда модуль никак не хочет менять свой статус на 0x17.
Потому что порт 80 - только для сервера. А у Вас W5500 в режиме клиента. В режиме клиента нужен другой порт.

Ну а если порт указан 443, тогда соединяется без проблем.
При этом передача данных на сервер идет по 80-му порту.
А приём данных с сервера идет по 443-му порту.
Это тоже не правильно. Порт 443 - тоже только для сервера.

Выше уже писал что могут быть проблемы с портами... Точнее с сервером и шлюзом предприятия...
порт назначения Destination для сайтов с HTTP должен быть порт 80.
порт отправителя Source может быть любой разрешённый от 1000 до 65535.
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP

W5500 в режиме клиента:
порт Destination - должен быть 80.
порт Source - должен быть от 1000 до 65535.

На фото у браузера так:
Вложение:
Screenshot_1.jpg [116.49 KiB]
Скачиваний: 160

Браузер это клиент.
Браузер передаёт (Destination) данные на сервер по 80-му порту.
А принимает (Source) данные с сервера по 57670-му порту.
Браузер работает правильно.
:tea:
Сделайте чтобы у W5500 в режиме клиента было точно так же как у браузера.

Для этого в настройках сокета пишем Source 57670 порт:

// конфигурация socket №_2
void Init_Socket2(void)
{
//// протокол TCP
SS_0;
SPI(0x00); SPI(0x00); SPI(0x4C);
SPI(0x01);
SS_1;
//// Source порт 57670
// устанавливается до открытия socket
SS_0;
SPI(0x00); SPI(0x04); SPI(0x4C); //socket source port / запись
SPI(0xE1); SPI(0x46);//Source port 57670
SS_1;
}
Всё))
:tea:

P.S.
Должно быть так:

1- Для W5500 в режиме сервера (W5500_server) в настройках сокета пишем Source порт 80:
// конфигурация socket №_2
void Init_Socket2(void)
{
//// протокол TCP
SS_0;
SPI(0x00); SPI(0x00); SPI(0x4C);
SPI(0x01);
SS_1;
//// Source порт 80
// устанавливается до открытия socket
SS_0;
SPI(0x00); SPI(0x04); SPI(0x4C); //socket source port / запись
SPI(0x00); SPI(0x50);// Source port 80
SS_1;
}

2- Для W5500 в режиме клиента (W5500_klient) в настройках сокета пишем Source порт 57670:
// конфигурация socket №_2
void Init_Socket2(void)
{
//// протокол TCP
SS_0;
SPI(0x00); SPI(0x00); SPI(0x4C);
SPI(0x01);
SS_1;
//// Source порт 57670
// устанавливается до открытия socket
SS_0;
SPI(0x00); SPI(0x04); SPI(0x4C); //socket source port / запись
SPI(0xE1); SPI(0x46);// Source port 57670
SS_1;
}
Всё))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс авг 15, 2021 01:44:04 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома спасибо тебе огромное.
Разъяснил.
Цитата:
Браузер это клиент.
Браузер передаёт (Destination) данные на сервер по 80-му порту.
А принимает (Source) данные с сервера по 57670-му порту.

Все это на слуху у меня было, а вот понимание пришло только с совершенными мной ошибками.
Опять-же если бы не твои разъяснения, Рома, то до этого бы не додумался.
Указал в настройках порт 57670 - все работает.
Еще раз спасибо тебе огромное Рома.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс авг 15, 2021 12:26:16 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
))
Я думал что все знают как работает протокол TCP.
https://ru.wikipedia.org/wiki/Transmiss ... l_Protocol
Формат TCP
Вложение:
slide-29.jpg [85.12 KiB]
Скачиваний: 159

К стати... в разных виртуальных машинах
Вложение:
windows-socket-programming-l.jpg [80.53 KiB]
Скачиваний: 148

алгоритм работы сокета такой же как в W5500))
Вложение:
TCP+States+in+Normal+Connection+Lifetime.jpg [78.26 KiB]
Скачиваний: 140

Разберётесь как работает W5500, научитесь писать приложения на языках высокого уровня... Python... Java... и т.д.))
Всё везде работает одинаково))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн авг 16, 2021 03:33:18 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Цитата:
Я думал что все знают как работает протокол TCP

Ну уж я то точно не знал. Вернее знал на уровне пользователя браузером. :))
Но до общения с тобой о многих вещах даже не догадывался. Спасибо Рома тебе большое!!!
Теперь читая документацию уже понимаю о чем речь.
И естественно дальше буду читать. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт авг 17, 2021 08:20:31 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Как и обещал выкладываю свой проект полностью (вместе с web_сайтом).
Может быть кому и интересно будет.
Распространяется совершенно свободно.
Три архива.

-Для микроконтроллера (постарался максимально описать код комментариями). Если что то не понятно будет, по мере сил буду отвечать на вопросы.

-Вся папка для сайта. Определяется с мобильного зашли на сайт или с компьютера. В мобильник выводится тестовый счет от 1 до 10, для контроля(передаются данные с модуля или нет (может интернет овалился или еще какая причина))

-И код для определения ROM_кода датчика. Используемые там функции полностью описаны в коде для Atmega_8

Принимаются все замечания по коду (читабельность, скорость и вес).

Ну и самое главное: огромная благодарность Роману ( roman.com ) Если бы не он, так бы и пользовался arduino особо не вникая, что делает та или иная функция.
Занимался со мной как с малым ребенком.
Рома спасибо Вам огромное!!!
Вложение:
Атмега_8_W5500_client.rar [248.18 KiB]
Скачиваний: 208

Вложение:
web_site.rar [209.34 KiB]
Скачиваний: 206

Вложение:
ROM_code_чтение.rar [354 байт]
Скачиваний: 192


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт авг 17, 2021 11:37:37 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
Осталось только сделать из W5500 свой домашний Сервер. Чтобы не пользоваться сторонними сайтами.
Всё что нужно - иметь дома белый IP.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 18, 2021 12:06:20 
Первый раз сказал Мяу!

Зарегистрирован: Ср фев 11, 2015 01:18:12
Сообщений: 39
Откуда: г. Уссурийск
Рейтинг сообщения: 0
Рома очень заманчиво, и главное выполнимо, но пока так.
Спасибо тебе Роман за обучение огромное!!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 18, 2021 15:49:07 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
roman.com, или научиться работать с DDNS

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср авг 18, 2021 19:15:05 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6881
Откуда: .ru
Рейтинг сообщения: 0
GoldenAndy писал(а):
или научиться работать с DDNS

И шо ? )) Это решает все проблемы ?
Где-то мы это уже обсуждали... как это неудобно и тормознуто и т.д. и т.п.
:roll:
И самое главное - как и при каких условиях это будет работать. И будет ли вообще ))
:tea:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 86 ]    , , 3, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y