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

lebiga

Свой
  • Постов

    163
  • Зарегистрирован

  • Посещение

Весь контент lebiga


  1. Мне немного помог конденсатор 15пик на тактовую и включенная подтяжка этого сигнала в LPC2368. НО все это шаманство, день от дня работает по-разному. Платы с starterkit (8 шт) с LPC2378 и KS8721BL работают как часы. То ли я так развел неудачно, то ли 2368 и 2378 EMAC модули различатся ???
  2. LwIP + LPC2468 без OS

    А это смотрели? как заведен сигнал CRS? http://electronix.ru/forum/index.php?showtopic=53056
  3. LwIP + LPC2468 без OS

    Если пинги идут - упаковка структур должна быть правильной, проверено. Многие сетевые карты позволяют отключать аппаратную checsum в своих опциях (вкладка свойства - настроить - дополнительно)
  4. LwIP + LPC2468 без OS

    На каком железе все это происходит?
  5. LwIP + LPC2468 без OS

    write только записывает в буфферы нужно еще заставить передать if (err == ERR_OK) { err=tcp_output(pcb); }
  6. Да, сам себя накрутил, где-то взял этот код... Когда стоял DM9161A - проблем небыло, поставил KS8721 - возникла... MCFG= MCFG_RES_MII | 0x01C0; //div 28 MCFG &= ~MCFG_RES_MII; - убрал эту строку - и заработало на 72Мгц
  7. Делитель 28 задержки ставил, не помогает это все в самом начале - подается команда сброса в микрел - и ответа нет никогда... с mam тоже игрался, проц ревизии В
  8. Так вот где собака порылась! А я на себя грешил... Ошибки CRC в lwip стеке постоянно присутствали, обойти удалось так - в файле ethernetif.c в функции low_lewel_input увеличил длину считываемого фрейма на 4 len = StartReadFrame()+4; и все заработало, т.е. дочитываю контрольную сумму. Установил это через анализ пакетов передаваемых по сети и принятых в стек Правда, не уверен - корректно ли все это... может есть еще какие-то засады? И еще - с платами стартеркит - работает ли Ethernet с установленной частотой процессора больше 50МГц? У меня глохнет начальная инициализация PHY на процедуре сброса. Проверял на нескольких платах, с частотами ниже 50МГц все ок. Может это и проблема из-за подтяжки вышесказанного сигнала?
  9. Я запрограммировал в 2378 ШИМ на выдачу сигнала FCLK/4 - работает! (72МГц - ШИМ=18МГц), по идее должно работать и F/2 (могу проверить). Это удобно для тактовой скоростного сигма-дельта ацп - меняешь частоту - меняется частота дискретизации. А с клоками другой периферии у меня были проблемы!
  10. Это из документации или личного опыта работы с платкой?
  11. LPC2138 (arm7), jtag error

    P1.26 на 0 через 1К подключен? На кварце нужно смотреть генерацию - есть? Можно проверить линии непосредственно на процессоре через фирмовую прогу J-LINK ARM..., типа "0 - clear TDI" и т.д. nSRST - как выполнено? RC цепь или супервизор? Нужно смотреть, не подключено ли навечно к 1 (я когда-то перепутал полярность диода параллельного резистрору RC цепи - была похожая ситуация). Как выход - проверить работоспособность проца путем прошивки через бутлоадер. И, кстати, при установленной защите к джитагу не достучаться - предварительно придется стереть через бутлоадер
  12. Сегодня Гранд в Киеве предложил покупать платку на OMAP3530 - до 200 у. енотов http://beagleboard.org/, у них - 145 исходящая. Кто - о рассматривал это - какие соображения, впечатления? Мне нужно что-то подобное готовое для некоторых немассовых проектов. Как с отладкой - JTAG, что-то типа JETLINK5 подходит? А софт? Когда-то использовал Code Composer Studio, несколько лет не отслеживал эту тему.
  13. Мда, а проблема совсем в другом. 100М сбоит или совсем не работает - когда перегревается сам процессор LPC2368. Проверено многократно, локально нагревая маленьким феном различные микросхемы (и кварцы тоже!). Немного улучшило картину 15пик, поцепленных на тактовый сигнал 50МГц. Поотключал в процессоре неиспользованную периферию, все входы-выходы особо не нагружены. И все-таки - нагреваю где-то до 50 градусов саму LPC - пошли сбои пинга. Подскажите, где копать?
  14. Поставить что-то типа SN65LVDS32 и кабель экранированный (или шлейф скази). Если скорость низкая - однозначно ST485 (MAX, AD или др фирмы), на каждый сигнал по одному передатчику - приемнику - и витая пара.
  15. KEIL и lwIP

    А если выдернуть и вставить кабель на роутере - работает? Или предварительно снести таблице arp (arp -d) ? Я использую ИАР, 5.10 и к меня подобных ворнингов нет Скорее всего оптимизация компилятора, попробуй попереключать, в ИАРе у меня с подобными конструкциями все ок.
  16. KEIL и lwIP

    Нашел ОТЛИЧНЫЙ документ! Small TCP/IP stacks for micro controllers B_assignment_vanderPloeg.pdf
  17. KEIL и lwIP

    Насчет LWIP и выравнивания, LPC2368! Сам просидел два дня, пока нашел в многих include LWIPа описано #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif описание структуры (заголовка) #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif достаточно в lwipopt.h указать параметр #define PACK_STRUCT_USE_INCLUDES 1 и сделать bpstruct.h со строкой #pragma pack(1) - это для иара, для Кейла packed epstruct.h - #pragma pack() поместить в каталог arch - и проблемы с выравниванием ушли. Сейчас сижу - не могу прикрутить LWIP к INDY в DELPHI пример Вasic TCP Client в инди синхронизируется c моим устройством (посылает SYN, получает SYN+ASK, посылает ASK - и я молчу, не знаю что ответить) Записал протоколы обмена между двумя компами с примерами TCP CLIENT и TCP SERVER в файлы ниже там после ASK идет пакет с текстом приветствия и данными Вот мой код в LPC - открываю соединение static void leb_init(void) { struct tcp_pcb* tcpleb; struct tcp_pcb* tcpleb_listen; tcpleb = tcp_new(); if (tcpleb == NULL) return; /* Bind to port 3333 for any address */ if (tcp_bind(tcpleb, IP_ADDR_ANY, 3333) != ERR_OK) return; tcpleb_listen = tcp_listen(tcpleb); if (tcpleb_listen == NULL) { tcp_abort(tcpleb); tcpleb = NULL; return; } tcpleb = tcpleb_listen; tcp_accept(tcpleb, lebiga_accept_callback); } lebiga_accept_callback - подпрограмма обработки - там нужна помощь! объясните последовательность действий, что и как нужно применять tcp_connect(), tcp_arg, tcp_recv(), tcp_sent(), tcp_poll() делал подобно http - не работает indy_client_server.rar
  18. Подскажите, как в Nichelite открыть сокет по какому нибуть порту и передавать непрерывно данные в комп ( использую DELPHI, пакет INDY, клиент). Это можно сделать парой строчек или нужно писать кучу кода, как в http? Что-то совсем запутался
  19. Заработало. Взял третью плату - сделел как по даташиту - и 100М пошли пинги. Так что звиняйте за беспокойство, спасибо за подсказку! Всегда нужно читать последние даташиты :) !
  20. Нет, это я посмотрел, AVDD завел только на средние точки трансформаторров. Правда, вместо 49.9 поставил 51 ом, в тайванских свичах тоже 51 стоит. Это может радикально влиять на неработоспособность 100М?
  21. Это я упустил, сделал по привычке. Выпаял индуктивность, теперь AVDD ~ 2.6В История та же, 10М работает, 100М - нет.
  22. Мда, а проблема совсем не в этом. Принудительно переключил в 10Мбит - все заработало. Но - нужно 100. Понижение питания аналоговой части до 2,5В (рекомендовали для DM9161AE) эффекта не дало. Трансформатор - J00-0065NL(PULSE), на 100Мбит. Конденсаторов хватает. Линк устанавливается всегда, прием пакетов в процессор есть, передача в PHY тоже - а потом тишина. Подскажите, где смотреть?
  23. Сделал платку на LPC2368 и D9161A. Пробовал два стека - uIP и Nichelite. Линк есть, ARP пакеты принимает, передает назад в PHY - и ничего - компьютер не ловит! Может ошибся в подключении (не работал с D9161A в RMII режиме) - помогите! Сброс и PWRDOWN заведены на ноги, там все нормально. Инициализация портов правильная, проверял много раз. Включал две платы уже, та же история... Подключение LPC2368_______________D9161A P1.0(ENET_TXD0)_______TXD0(20) P1.1(ENET_TXD1)_______TXD1(19) P1.4(ENET_TX_EN)______TXEN(21) P1.8(ENET_CRS)________RXDV(37) - вот это вызыват вопросы! Смотрел datasheet и AS9200. P1.9(ENET_RXD0)_______RXD0(29) P1.10(ENET_RXD1)______RXD1(28) P1.14(ENET_RX_ER)_____RXER(38) P1.15(ENET_REF_CLK)___XT2(42)=50МГц P1.16(ENET_MDC)_______MDC(24) P1.17(ENET_MDIO)______MDIO(25) ______________________RXEN(31)=1 ______________________COL/RMII(36)=1
  24. Подскажите, как в IAR510 в окне WATCH вывести только часть из большого массива. Типа char buf[1000], если задать buf[0] - получается вывод одной ячейки, открывать весь - тормоза, нужно только 20 первых. buf,20 - не работает
×
×
  • Создать...