Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 19.04.2017, 18:32  
Дмитрий1987
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий1987 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Я пока решил проблему!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!
1 Чтобы netif)-›flags стал равен NETIF_FLAG_UP, программа должна попасть в функцию netif_set_up () (в файле netif.c).
2 Эта функция вызывается из функции LwIP_Init (в файле netconf.c), вот код

if (EthStatus == (ETH_INIT_FLAG | ETH_LINK_FLAG))
{

/* Set Ethernet link flag */
gnetif.flags |= NETIF_FLAG_LINK_UP;

/* When the netif is fully configured this function must be called */
netif_set_up(&gnetif);

EthStatus не был равен ни тому, не другому флагу

3 Значение ETH_LINK_FLAG присваивается EthStatus в функции ETH_BSP_Config(), вот код

if(ETH_ReadPHYRegister(DP83848_PHY_ADDRESS, PHY_SR) & 1)
{
EthStatus |= ETH_LINK_FLAG;
}

4 Функция ReadPHYRegister отвечает за считывание значения регистра SR микросхемы DP83848.

Но у меня-то LAN8720 и регистра по такому адресу нет (позже надо будет подправить адрес)

Я заменил EthStatus == (ETH_INIT_FLAG | ETH_LINK_FLAG) на 1, и все заработало!
Реклама:
Дмитрий1987 вне форума  
Непрочитано 19.04.2017, 18:41  
Дмитрий1987
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий1987 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Ребят для тех, кто хочет попробовать Ethernet на STM32f407, надо:
- купить кабель езернет, отладку LAN8720, отладку STm32f407discovery, благо есть в ЧИП и ДИП и терраэлектронике
- собрать установку
- установить Кейл (у меня кейл 4.7 с ключом) или подобное и ST_Link Utility
- скачать с сайта ST.com папку STM32F4x7_ETH_LwIP_V1.1.1
- открыть проект standalone/httpserver/mdk-arm/project (для кейла)
- добавить пины РВ11-РВ13, закомментить PG, закомментить MII_mode, раскомментить RMI_mode, добавить доработку, указанную выше в сообщении
- прошить контроллер и увидеть веб страницу.
Удачи!
Дмитрий1987 вне форума  
Непрочитано 19.04.2017, 18:42  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Так с замены обработки для другого пирефирийного устройства и стоило начать. И таки довести это до логического конца. Может тогда исходный код без танцев с бубном заведется. А так пока нечто с неопознанными костылями. И работает пока не понятно на сколько процентов.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 19.04.2017, 19:24  
Дмитрий1987
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий1987 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Все строки в проекте раскомментированы. Основная задача примера- увидеть в браузере определенные страницы. Эти страницы я вижу, так что задача минимум решена!
Дмитрий1987 вне форума  
Непрочитано 19.04.2017, 20:49  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Задача минимум тут понять как все работает, а не заставить костылями его работать. Потом появится насущная необходимость и придётся снова наступать на те же грабли. Таки адаптируйте железо под проект и добейтесь его функционирования в исходном виде. Тогда будет опыт. Пока увы костыль - игнорирование обработки железа и все остальное, вытекающее из пропуска бесполезного пока кода.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 24.04.2017, 14:50  
Дмитрий1987
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий1987 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Всем привет! При изучении пункта 33.6 "Ethernet functional description: DMA controller operation" в RM0090 наткнулся на понятие "descriptor list" (видимо список дескрипторов).

Никак не могу понять как этот список дескрипторов объявить в языке Си в Кейл до выполнения основного кода? Что это: массив, структура?

Сколько должно быть дескрипторов в этом списке?

Как я понял один дескриптор на прием (передачу) состоит из четырех 32-битных слов.

Спасибо!
Дмитрий1987 вне форума  
Непрочитано 24.04.2017, 17:38  
Дмитрий1987
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий1987 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

как я понял из примера, скаченного с сайта st.com и оговоренного выше в сообщениях в этой теме, список дескрипторов объявляется как массив из 4 элементов.

__align(4)
ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB];/* Ethernet Rx MA Descriptor */

