реклама на сайте
подробности

 
 
> STM32F107 + RTL8201 + lwip-1.4.0, драйвер PHY для lwip
smk
сообщение Sep 23 2013, 15:36
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Необходимо подружить RTL8201 и lwip. Как это делается и каков драйвер для phy мне нужно будет написать? Каким образом lwip общается с железом? Я так понимаю, что драйвер предполагает работу с МАС-уровнем, я прав? Т.к. область для меня новая, то пригодится любая подсказкаю Прошу помощи и советов. Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Nov 12 2013, 18:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



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

Судя по всем у вас библиотека не подключена, поэтому линкер и не может найти эти функции...
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 12 2013, 19:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Golikov A. @ Nov 12 2013, 20:53) *
нет конечно...
то что в хедере есть прототипы функций, совсем не означает что в модуле должно быть их описание. Они в библиотеке, и скрыты от вас как от пользователя.

Судя по всем у вас библиотека не подключена, поэтому линкер и не может найти эти функции...

Да подключил, как я понимаю. Или еще как-то нужно?
Прикрепленное изображение


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
ksv198
сообщение Nov 13 2013, 10:59
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964



Цитата(smk @ Nov 12 2013, 23:03) *
Да подключил, как я понимаю. Или еще как-то нужно?


Попробуйте начать с простого.
1. Создайте пустой проект в Кейле, где есть только начальная инициализация STM32F107 и убедитесь, что контроллер нормально запускается (например мигает светодиодом). Хорошо бы проконтролировать частоту ядра выводом на выход PA8.
2. Далее подключите в проект файлы ETH_STM32X.c и ETH_STM32X.h (лежат в c:\Keil\ARM\RL\TCPnet\Drivers\). Это драйвер Кейла для Ethernet MAC и инициализация PHY. Он очень простой по сравнению с STM-овским, в нём легче разобраться для начала. По умолчанию там всё для физики DP83848C.
3. Вам нужно поправить в ETH_STM32X.h всё, что ниже строки комментария /* DP83848C PHY Registers */. Для простоты я бы оставил сначала только первые 8 регистров, для проверки работоспособности хватит (если у Вас RTL8201 то первые 6 регистров). Исправьте #define DP83848C_ID 0x20005C90 на свой (из даташита на Вашу микросхему физики). Исправьте #define DP83848C_DEF_ADR 0x01 на адрес Вашей микросхемы физики (обратите внимание, что он может изменяться от схемы включения - всё описано в даташите).
4. Далее в файле ETH_STM32X.c идём в функцию void init_ethernet (void). Там два варианта подключения физики - по MII или по RMII. Оставьте только свой вариант, чтобы не путаться. Затем необходимо обратить внимание на строку /* MDC Clock range 60-72MHz. */ ETH->MACMIIAR = 0x00000000; Если у Вас частота ядра менее 60 МГц, то надо из референс мануал подставить другое значение (см. RM0008 раздел SMI clock selection). Уберите временно проверку по условию if (((id1 << 16) | (id2 & 0xFFF0)) == DP83848C_ID) - это проверка идентификатора физики. Уберите блок от /* Check the link status. */ - в Вашей микросхеме физики может не быть этого регистра. Обратите внимание на массив extern U8 own_hw_adr[];. Это массив МАС адреса, на данном этапе, чтобы не подключать Net_Config.c определите его локально (не забудьте младший байт поставить в 0х00 для начала, чтобы случайно не сделать броадкаст).
5. Начинаем отладку. В main() вызываем init_ethernet () и Вашим любимым методом (дебагом или принтом через последовательный порт, или выводом на экранчик, если есть) смотрим возвращаемые функцией read_PHY() значения. Сравнивайте с тем, что видите в описании битов регистра в даташите на Ваш PHY. Здесь пригодятся регистры 0х02 и 0х03 - в них идентификатор. Если все время читается 0xff или 0х00 то попробуйте менять адрес (в строке #define DP83848C_DEF_ADR) от 0 до 32. Если все равно ничего не получается возвращайтесь к анализу схемы (желательно с осциллографом).
6. Когда начнут нормально читаться регистры, пройдитесь по всем доступным в даташите и посмотрите, что с физикой становится после инициализации. Возможно будут проблемы с autonegotiation - PHY может не определить скорость сам. Пните его принудительно: write_PHY (PHY_REG_BMCR, PHY_FULLD_10M); или write_PHY (PHY_REG_BMCR, PHY_FULLD_100M);.
7. Когда увидите по состоянию регистров физики, что линк поднят - только тогда можно переходить к попыткам поднять стек. Это отдельно уже.
Удачи!
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Nov 13 2013, 14:42
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(ksv198 @ Nov 13 2013, 13:59) *
менять адрес (в строке #define DP83848C_DEF_ADR) от 0 до 32.

от 0 до 31 biggrin.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- smk   STM32F107 + RTL8201 + lwip-1.4.0   Sep 23 2013, 15:36
- - Golikov A.   А мак контроллер на чем? Реалтек это физика, она д...   Sep 23 2013, 18:32
|- - smk   Цитата(Golikov A. @ Sep 23 2013, 21:32) А...   Sep 23 2013, 18:39
- - =F8=   Цитата(smk @ Sep 23 2013, 18:36) Необходи...   Sep 23 2013, 20:53
- - smk   Как я понял связь с физикой и ее инициализация осу...   Sep 24 2013, 07:46
- - сарматъ   кварец стабильнее чем встроенный генератор   Sep 24 2013, 10:04
|- - smk   Цитата(сарматъ @ Sep 24 2013, 13:04) квар...   Sep 24 2013, 11:29
- - Golikov A.   да. физика работает на 50 МГц вроде как, делает и...   Sep 24 2013, 12:31
|- - smk   Цитата(Golikov A. @ Sep 24 2013, 15:31) д...   Sep 24 2013, 12:39
- - сарматъ   25Мгц нормальная частота для кварца что смущает то...   Sep 24 2013, 13:08
- - smk   Я рассуждал так. Если поставить кварц 8 МГц, то мо...   Sep 24 2013, 13:24
|- - bzx   Цитата(smk @ Sep 24 2013, 17:24) Наскольк...   Sep 30 2013, 19:07
|- - smk   Цитата(bzx @ Sep 30 2013, 22:07) Ошибаете...   Oct 1 2013, 08:26
- - сарматъ   понятно, можно поступить по разному -настроить на...   Sep 24 2013, 14:20
- - smk   С отладкой разобрался. У меня файлик *.sfr подключ...   Oct 5 2013, 05:12
- - Golikov A.   почему если физика стандартно работает на 25, 50 и...   Oct 5 2013, 11:07
|- - smk   Цитата(Golikov A. @ Oct 5 2013, 14:07) по...   Oct 5 2013, 12:47
- - Golikov A.   локальные переменные в дебаге кейла отображаются с...   Oct 5 2013, 13:15
- - smk   Вынес в глобальные. Теперь явно лучше. Теперь бы ...   Oct 5 2013, 13:21
- - Golikov A.   ну может отладка в порт? В регистрах там есть гд...   Oct 5 2013, 17:54
- - smk   А где примерно искать настройку обновления? Посмот...   Oct 7 2013, 06:14
- - Golikov A.   я так понимаю это больше к настройкам кейла чем к ...   Oct 7 2013, 07:06
- - vlad_new   Все там есть. В режиме дебагера появляется куча вс...   Oct 7 2013, 10:42
|- - smk   Цитата(vlad_new @ Oct 7 2013, 13:42) Все ...   Oct 7 2013, 16:49
- - smk   Чтобы проверить железо хочу залить в свою платку п...   Oct 13 2013, 12:44
- - smk   Наконец-то продвинулся дальше. Закончил с железом....   Oct 17 2013, 16:27
- - smk   У меня теперь другая проблема появилась. Опишу вкр...   Oct 17 2013, 17:56
|- - antis   Цитата(smk @ Oct 17 2013, 21:56) У меня т...   Oct 18 2013, 06:23
- - Golikov A.   ну надо настроить свич, у вас он хаб, свич или мар...   Oct 17 2013, 19:08
- - smk   3COM OfficeConnect Switch 8 на нем написано. 3С16...   Oct 18 2013, 04:42
|- - Golikov A.   Цитата(smk @ Oct 18 2013, 08:42) 3COM Off...   Oct 18 2013, 06:36
|- - smk   Цитата(Golikov A. @ Oct 18 2013, 09:36) т...   Oct 18 2013, 06:41
|- - antis   Цитата(smk @ Oct 18 2013, 10:41) Я уже ду...   Oct 18 2013, 06:59
- - smk   Ну а если я установлю 254, то при правильной работ...   Oct 18 2013, 06:31
- - smk   Проверю. Если после нескольких отключений / подклю...   Oct 18 2013, 07:44
- - сарматъ   подскажите будьте любезны где можно найти правильн...   Oct 22 2013, 06:28
|- - smk   Цитата(сарматъ @ Oct 22 2013, 09:28) подс...   Oct 22 2013, 16:27
- - vlad_new   В Keil 5.   Oct 22 2013, 11:23
- - сарматъ   спасибо, можете поделиться примерами из кейл5?   Oct 22 2013, 11:25
- - сарматъ   пока точно сказать не могу но есть предположение ч...   Oct 22 2013, 16:36
- - vlad_new   Цитата(сарматъ @ Oct 22 2013, 15:25) спас...   Oct 23 2013, 15:22
|- - smk   Цитата(vlad_new @ Oct 23 2013, 18:22) Там...   Oct 23 2013, 17:07
|- - vlad_new   Цитата(smk @ Oct 23 2013, 21:07) Я так по...   Oct 23 2013, 18:16
|- - сарматъ   Цитата(vlad_new @ Oct 23 2013, 22:16) Это...   Nov 6 2013, 10:15
- - сарматъ   спасибо за наводку   Oct 23 2013, 20:05
- - smk   Эксперимент показал, что айпи при перезагрузках ст...   Oct 27 2013, 12:01
- - Golikov A.   сетевые настройки, забиваете фиксированный IP тот ...   Oct 27 2013, 12:14
- - smk   Тогда на первом этапе создам новое сетевое подключ...   Oct 28 2013, 08:02
- - smk   Только собрался создать новое соединение. Вдруг вы...   Nov 2 2013, 05:59
- - vlad_new   Все что вам может понадобится - открыто. На сайте ...   Nov 6 2013, 21:57
- - сарматъ   хм... возможно я чего то не нашел, но то что мне н...   Nov 7 2013, 06:56
- - smk   Прошу подсказать как мне настроить вторую сетевую ...   Nov 8 2013, 12:51
- - smk   Железо проверил, все работает. Наконец-то можно пр...   Nov 9 2013, 12:26
- - Golikov A.   самый первый тест это попихать данные в МАК контро...   Nov 10 2013, 21:37
- - smk   Пытался скачать стек от кейла но так и не увидел г...   Nov 11 2013, 07:28
|- - Golikov A.   Цитата(smk @ Nov 11 2013, 11:28) Пытался ...   Nov 11 2013, 12:50
- - сарматъ   готовые стеки не использовал, начинал с приема арп...   Nov 11 2013, 11:28
- - smk   А стек кейловский где скачать и где пишут про ...   Nov 11 2013, 13:05
- - vlad_new   Не надо ничего качать. Библиотека уже у вас лежит ...   Nov 11 2013, 13:53
- - smk   Добавил библиотеку и файл Net_Config.c; подключил ...   Nov 11 2013, 17:08
- - Golikov A.   для кеил стэка еще системный таймер надо запустить...   Nov 11 2013, 19:41
|- - smk   Цитата(Golikov A. @ Nov 11 2013, 21:41) в...   Nov 12 2013, 08:01
- - Golikov A.   ну вы их не увидите они в библиотеке кейла вызываю...   Nov 12 2013, 10:59
|- - smk   Цитата(Golikov A. @ Nov 12 2013, 12:59) н...   Nov 12 2013, 11:36
|- - ksv198   Цитата(DmitryM @ Nov 13 2013, 18:42) от 0...   Nov 13 2013, 15:36
- - Golikov A.   БЛИН! прошу прощения, я вас полностью обманул....   Nov 13 2013, 08:23
- - smk   ksv198, благодарю! как глоток воздуха! Сде...   Nov 13 2013, 12:29
- - smk   Что удалось сделать. П.1-4 сделал полностью. Иници...   Nov 13 2013, 18:56
- - Golikov A.   #include "Net_Config.h" ?   Nov 13 2013, 20:05
|- - smk   Цитата(Golikov A. @ Nov 13 2013, 22:05) #...   Nov 13 2013, 20:27
- - Golikov A.   ну тогда остается только свои функции - заглушки н...   Nov 13 2013, 21:13
|- - smk   Цитата(Golikov A. @ Nov 13 2013, 23:13) н...   Nov 14 2013, 08:32
- - Pasha_a13   Добрый день! Прошу совета. Вкратце опишу сут...   Nov 23 2013, 12:40
|- - psL   Цитата(Pasha_a13 @ Nov 23 2013, 16:40) ка...   Nov 24 2013, 18:48
- - smk   Ну вобщем-то с текущими проблемами разобрался. Хот...   Nov 24 2013, 13:49
- - smk   С физикой все более-менее понятно. Хотелось бы уже...   Nov 25 2013, 17:47
- - Golikov A.   init_TcpNet (); а потом в цикле вызывайте main_Tc...   Nov 25 2013, 19:29
|- - smk   Цитата(Golikov A. @ Nov 25 2013, 21:29) i...   Nov 26 2013, 17:46
|- - Golikov A.   Цитата(smk @ Nov 26 2013, 21:46) Может им...   Nov 26 2013, 20:26
- - smk   Разобрался с проблемой. Скомпилировалось. Хочу спр...   Nov 27 2013, 07:55
- - Golikov A.   да, без тика жизни нет... в ТСР стэке есть время ...   Nov 27 2013, 12:17
|- - smk   Цитата(Golikov A. @ Nov 27 2013, 14:17) д...   Nov 27 2013, 14:33
- - Golikov A.   у меня как то так функция которую вызываю в цикле ...   Nov 27 2013, 16:07
- - smk   Наконец-то вернулся к своей теме. Результаты такие...   Dec 4 2013, 16:34
|- - bzx   1. Ваш Phy чип определяется? Цитата/* Check if thi...   Dec 4 2013, 17:30
|- - smk   Цитата(bzx @ Dec 4 2013, 19:30) 1. Ваш Ph...   Dec 4 2013, 17:51
- - Golikov A.   init_ethernet() - вроде вызывать не надо, оно само...   Dec 4 2013, 17:38
- - Golikov A.   дальше уже дело техники, все очень просто! К...   Dec 4 2013, 20:27
- - smk   Вот такое сообщение об ошибке получилось: Кодmain_...   Dec 5 2013, 07:58
- - Golikov A.   у меня такое написано Код#define TCP_TYPE_SERVER ...   Dec 5 2013, 18:41
- - smk   Спасибо, что уделяетемне время! Версия кейла ...   Dec 5 2013, 19:54
- - Golikov A.   нет такого флага в вашем кейле и вашей библиотеке,...   Dec 5 2013, 20:45
|- - smk   Цитата(Golikov A. @ Dec 5 2013, 22:45) н...   Dec 22 2013, 10:24
- - smk   С помощью терминальной программы: http://www.hw-gr...   Dec 22 2013, 12:01
- - DmitryM   Цитата(smk @ Dec 22 2013, 15:01) Есть ли ...   Dec 22 2013, 12:21
- - smk   Цитата(DmitryM @ Dec 22 2013, 14:21) PuTT...   Dec 22 2013, 12:40
2 страниц V   1 2 >


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 10:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016