ардуино мега 1860 и интернет шил v1.1 без sd

dronsoft
Offline
Зарегистрирован: 02.06.2011

Народ помогите решить проблему с программированием для интернет шилда.

шилд встает на родные места как и в уно на меге но пример ни один не работает а точнее не пингуется шилд. пробовал различные библиотеки на некоторых пишет что нет файла хотя он есть в папке библеотеки.

maksim
Offline
Зарегистрирован: 12.02.2012

Очередной стук в подвале... вы вроде не новичек на форуме. 

У данного шилда, если конечно это он - вы решили нам не показывать что у вас за шилд,

отсутствует ICSP-разъем на нижней стороне,

в отличии от тех шилдов, которые работают с Mega.

А так как у Uno и Mega SPI-выводы находятся на разных выводах ваш шилд с хардовым SPI без дополнительных манипуляций работать не будет.

Uno:

  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, для чего используется библиотека SPI.

Mega:

  • SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino. Также выводы SPI могут быть выведены на блоке ICSP, который совместим с платформами Duemilanove и Diecimila.

 

И, кстати, очень похоже, что разъем ICSP на вашем шилде находится как раз в нужном месте и распиновка его совпадает. Есть шанс обойтись малой кровью - выпаять штырьки ICSP-разъма с лицевой стороны и впаять на их место с обратной стороны гнезда - как на последней картинке.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Спасибо за разъяснение. именно этот шилд. извеняюсь за не информативность по поводу фотографии шилда.

А по поводу не новичек можно сказать что он и есть ) давно не занимался теперь заного востанавливаю знания.

Если я правильно понял то если перепаять контакты на шилде  ICSP в низу сделать маму тоесть шилд заработает.

А по поводу стукав подвале писк что то не особо работает на форуме и сколько не с мотрел страниц по инет шилду не заметил нужного на данный момент.

Maksim. благодарю.

maksim
Offline
Зарегистрирован: 12.02.2012

Если разъем на положенном месте, то должно заработать, если конечно работал на Уне, еще может быть прийдется в библиотеке подправить вывод SS, но если в библиотеке к нему обращаются как к 10-му, то все должно и так работать.

"Уважаемые товарищи ученые, у меня в подвале стук. Объясните, пожалуйста, причину этого стука"

dronsoft
Offline
Зарегистрирован: 02.06.2011

Не знаю его брали в месте с мегой но так запустить и не смогли вот мнеи подогнали за ненадобностью )

 

dronsoft
Offline
Зарегистрирован: 02.06.2011

Я не ученый но в подвале стук может быть из за того что слесаря сантехника закрыли там. )

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Ваш шилд - нестандарный, и создан похоже для UNO подобных плат. С мегой будет работать только если проводами соединить. С библиотекой Ethernet может не заработать так как она для W5100, а у вас похоже ENC28J60.

dronsoft
Offline
Зарегистрирован: 02.06.2011

да именно на том чипе ENC28J60

maksim
Offline
Зарегистрирован: 12.02.2012

NeiroN пишет:

Ваш шилд - нестандарный,

Уж действительно, куда оригинальным ардуиновским шилдам до стандартов... и кстати, каких стандартов?

NeiroN пишет:

С мегой будет работать только если проводами соединить.

Уверены? Без проводов не заработает? Сообщения выше почитайте и на шилд внимательно помотрите.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Припоял с низу платы на ICSP-разъем мамы заливал различные скетчи но увы ничего.

 

maksim
Offline
Зарегистрирован: 12.02.2012

Смотрите библиотеку и вывод SS. Везде где в библиотеке есть манипуляции с SS меняйте на 13.

dronsoft
Offline
Зарегистрирован: 02.06.2011

в какой именно библиотеке

 

maksim
Offline
Зарегистрирован: 12.02.2012

Даже не знаю, в Российской Государственной...

Погуглите как работают с шилдами на ENC28J60.

