W5500_client+Atmega8_для самых начинающих.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Ночь плохо спал. Думки покоя не давали.
Утром пришел на работу и опять попробовал установить соединение с удаленным сервером, в надежде, что не я виноват. Но нет. Не прошло....
Стал пересматривать еще раз и код программы и все написанное Романом с самого начала.
Пока не дошел до строк:
- пишем 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 КБ) 327 скачиваний
Спасибо Роману!!!
Реклама
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

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:
[uquote="kondeg",url="/forum/viewtopic.php?p=4070338#p4070338"]По поводу напряжения питания 5V модуля....
На схеме стоит стабилизатор.
Сегодня переключил его на 3.3V[/uquote]
У меня больше не стоит)) У меня W5500 подключён к роутеру. А в роутере свой стабилизатор (импульсный, с высоким КПД) 3.3V ))

Добавлено after 9 minutes 17 seconds:
[uquote="kondeg",url="/forum/viewtopic.php?p=4070338#p4070338"]На анализаторе ничего не вижу. Выставляю фильтр по ip = 192.168.0.110 (модуля) и пусто.[/uquote]
Ничего и не будет. W5500 надо подключать к анализатору. А у Вас W5500 подключён к шлюзу (роутеру).

Перед соединением с сервером W5500 отправляет ARP запрос на шлюз (роутер) для определения MAC-адреса шлюза (роутера).
Пакет ARP запроса использует бродкаст адреса (MAC-адрес FF:FF:FF:FF:FF:FF)
Поэтому анализатор видит ARP запрос.
ip_192_168_0_110.jpg
(94.55 КБ) 312 скачиваний
А дальше шлюз (роутер) отправляет 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 КБ) 309 скачиваний
Теперь, когда мы знаем как работает браузер надо в точности скопировать работу браузера в W5500. Кроме DNS запроса.))

Скопировать в W5500 всё что передаёт браузер.
HTTP.jpg
(151.46 КБ) 316 скачиваний
Чтобы сервер 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 КБ) 310 скачиваний
Только по даташиту протокол 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 КБ) 449 скачиваний
И подключаюсь к нему как браузером так и с помощью W5500
дом_2.jpg
(196.83 КБ) 540 скачиваний
Через всякие VPN...
Screenshot_2.jpg
(186.04 КБ) 319 скачиваний
Тогда анализатор работает и всё чётко видно. ))
:tea:
Короче... вариантов много))
Реклама
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома привет.
Попробовал сегодня , по твоему совету , на своем локальном сервере поработать с подключением к нему и посмотреть через анализатор.
В общем все прошло хорошо и на 80 и 443 портах.
прикрепляю снимки анализатора.
port_80.png
(96.27 КБ) 312 скачиваний
port_443.png
(107.74 КБ) 308 скачиваний
На 443 порту W5500 подключается ко все, которые я пробовал (google, yandex, pogoda19) сайтам,
а по 80 никак.
Пока все на этом.
Должен уже два дня как отдыхать, но напарник попросил подменить.
До встречи в следующую среду.
С уважением к тебе Константин.
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

