Перейти к содержанию
    

после того как сделал абсолютно все рекомендации в эррате к 6 ревизии + прикрутил маленький шаманский бубен все работает уже вот 3 недели на подоконнике под постоянными fping'ами (100мс период, 256 байт длина) + время от времени в перекурах кнопаю его web-интерфейс. все шарашит нормально :)

шаманство заключалось в том, что раз в минуту проверяю к-во входящих пакетов (после выполнения последней эрраты редко зависает только прием пакетов). если их нет (а они будут, т к включено это все в офисную сеть с 50+ компутерами) то под зад его софтовым ресетом и все пучком. судя по статистике такое случалось всего 4 раза за 3 недели. клокать мегу от enc (потому ногу reset enc на мегу цеплять запрещаеца :) ). входные пакеты проверять только "полингом".

вот собстна после бессоных ночей только в таком режиме и заработала более-менее.

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

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

Последний раз к девайсу прикасался месяца 3 назад-ничего не виснет.Что я делаю неправильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Последний раз к девайсу прикасался месяца 3 назад-ничего не виснет.Что я делаю неправильно?

У меня так же - ATMEGA16 с собственным кварцем 16MHz, к ней подведена нога INT и RESET enc28j60. Но через некоторое время EPKTCNT виснет на нуле, т.е. входящих пакетов всегда нет :( WHALE, а у Вас какая ревизия чипа?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насчет ревизии-уже не помню.я начинал с ней долбаться в конце 2008 и уже забыл.

если хотите-могу вам отправить свои исходники.Попробуйте из них что-нибудь извлечь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насчет ревизии-уже не помню.я начинал с ней долбаться в конце 2008 и уже забыл.

если хотите-могу вам отправить свои исходники.Попробуйте из них что-нибудь извлечь.

Отправьте, пожалуйста. Почту сейчас в ЛС скину. Заранее благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

отправил

Огромное спасибо, WHALE!

По схеме: уже не первый раз замечаю, что CS у ENC подтягивают резистором, а у меня не подтянут. Может быть это влияет отрицательно на ЕНКшку? У меня схема соединения ENC та же (даже все компоненты и их номиналы совпадают с Вашей схемой), за исключением резистора на CS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так повесьте резистор-минутное дело.Правда,не думаю,что это сильно поможет..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал ловить пакеты по прерыванию даже не проверяя EPKTCNT (следовал примеру WHALE, т.к. даже схема соединения ENC почти полностью совпадает), девайс работал еще быстрее, чем без INT, но ENC также продолжал виснуть через несколько минут\часов в основном после простоя :( Пока сделал, как предложил HALFer, рестарт и переинициализацию enc28j60 каждую минуту (только при условии, если EPKTCNT == 0), девайс работает, но это, мягко говоря, не очень хороший вариант. В выходные попробую поставить на CS резистор, но, думаю, толку от этого не будет :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас МЕГА работает на 16Mhz.А питаете её от 5V?правильно-ли согласовали уровни с ENC.

У меня,если обратили внимание,Мега висит вместе с ENC на 3,3V и тактируется от 8Мгц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас МЕГА работает на 16Mhz.А питаете её от 5V?правильно-ли согласовали уровни с ENC.

У меня,если обратили внимание,Мега висит вместе с ENC на 3,3V и тактируется от 8Мгц.

Мега работает на 16MHz, питание 5В. Уровни согласовал с помощью 74HCT08N (который, кстати, рекомендуется в даташите самого ENC28J60), схему приводил выше, да вроде с этим не должно быть проблем (уровни воспринимаются нормально), хотя на всякий случай я пробовал менять на ходу на другую 74HCT08N (другого производителя) - результат тот же.

Только что выяснилась неприятная особенность: общение с девайсом абсолютно прекращается через некоторое время (т.е. после "зависания"). Как оказалось, не работает даже сброс, в том числе и аппаратный.

Проблем с инициализацией SPI вроде быть не должно (SPCR = (1<<SPE)|(1<<MSTR); SPSR |= (1<<SPI2X);), тем более что нога RESET через некоторое время тоже не воспринимает сигнал :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит "не работает даже сброс"? Вы видите осцилографом,что мега ресетит ENC, и обмен при этом не

возобновляется?Или мега тоже зависает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит "не работает даже сброс"? Вы видите осцилографом,что мега ресетит ENC, и обмен при этом не

возобновляется?Или мега тоже зависает?

Каждую минуту таймер выполняет следующие действия: подается на порт со светодиодом 1 - светодиод горит; выполняется ресет (хардварный) с инициализацией ENC; подается на порт со светодиодом 0 - светодиод не горит. Результаты таймера через некоторое время немного другие: светодиод меняет свое состояние, а ENC не сбрасывается (когда ENC ресетится - это видно даже по светодиоду link`а, который должен погасать на несколько сотен миллисекунд во время сброса). После зависа пакеты ENC принимает (другой светодиод моргает при приеме пакетов), при этом не срабатывает прерывание, не заполняется положительным числом регистр EPKTCNT (который и должен сообщать о приходе пакета). Точно вспомнить не могу, но, если я не ошибаюсь, не помогает даже установка другой ревизии ENC28J60 на ходу. Складывается впечатление, что виснет SPI у ATMEGA.

Изменено пользователем kernel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я даже не представляю,что надо сделать чтобы повесить мегу-мастера spi.

а установка ревизии ENC на ходу-это как и зачем?Она-же только читается.

вы не пробовали поставить мой протокол инициализации и приема пакетов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каждую минуту таймер выполняет следующие действия: подается на порт со светодиодом 1 - светодиод горит; выполняется ресет (хардварный) с инициализацией ENC; подается на порт со светодиодом 0 - светодиод не горит. Результаты таймера через некоторое время немного другие: светодиод меняет свое состояние, а ENC не сбрасывается (когда ENC ресетится - это видно даже по светодиоду link`а, который должен погасать на несколько сотен миллисекунд во время сброса). После зависа пакеты ENC принимает (другой светодиод моргает при приеме пакетов), при этом не срабатывает прерывание, не заполняется положительным числом регистр EPKTCNT (который и должен сообщать о приходе пакета). Точно вспомнить не могу, но, если я не ошибаюсь, не помогает даже установка другой ревизии ENC28J60 на ходу. Складывается впечатление, что виснет SPI у ATMEGA.

Очень сомневаюсь, что СПИ может зависнуть. Сам прикручиваю к мегам16-32, 48-88 цветные ЖКИ - там в одном пакете на дисплей идет 96*132*2= 25 тысяч байт, если б хотя бы 1 байт завис - были бы серьезные артефакты. А так все идеально, причем неделями напролет... Ищите косяки в коде, или глюки у ENC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подскажите люди знающие.

задача: есть простейший логер, на ATmega168, получает 50 байт по UART и пишет в AT45DB321D.

нужно эти данные (все или вновь добавленные) передать по TCP/IP на комп.

взял ENC28J60H подключил по примеру http://www.tuxgraphics.org/electronics/200...icle06111.shtml

TCP/IP их же. связка заработала.

 

инициатором запроса пересылки данных выступает комп в сети.

 

подскажите как правильно реализовать обмен данными в TCP/IP ?

 

сделал по примеру WEB сервера т.е. на запрос от компа в сети, отвечаю данными по 50 байт - работает.

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

 

где почитать про обмен данными ? или как правильно реализовать механизм передачи данных из флеш в комп ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...