dronsoft
Offline
Зарегистрирован: 02.06.2011

) я так то поэтому и написал сюда вопрос что в гугле нормального не нашел ничего только копипаст и рерайт копипаста

maksim
Offline
Зарегистрирован: 12.02.2012

Ну так а как же, гугл вообщи ничего не ищет

17 июл 2012 ... Час повозился с ENC28J60, только поднял сервер по готовым примерам (и то , 90% не работают)... До клиента так и не допер, может, ...
arduino.ru/forum/.../internet-shild-enc28j60
27 июл 2013 ... Всем привет. Хочу сделать веб интерфейс и открыть страницу например index.html с sd карточки, но не как не могу найти пример с ...
arduino.ru/forum/.../arduino-uno-enc28j60-sd-card
images?q=tbn:ANd9GcSVvqNFjtY_nz5B1Xefhhu
1 апр 2013 ... Коллеги, здравствуйте! Прошу помощи. Уже мозг сломал. Есть схема расширения входов на 74LS165. Стандартная. Работает по SPI.
arduino.ru/forum/.../nano-ethernetshield-enc28j60
16 фев 2012 ... Подскажите пожалуйста как правильно соединить Arduino UNO и ENC28J60 Ethernet LAN Network Module Schematic For Arduino чтобы ...
arduino.ru/.../arduino-uno-i-enc28j60-ethernet-lan-network-module- schematic-arduino
20 фев 2013 ... Подскажите, пожалуйста ссылочку на описания всех методов, функций в этой библиотеке. А лучше, если это возможно, приведите ...
arduino.ru/forum/.../ethershield-api-dlya-enc28j60
15 июл 2013 ... Сут такова. NANO+ENC28J60 Ethernet Shield, залил скетч, Ethernet кабель воткнул, зеленая лампа горит, оранжевая пару раз мигнет и ...
arduino.ru/.../remontiruem-enc28j60-ethernet-shield-arduino-nano-30-rj45- webserver-module
24 июн 2012 ... помогите разобраться в проблеме: имеется ардуино точнее клон craftduino ()
arduino.ru/forum/.../problema-s-enc28j60arduino-0
13 июл 2013 ... Приветствую, all. Единственная библиотека, с которой хоть что-то отвечается в браузер - EtherCard по ссылке leshak. На данный ...
arduino.ru/forum/.../server-enc28j60-arduino-103

 

maksim
Offline
Зарегистрирован: 12.02.2012

Если пытались запустить этот шилд с библиотекой <Ethernet.h>, то не удивительно что у вас ничего не работает.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Я это все осмотрел

maksim
Offline
Зарегистрирован: 12.02.2012

И ?

dronsoft
Offline
Зарегистрирован: 02.06.2011

Не получается запустить либо не пингуется либо выдает ошибку при компиляции

// EtherShield webserver demo
#include "EtherShield.h"

// please modify the following two lines. mac and ip have to be unique
// in your local area network. You can not have the same numbers in
// two devices:
static uint8_t mymac[6] = {
  0x54,0x55,0x58,0x10,0x00,0x25}; 
  
static uint8_t myip[4] = {
  192,168,1,125};

#define MYWWWPORT 80
#define BUFFER_SIZE 550
static uint8_t buf[BUFFER_SIZE+1];

// The ethernet shield
EtherShield es=EtherShield();

uint16_t http200ok(void)
{
  return(es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\n\r\n")));
}

// prepare the webpage by writing the data to the tcp send buffer
uint16_t print_webpage(uint8_t *buf)
{
  uint16_t plen;
  plen=http200ok();
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<html><head><title>Arduino ENC28J60 Ethernet Shield V1.0</title></head><body>"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<center><h1>Welcome to Arduino ENC28J60 Ethernet Shield V1.0</h1>"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<hr><br><h2><font color=\"blue\">-- Put your ARDUINO online -- "));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<br> Control digital outputs"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<br> Read digital analog inputs HERE"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<br></font></h2>") );
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</center><hr>"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("V1.0 <a href=\"http://blog.thiseldo.co.uk\">blog.thiseldo.co.uk</a>"));
  plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</body></html>"));

  return(plen);
}