Элементами являются структуры, в общем состоящие из 4 слов по 32 бита (как я понял это слова RDES0-RDES3 из RM0090, но под другими именами).

Нажмите, чтобы открыть спойлер
typedef struct {
__IO uint32_t Status; /*!‹ Status */
uint32_t ControlBufferSize; /*!‹ Control and Buffer1, Buffer2 lengths */
uint32_t Buffer1Addr; /*!‹ Buffer1 address pointer */
uint32_t Buffer2NextDescAddr; /*!‹ Buffer2 or next descriptor address pointer */
/* Enhanced ETHERNET DMA PTP Descriptors */
#ifdef USE_ENHANCED_DMA_DESCRIPTORS
uint32_t ExtendedStatus; /* Extended status for PTP receive descriptor */
uint32_t Reserved1; /* Reserved */
uint32_t TimeStampLow; /* Time Stamp Low value for transmit and receive */
uint32_t TimeStampHigh; /* Time Stamp High value for transmit and receive */
#endif /* USE_ENHANCED_DMA_DESCRIPTORS */
} ETH_DMADESCTypeDef;



Не понятно по коду примера, как новые слова связаны с RDES0-RDES3?
Не понятно, как STM понимает, что слово Status - это RDES0?

Если мне нужен список из двух дескрипторов, могу ли я этот список дескрипторов объявить без применения структуры как
uint32_t RXDescList[8] ?

Как связать элементы массива с словами RDES0-RDES3?

Спасибо!
Дмитрий1987 вне форума  
Непрочитано 25.04.2017, 03:44  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

А поиск по коду уже не работает?
По используемым именам просмотр работы с ними по всему коду и логика работы становится понятной. Или поиск вменяемой документации на сам пример и используемые библиотеки, дальше опять анализ кода. Иначе ну никак.
Конечно никто не отменяет работу в стиле массового программирования для ардуино, но я думаю тут не тот случай.
Разобраться до оператора в работе чужого кода, наставить своих комментариев для облегчения собственной жизни и придёт понимание сути происходящего. Тогда отсеется массив текущих вопросов до минимума, да и на оставшиеся возможно тоже найдётся собственный ответ… Такие вопросы уже можно уточнить.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 25.04.2017, 05:20  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Сообщение от Дмитрий1987 Посмотреть сообщение
Никак не могу понять как этот список дескрипторов объявить в языке Си в Кейл до выполнения основного кода? Что это: массив, структура?
Что то в этом роде почитать http://we.easyelectronics.ru/STM32/o...y-perevod.html
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-04-25_09-19-20.png
Просмотров: 0
Размер:	83.3 Кб
ID:	113502  
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 25.04.2017, 15:11  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Ethernet в STM32F407

Может немного к истокам вернуться?
Огромное количество книг по C/C++, там все разобрано.
Сначала Керниган и Ритчи "Язык программирования Си"
Потом при необходимости Страутсруп "Язык программирования C++"
Потом особенности реализации компилятора в используемой среде.
Дальше уже разбор кода на составляющие и отсутствие значительной части вопросов.
Тут увы нужны систематические и системные знания иначе понимание будет на уровне смеси из нескольких винегретов и будет только плодить множество элементарных вопросов, сильно раздражая себя и отвечающих.
И, главное, время потраченное на изучение быстро начинает окупаться за счёт понимания сути происходящего перед глазами и отсутствия элементарных вопросов.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
Ethernet на STM32F407 eddy ARM 16 03.09.2014 18:04
Разъем ethernet RJ45 with magnetics izhivi Информация по радиокомпонентам 0 28.06.2013 18:48
Ethernet + контроллер innovator_king Микроконтроллеры, АЦП, память и т.д 5 30.06.2010 18:31


Часовой пояс GMT +4, время: 05:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot