Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F407 Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
smk
Ранее испорльзовал контроллеры STN32F107. Все было ОК. Теперь пытаюсь тоже самое запустить на F407. Столкнулся с проблемой, что не создается сокет. Программа заходит в бесконечный цикл в функци sys_error (ERROR_CODE code) по причине /* Out of TCP Sockets. */.

Собственно процедура такая:
Код
  init_TcpNet ();
    dhcp_disable ();

  /* Setup and enable the SysTick timer for 100ms. */
  SysTick->LOAD = (168000000 / 10) - 1;
  SysTick->CTRL = 0x05;

    SocketNumber = tcp_get_socket (TCP_TYPE_SERVER | TCP_TYPE_DELAY_ACK | TCP_TYPE_FLOW_CTRL | TCP_TYPE_KEEP_ALIVE, 0, 65535, tcp_callback);

    if (SocketNumber != 0)
        {
            /* Start listening on TCP port DevEthInfo.CtrlPort */
            tcp_listen (SocketNumber, PortNumber);
        }

Подскажите в чем может быть дело? Спасибо.
Golikov A.
А МАК драйвер енумерацию и прочее прошел?
smk
Цитата(Golikov A. @ Jul 27 2015, 11:16) *
А МАК драйвер енумерацию и прочее прошел?

Проблема решилась увеличением числа сокетов. Однако раньше эта проблема не возникала. Интересно почему. Изначально было по 5 сокетов удп и тсп. Иеще 5 сессий по хттп. Увеличил число сокетов тсп до 10. Создался сокет сномером 6. А на что ушли остальные 5?
Хоть сокет и создался, но контроллер не пингуется. Связь с физикой есть, линк есть. Помигивает активность т.к. девай в локальной сети. Как разобраться с пингом? Спасибо.
Golikov A.
пройдитесь по сокетам поглядите в каких они состояниях, у них есть такой параметр, может яснее станет....
smk
Цитата(Golikov A. @ Jul 27 2015, 12:20) *
пройдитесь по сокетам поглядите в каких они состояниях, у них есть такой параметр, может яснее станет....

Как правильно дефайнами сконфигурировать выводы для 100-ногого F407 в файле ETH_STM32F4XX.C для MII? Может ноги не так сконфигурированы?
smk
Действительно проблема была в конфигурации ног. Интересно, а кто кейлу драйвера пишет, они что предполагали?
Golikov A.
сами пишут вроде, может не тот кристалл выбрали? хотя ремапы ручечками....
smk
Вот интересный участок кода.
Код
#if !defined (STM32F40XX) && !defined (STM32F427X) && !defined (STM32F429X)
  /* #define STM32F40XX */   /*!< STM32F40xx/41xx Devices */
  /* #define STM32F427X */   /*!< STM32F427x/437x Devices */
  /* #define STM32F429X */   /*!< STM32F429x/439x Devices */
#endif

По идее нужно раскоментить то. что требуется. Я пробовал - кейл ругается. Тоже интересно почему.
А на счет драйвера так там некоторые ноги вообще не упомянуты (РА0 например) хотя в работе нужны. Просто удалил то их творчество
и написал заново. Все заработало сразу.

Хотел еще такой вопрос задать, делал кто создание нескольких сокетов в цикле? Может поделится кто чтоб мне время не терять. Спасибо.
smk
Прошу подсказки в таком вопросе. Создал сокет. Коннект есть, данные в него приходят. При попытке отправить функция tcp_check_send отдает 0. В описани просто написано что сокет не готов отправлять данные. С чем это может быть связано? Девайс в локальной сети. tcp_get_state сообщает что коннект есть. Спасибо.

Елки, забыл что уже сталкивался с таким. Все, вопрос отпал. Все работает
Golikov A.
а ответ для страждущих? Буфера забились?
smk
Опять вызывл из келлбека.
smk
Столкнулся с ситуацией когда линк есть но активность не светится и связи нет. При этом физика читается и айди правильный. Что можно проверить чтоб выйти на причину? Сам софт рабочий. Предыдущие экземпляры работали. С этим конкретным экземпляром что-то не то и нужно понять что. Соплей вроде нет, все помыто. Физика RTL8201 а контроллер STM32F407. Библиотека кейловская. Драйвер переделанный под физику и рабочий (софт проверен). Подскажите куда смотреть. Спасибо.
Corvus
Я бы менял последовательно на компоненты, взятые с заведомо рабочей платы Rref - Кварц - PHY.
smk
Хотелось бы как-то сузить круг подозрений. Ну например, регистры физики могут что-то сказать?
smk
С проблемой разобрался. Непропай нашел. Теперь собственно пинга нет. Хотя с виду все правильно. Что можно проверить? Спасисбо.
Сергей Борщ
QUOTE (smk @ Apr 27 2016, 16:01) *
С проблемой разобрался. Непропай нашел. Теперь собственно пинга нет.
Может быть еще один непропай, теперь на MII.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.