void setup(){

  // Initialise SPI interface
  es.ES_enc28j60SpiInit();

  // initialize enc28j60
  es.ES_enc28j60Init(mymac);

  // init the ethernet/ip layer:
  es.ES_init_ip_arp_udp_tcp(mymac,myip, MYWWWPORT);
}

void loop(){
  uint16_t plen, dat_p;

  while(1) {
    // read packet, handle ping and wait for a tcp packet:
    dat_p=es.ES_packetloop_icmp_tcp(buf,es.ES_enc28j60PacketReceive(BUFFER_SIZE, buf));

    /* dat_p will be unequal to zero if there is a valid 
     * http get */
    if(dat_p==0){
      // no http request
      continue;
    }
    // tcp port 80 begin
    if (strncmp("GET ",(char *)&(buf[dat_p]),4)!=0){
      // head, post and other methods:
      dat_p=http200ok();
      dat_p=es.ES_fill_tcp_data_p(buf,dat_p,PSTR("<h1>200 OK</h1>"));
      goto SENDTCP;
    }
    // just one web page in the "root directory" of the web server
    if (strncmp("/ ",(char *)&(buf[dat_p+4]),2)==0){
      dat_p=print_webpage(buf);
      goto SENDTCP;
    }
    else{
      dat_p=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 401 Unauthorized\r\nContent-Type: text/html\r\n\r\n<h1>401 Unauthorized</h1>"));
      goto SENDTCP;
    }
SENDTCP:
    es.ES_www_server_reply(buf,dat_p); // send web page data
    // tcp port 80 end

  }

}

 

а вот ошибка
EtherShield_webserver.cpp: In function 'void setup()':
Ethershield_webserver.pde:-1: error: 'class EtherShield' has no member named 'ES_enc28j60SpiInit'

maksim
Offline
Зарегистрирован: 12.02.2012
dronsoft
Offline
Зарегистрирован: 02.06.2011

Да смотрел еще до того как мне создать эту тему.

 

maksim
Offline
Зарегистрирован: 12.02.2012

И ?

dronsoft
Offline
Зарегистрирован: 02.06.2011

и тишина не работает

 

dronsoft
Offline
Зарегистрирован: 02.06.2011

не понимаю может я что то не дочитал или библиотеки не в ту оболочку сую а может сдох шилд 

dronsoft
Offline
Зарегистрирован: 02.06.2011

maksim.    может начать с самого начала и определится с библотекой и как подключить правильно. я пользуюсь роутером TPLink 841 настроен DHCP как автоматическая раздача IP адресов

maksim
Offline
Зарегистрирован: 12.02.2012

Качаете эту либу https://github.com/turicas/Ethernet_ENC28J60/archive/master.zip и как я вам писал выше находите файл в этой библиотеке utility/enc28j60.c и меняете в нем ENC28J60_CONTROL_CS 53 на 10:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
	#define ENC28J60_CONTROL_CS     53
	#define SPI_MOSI                51
	#define SPI_MISO                50
	#define SPI_SCK                 52
#else
	#define ENC28J60_CONTROL_CS     10
	#define SPI_MOSI                11
	#define SPI_MISO                12
	#define SPI_SCK                 13
#endif

то есть вот так:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
	#define ENC28J60_CONTROL_CS     10
	#define SPI_MOSI                51
	#define SPI_MISO                50
	#define SPI_SCK                 52
#else
	#define ENC28J60_CONTROL_CS     10
	#define SPI_MOSI                11
	#define SPI_MISO                12
	#define SPI_SCK                 13
#endif

сохраняете файл и пробуете примеры из этой библиотеки.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Не работают примеры а точнее не пингуется и не открывается. нижний разъем ICP я припоял 

maksim
Offline
Зарегистрирован: 12.02.2012

Как проверяете? Вы видили что в примерах указывается статический IP, а следовательно DHCP тут нет.

