ардуино мега 1860 и интернет шил v1.1 без sd
- Войдите на сайт для отправки комментариев
Втр, 24/09/2013 - 05:02
Народ помогите решить проблему с программированием для интернет шилда.
шилд встает на родные места как и в уно на меге но пример ни один не работает а точнее не пингуется шилд. пробовал различные библиотеки на некоторых пишет что нет файла хотя он есть в папке библеотеки.
Очередной стук в подвале... вы вроде не новичек на форуме.
У данного шилда, если конечно это он - вы решили нам не показывать что у вас за шилд,
отсутствует ICSP-разъем на нижней стороне,
в отличии от тех шилдов, которые работают с Mega.
А так как у Uno и Mega SPI-выводы находятся на разных выводах ваш шилд с хардовым SPI без дополнительных манипуляций работать не будет.
Uno:
Mega:
И, кстати, очень похоже, что разъем ICSP на вашем шилде находится как раз в нужном месте и распиновка его совпадает. Есть шанс обойтись малой кровью - выпаять штырьки ICSP-разъма с лицевой стороны и впаять на их место с обратной стороны гнезда - как на последней картинке.
Спасибо за разъяснение. именно этот шилд. извеняюсь за не информативность по поводу фотографии шилда.
А по поводу не новичек можно сказать что он и есть ) давно не занимался теперь заного востанавливаю знания.
Если я правильно понял то если перепаять контакты на шилде ICSP в низу сделать маму тоесть шилд заработает.
А по поводу стукав подвале писк что то не особо работает на форуме и сколько не с мотрел страниц по инет шилду не заметил нужного на данный момент.
Maksim. благодарю.
Если разъем на положенном месте, то должно заработать, если конечно работал на Уне, еще может быть прийдется в библиотеке подправить вывод SS, но если в библиотеке к нему обращаются как к 10-му, то все должно и так работать.
"Уважаемые товарищи ученые, у меня в подвале стук. Объясните, пожалуйста, причину этого стука"
Не знаю его брали в месте с мегой но так запустить и не смогли вот мнеи подогнали за ненадобностью )
Я не ученый но в подвале стук может быть из за того что слесаря сантехника закрыли там. )
Ваш шилд - нестандарный, и создан похоже для UNO подобных плат. С мегой будет работать только если проводами соединить. С библиотекой Ethernet может не заработать так как она для W5100, а у вас похоже ENC28J60.
да именно на том чипе ENC28J60
Ваш шилд - нестандарный,
С мегой будет работать только если проводами соединить.
Уверены? Без проводов не заработает? Сообщения выше почитайте и на шилд внимательно помотрите.
Припоял с низу платы на ICSP-разъем мамы заливал различные скетчи но увы ничего.
Смотрите библиотеку и вывод SS. Везде где в библиотеке есть манипуляции с SS меняйте на 13.
в какой именно библиотеке
Даже не знаю, в Российской Государственной...
Погуглите как работают с шилдами на ENC28J60.
) я так то поэтому и написал сюда вопрос что в гугле нормального не нашел ничего только копипаст и рерайт копипаста
Ну так а как же, гугл вообщи ничего не ищет.
Если пытались запустить этот шилд с библиотекой <Ethernet.h>, то не удивительно что у вас ничего не работает.
Я это все осмотрел
И ?
Не получается запустить либо не пингуется либо выдает ошибку при компиляции
// 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'
Вы темы выше читали?
http://arduino.ru/forum/programmirovanie/internet-shild-enc28j60#comment-12515
Да смотрел еще до того как мне создать эту тему.
И ?
и тишина не работает
не понимаю может я что то не дочитал или библиотеки не в ту оболочку сую а может сдох шилд
maksim. может начать с самого начала и определится с библотекой и как подключить правильно. я пользуюсь роутером TPLink 841 настроен DHCP как автоматическая раздача IP адресов
Качаете эту либу https://github.com/turicas/Ethernet_ENC28J60/archive/master.zip и как я вам писал выше находите файл в этой библиотеке utility/enc28j60.c и меняете в нем ENC28J60_CONTROL_CS 53 на 10:
то есть вот так:
сохраняете файл и пробуете примеры из этой библиотеки.
Не работают примеры а точнее не пингуется и не открывается. нижний разъем ICP я припоял
Как проверяете? Вы видили что в примерах указывается статический IP, а следовательно DHCP тут нет.
да я видел и ставил ip тот который в диапазоне моих настроек
открываю в браузере страницы нет. не пингуется
может просче по скайпу показать?
мой скайп dronsoft
Подключите напрямую к компу (без роутеров, хабов и т.д. и т.п.) залейте пример WebServerDEBUG, настроите IP-шники, попробуите зайти на страницу из браузера и смотрите что у вас в сериал-монитор выводится.
не хочет работать и так тоже
А как вы определили что не работает? В сериал-монитор что выводится?
ничего
может я что то не так запусаю забыл видимо совсем
в начале скейтча эту строку добавьте
все равно ( не хочет монитор ничего не показывает
на меге не получилось запустить запустил на нано 4. но почему то в мониторе показывает server 0.0.0.0
А к Нане вы через тот же припаянный 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И скорее всего шилд заведется и на Меге.
да к припаянной подлючился но мак нулевой
На меге запустился?
нет на меге еще неупел поробовать а на нано работает но не так как в описании
На нане 10 вывод соединяете с 10 выводом шилда?
на нане все заработало про 10 пин был не в курсе, сейчас на меге попробую и не получается
Maksim на меге не хочет работать може как ни будь по другомц русключить?
http://arduino.ru/forum/apparatnye-voprosy/arduino-nano-v-3-i-ethernet-nano-shield-v-10
Я про мегу писал что на ней не работает.
Ну так а на Нане работает нормально? Или то же не работает или вы не проверяли?
на нане работает а на меге нет
С какой библиотекой работает на Нане?
ETHER_28J601 вот на ней примеры работают но монитор что то не смог посмотреть
Еще раз перепроверьте, то о чем написано в сообщениях #25 и #37 и еще раз попробуйте на Меге. Если работает на Нане значит должен работать и на Меге.