ENC28J60 (EtherCard) и SD-карта (SdFat) одновременно на Arduino Mega

Я разработал плату на основе Arduino Mega, которая использует WizNET Ethernet щит и включенный читатель SD-карты. Использование стандартной Ethernet-библиотеки и SdFat отлично работает.

Теперь я изменил свой аппаратный дизайн, чтобы использовать Плата Ethernet ENC28J60 от ElecFreaks и тому Плата для карточек ElecFreaks SD. Решение было принято, чтобы иметь лучшую способность конструировать корпус, который может быть установлен на DIN-рейку в электрическом шкафу. Я остался с SdFat, но мне пришлось использовать библиотеку EtherCard для общения с ENC28J60.

Я использовал контакт 13 и контакт 14 мега для линий выбора чипа и подключил две платы к SPI автобус. Обе платы работают отлично, используя файлы примеров из библиотеки. Я читаю свою конфигурацию из файла на SD-карте и настраиваю свой Ethernet со значениями из файлов. Все идет нормально. Доступ к SD-карте осуществляется правильно, а плата Ethernet отвечает на запросы ping. Проблема сейчас в том, что кажется, что я не могу сделать запрос TCP с платой Ethernet.

Как заставить эти две доски работать вместе?

Вот некоторый код, который должен делать свое дело, но это не так.

//Initial request
char request_uri[] = "/foo/bar/";
Stash::prepare(PSTR("GET $F HTTP/1.1" "\r\n""User-Agent: arduino/1.5.2" "\r\n""\r\n"),
request_uri);

ether.copyIp(ether.hisip, target_ip);
ether_sessionID = ether.tcpSend();
request_timer = millis() + REQUEST_TIMEOUT;

//And in the loop
ether.packetLoop(ether.packetReceive());

//Function called after initial request in loop (different state)
void checkTcpResponse() {
const char* reply = ether.tcpReply(ether_sessionID);

if (reply != 0) {
Serial.println(reply);
}
else {
if (millis() > request_timer) {
Serial.println("Timeout reached");
state = STATE_RESET;
delay(1000);
}
}
}

//This is just cut from the code, so it is not complete, etc.

При выполнении запроса я наблюдаю access.log подключенного веб-сервера. Ничего не происходит 🙁 Как уже было сказано, на примере WebClient библиотеки EtherCard запрос к данному веб-серверу работает и отображается в журнале.

0

Решение

Я знаю, что вы задавали этот вопрос год назад, но, похоже, никто не помог вам.

Я сталкивался с подобной проблемой при использовании Ethernet-карты enc28j60 вместе с SD-картой. Оба работали индивидуально, но не вместе.

Я решил проблему, но с помощью отдельного источника питания, чтобы дать мне 3,3 вольт.

Я использовал один из тех блоков питания, которые дают 3.3 & 5 вольт

У меня все еще были некоторые проблемы, пока я подключался через макет.

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

Было достаточно энергии для питания часов реального времени и ЖК-дисплея, а также на 5 вольт.

Возможно, вы уже решили свою проблему, но кто-то может найти это полезным.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]