dronsoft
Offline
Зарегистрирован: 02.06.2011

да я видел и ставил ip тот который в диапазоне моих настроек

dronsoft
Offline
Зарегистрирован: 02.06.2011

открываю в браузере страницы нет. не пингуется

может просче по скайпу показать?

мой скайп dronsoft

 

maksim
Offline
Зарегистрирован: 12.02.2012

Подключите напрямую к компу (без роутеров, хабов и т.д. и т.п.) залейте пример WebServerDEBUG, настроите IP-шники, попробуите зайти на страницу из браузера и смотрите что у вас в сериал-монитор выводится.

dronsoft
Offline
Зарегистрирован: 02.06.2011

не хочет работать и так тоже 

maksim
Offline
Зарегистрирован: 12.02.2012

А как вы определили что не работает? В сериал-монитор что выводится?

dronsoft
Offline
Зарегистрирован: 02.06.2011

ничего

может я что то не так запусаю забыл видимо совсем

 

maksim
Offline
Зарегистрирован: 12.02.2012

в начале скейтча эту строку добавьте

#define ETHERSHIELD_DEBUG

 

dronsoft
Offline
Зарегистрирован: 02.06.2011

все равно ( не хочет монитор ничего не показывает

dronsoft
Offline
Зарегистрирован: 02.06.2011

 на меге не получилось запустить запустил на нано 4. но почему то в мониторе показывает server 0.0.0.0

maksim
Offline
Зарегистрирован: 12.02.2012

А к Нане вы через тот же припаянный ICSP подключились? Вот что еще можно попробовать сделать - добавьте все в тот же файл строку:

void enc28j60Init(uint8_t* macaddr)
{
	// initialize I/O
        // ss as output:
	pinMode(53, OUTPUT);
	pinMode(ENC28J60_CONTROL_CS, OUTPUT);
	CSPASSIVE; // ss=0
        //
	pinMode(SPI_MOSI, OUTPUT);
	pinMode(SPI_SCK, OUTPUT);
	pinMode(SPI_MISO, INPUT);

	digitalWrite(SPI_MOSI, LOW);
	digitalWrite(SPI_SCK, LOW);

	/*DDRB  |= 1<<PB3 | 1<<PB5; // mosi, sck output
	cbi(DDRB,PINB4); // MISO is input

И скорее всего шилд заведется и на Меге.

dronsoft
Offline
Зарегистрирован: 02.06.2011

да к припаянной подлючился но мак нулевой

maksim
Offline
Зарегистрирован: 12.02.2012

На меге запустился?

dronsoft
Offline
Зарегистрирован: 02.06.2011

нет на меге еще неупел поробовать а на нано работает но не так как в описании 

maksim
Offline
Зарегистрирован: 12.02.2012

На нане 10 вывод соединяете с 10 выводом шилда?

dronsoft
Offline
Зарегистрирован: 02.06.2011

на нане все заработало про 10 пин был не в курсе, сейчас на меге попробую и не получается

dronsoft
Offline
Зарегистрирован: 02.06.2011

Maksim на меге не хочет работать може как ни будь по другомц русключить?

maksim
Offline
Зарегистрирован: 12.02.2012
dronsoft
Offline
Зарегистрирован: 02.06.2011

Я про мегу писал что на ней не работает.

maksim
Offline
Зарегистрирован: 12.02.2012

Ну так а на Нане работает нормально? Или то же не работает или вы не проверяли?

dronsoft
Offline
Зарегистрирован: 02.06.2011

на нане работает а на меге нет

 

maksim
Offline
Зарегистрирован: 12.02.2012

С какой библиотекой работает на Нане?

dronsoft
Offline
Зарегистрирован: 02.06.2011

ETHER_28J601 вот на ней примеры работают но монитор что то не смог посмотреть

 

maksim
Offline
Зарегистрирован: 12.02.2012

Еще раз перепроверьте, то о чем написано в сообщениях #25 и #37 и еще раз попробуйте на Меге. Если работает на Нане значит должен работать и на Меге.