google, yandex, vk и т.д. все работают изначально по HTTPS - порт 443.
HTTPS - протокол с шифрованием.
Подключиться к ним можно.
>SYN
>SYN ACK
>ACK
А передавать ничего нельзя. Потому что HTTPS попросит протокол шифрования TLS.
Протокол шифрования TLS для Ардуины слишком сложный.
Хотя не знаю. Не пробовал))
:tea:
Хотел использовать облачный сервер для хранения данных... типа Яндекс диск и т.д.
Но протокол шифрования TLS для МК слишком сложный.
А облачный сервер для хранения данных без шифрования (HTTP - порт 80) я не нашёл...
Жаль...
:(
Реклама
Эиком - электронные компоненты и радиодетали
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома здравствуй.
Привет всем.
Решил в воскресенье поработать немного с модулем.
Подправил код для теста соединения и передачи данных.
Теперь могу наблюдать на мобильнике есть передачи (соответственно и соединение с сайтом) или нет.
Передача идет с интервалом в 50 секунд.
Если без сбоев со стороны хоста отработает несколько суток, то думаю и дальше будет работать.
Немного по другому сконфигурировал socket_2. Прописал в конфигурации порт 443, а в конфигурации адреса назначения передачи прописал порт 80.
Будем наблюдать.
Всем хороших выходных.
Реклама
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

kondeg писал(а):Теперь могу наблюдать на мобильнике есть передачи (соответственно и соединение с сайтом) или нет.
На мобильнике ? Чисто интересно...
А как W5500 подключён к мобильнику ? Там приложение какое на мобильнике ?

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

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

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Вообще мне не нравится протокол TCP. Слишком сложно и ненадёжно.
Лучше всё делать по UDP. Проще и надёжней))
Да Рома, это так. Но что есть, то есть. Буду "добивать" эту тему до логического конца.
На мобильнике ? Чисто интересно...
А как W5500 подключён к мобильнику ? Там приложение какое на мобильнике ?
:)) Нет. Приложений нет, передаю на страницу сайта термометра тестовый счет числа от 0 до 10.
порт назначения для сайтов с HTTP должен быть порт 80.
Когда в конфигурации сокета указываю 80 порт, то модуль никак не переходит в ESTABLISHED (статус 0x17)
Вот такие дела.
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

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 КБ) 300 скачиваний
Добавить в схему ещё несколько деталей и получится аналог W5500 на простом МК.
Причём с лучшими параметрами чем у модуля W5500)) В частности с меньшим потреблением. это важно для автономной работы. Например если датчик температуры работает автономно. И т.д. и т.п.
:tea:
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома привет.
Сегодня "пересадил" всю программу из ардуино в свой W5500+Atmega_8.
Данные отправляются, температура на страничке меняется-отображается...
Красота... :))
При порт Destination 80 модуль никак не переходит в ESTABLISHED (статус 0x17) ?
Странный какой-то сайт))
Интересно то, что модуль на 80_м порту не соединяется ни с одним сайтом за пределами моего предприятия.. Грешу все таки на сервер нашего предприятия.. Попробую дома соединиться на 80_м порту.
Хотя с локальным сервером, который стоит на моем ноутбуке, соединяется по 80_му порту.
Разве что добавить тайм-аут на каждое действие.
Тайм аут как использовать? Команду в модуль отправлять? Честно говоря слышал про него, но как задействовать не знаю.
Добавить в схему ещё несколько деталей и получится аналог W5500 на простом МК.
Причём с лучшими параметрами чем у модуля W5500)) В частности с меньшим потреблением. это важно для автономной работы. Например если датчик температуры работает автономно. И т.д. и т.п.
Рома. Я так далек от таких знаний, если бы только знал...
Если бы не ты, так бы и отправлял данные через ардуинку.
А так хоть немного "пощупал" W5500 изнутри :))
За что тебе огромное спасибо !!!
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

kondeg писал(а):Интересно то, что модуль на 80_м порту не соединяется ни с одним сайтом за пределами моего предприятия.. Грешу все таки на сервер нашего предприятия..
Грешить не надо)) Надо включить анализатор и всё будет понятно.

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

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

Добавлено after 3 minutes 56 seconds:
[uquote="kondeg",url="/forum/viewtopic.php?p=4075202#p4075202"]РТайм аут как использовать? Команду в модуль отправлять? Честно говоря слышал про него, но как задействовать не знаю.[/uquote]
У модуля W5500 есть куча регистров настройки...
Среди кучи регистров настройки есть и регистр тайм-аута...
Сейчас не вспомню)) Надо глянуть даташит...
Я им никогда не пользовался. Мне он не нужен)) У меня всё программно.
:tea:
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома здравствуй.
1- Включаем анализатор.
2- Подключаемся к серверу с помощью браузера (по умолчанию браузер отправляет запрос на порт 80, если не указано другое).
Браузер с сервером соединяется. И обмен данными идет.
браузер_сервер_.jpg
(249.94 КБ) 217 скачиваний
У меня проблема вот где:
- сконфигурировали 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;
}
Рома. Может быть я по невнимательности где то в настройках ошибку допустил?
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

kondeg писал(а):Может быть я по невнимательности где то в настройках ошибку допустил?
Угу))
[uquote="kondeg",url="/forum/viewtopic.php?p=4075584#p4075584"]когда в конфигурации socket_2 указан порт 80, тогда модуль никак не хочет менять свой статус на 0x17.
Ну а если порт указан 443, тогда соединяется без проблем.
А вот передача данных на сервер идет по 80-му порту.[/uquote]
Угу))
Когда в конфигурации socket_2 указан порт 80, тогда модуль никак не хочет менять свой статус на 0x17.
Потому что порт 80 - только для сервера. А у Вас W5500 в режиме клиента. В режиме клиента нужен другой порт.

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

Выше уже писал что могут быть проблемы с портами... Точнее с сервером и шлюзом предприятия...
[uquote="roman.com",url="/forum/viewtopic.php?p=4073258#p4073258"]порт назначения Destination для сайтов с HTTP должен быть порт 80.
порт отправителя Source может быть любой разрешённый от 1000 до 65535.
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP[/uquote]
W5500 в режиме клиента:
порт Destination - должен быть 80.
порт Source - должен быть от 1000 до 65535.

На фото у браузера так:
Screenshot_1.jpg
(116.49 КБ) 216 скачиваний
Браузер это клиент.
Браузер передаёт (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:
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома спасибо тебе огромное.
Разъяснил.
Браузер это клиент.
Браузер передаёт (Destination) данные на сервер по 80-му порту.
А принимает (Source) данные с сервера по 57670-му порту.
Все это на слуху у меня было, а вот понимание пришло только с совершенными мной ошибками.
Опять-же если бы не твои разъяснения, Рома, то до этого бы не додумался.
Указал в настройках порт 57670 - все работает.
Еще раз спасибо тебе огромное Рома.
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

))
Я думал что все знают как работает протокол TCP.
https://ru.wikipedia.org/wiki/Transmiss ... l_Protocol
Формат TCP
slide-29.jpg
(85.12 КБ) 234 скачивания
К стати... в разных виртуальных машинах
windows-socket-programming-l.jpg
(80.53 КБ) 217 скачиваний
алгоритм работы сокета такой же как в W5500))
TCP+States+in+Normal+Connection+Lifetime.jpg
(78.26 КБ) 204 скачивания
Разберётесь как работает W5500, научитесь писать приложения на языках высокого уровня... Python... Java... и т.д.))
Всё везде работает одинаково))
:tea:
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Я думал что все знают как работает протокол TCP
Ну уж я то точно не знал. Вернее знал на уровне пользователя браузером. :))
Но до общения с тобой о многих вещах даже не догадывался. Спасибо Рома тебе большое!!!
Теперь читая документацию уже понимаю о чем речь.
И естественно дальше буду читать. :))
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Как и обещал выкладываю свой проект полностью (вместе с web_сайтом).
Может быть кому и интересно будет.
Распространяется совершенно свободно.
Три архива.

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

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

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

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

Ну и самое главное: огромная благодарность Роману ( roman.com ) Если бы не он, так бы и пользовался arduino особо не вникая, что делает та или иная функция.
Занимался со мной как с малым ребенком.
Рома спасибо Вам огромное!!!
Атмега_8_W5500_client.rar
(248.18 КБ) 295 скачиваний
web_site.rar
(209.34 КБ) 276 скачиваний
ROM_code_чтение.rar
(354 байт) 256 скачиваний
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

Осталось только сделать из W5500 свой домашний Сервер. Чтобы не пользоваться сторонними сайтами.
Всё что нужно - иметь дома белый IP.
:tea:
kondeg
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср фев 11, 2015 01:18:12
Откуда: г. Уссурийск

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение kondeg »

Рома очень заманчиво, и главное выполнимо, но пока так.
Спасибо тебе Роман за обучение огромное!!!!
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение GoldenAndy »

roman.com, или научиться работать с DDNS
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: W5500_client+Atmega8_для самых начинающих.

Сообщение roman.com »

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

Вернуться в «Периферия»