Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-дек-05 05:50

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 233 сообщения ]  На страницу « 13 4 5 6 716 »
Автор Сообщение
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-янв-15 15:57 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Evgen89519228386 писал(а):
Здравствуйте, возникла похожая проблема..
- Регистр PHY_STAT всегда возвращается значение 0x0400 т.е. всегда есть подключение к линии независимо от того подключён кабель или нет.
- LED1 включен независимо от наличия подключения к линии. Однако при обмене пакетами мерцает (как и должен).

Партия 1206.
Это проблема отдельных экземпляров или неверная инициализация?

GCTRL = 0x4382;
MAC_CTRL = 0x0200;
MinFrame = 0x0040;
CollConfig = 0;
IPGTx = 0x000A;
MAC_ADDR_T = 0x0100;
MAC_ADDR_M = 0x0302;
MAC_ADDR_H = 0x0504;
PHY_CTRL = 0x31D0;
У вас старая ревизия кристалла (маркировка 1206), в ней бит INT_LINK не работает. В новых ревизиях микросхемы это исправлено (кристаллы с маркировкой 1226 и более новые).
Также проверьте правильность подключения контроллера к линии (должна быть как на рисунке 4 спецификации), тогда бит INT_LINK регистра PHY_STAT корректно отражает состояние линии. А точнее 0 - линия подключена, 1 - линия отключена.
Обратите внимание, что активный уровень сигналов LED - низкий (то есть при подключенной линии на выводе LED будет логический 0). Таким образом, таблицу 5 из спецификации следует читать так:
LED1 --> 0 - соединение с линией;
LED1 --> 1 - соединение с линией отсутствует;
LED1 --> 0/1 - производится обмен пакетами.

Конфигурация, приведенная вами, рабочая.


Вложения:
[ attachment ]
Connection.jpg [ 73.47 КБ | 11456 просмотров ]
Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-янв-16 09:29 
Не в сети

Зарегистрирован: 2011-сен-05 12:35
Сообщения: 12
Petr писал(а):
Также проверьте правильность подключения контроллера к линии (должна быть как на рисунке 4 спецификации)
Похоже спецификация у меня тоже старая... Нашел новую.
По новой схеме индикатор LED_0 работает )) О_о и соответствующий бит в PHY_STAT работает!

А вот новую схему и pcb на Модуль Ethernet (на базе 5600ВГ1У) отладочного комплект для микроконтроллера 1986ВЕ91Т не нашел.. Существует ли она? Это не принципиально, но было бы хорошо, если бы cхема соответствовала железу.

Спасибо!


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-13 09:40 
Не в сети

Зарегистрирован: 2012-янв-30 13:51
Сообщения: 6
Проблема такая: после некоторого времени работы в реальной сети контроллер подвисает и перестает правильно принимать сообщения из сети, при этом STAT_RX_ALL увеличивается, а остальные регистры STAT* остаются без изменений. Также поступают прерывания с флагом ошибки приёма.


Вложения:
[ attachment ]
stat1.PNG [ 12.83 КБ | 11359 просмотров ]
Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-14 07:34 
Не в сети

Зарегистрирован: 2011-апр-21 07:31
Сообщения: 31
Откуда: АО "ПКК Миландр"
1. проверьте, есть ли свободные дескрипторы для приема сообщений
2. опустошите все дескрипторы, возобновляется ли работа?
3. проверьте остальные флаги прерываний по приему
4. дайте программынй сброc.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-14 12:12 
Не в сети

Зарегистрирован: 2012-янв-30 13:51
Сообщения: 6
1. Все дескрипторы свободны
2. Нет
3. Флаг только один - ошибка приёма
4. Помогает, но не всегда. Случаются ситуации с вылетом за последний дискриптор, а именно: я использую 4 дескриптора и иногда контроллер подвисает в ожидании готовности пятого дескриптора.
В итоге программный сброс после последовательного приёма нескольких пакетов с ошибками плюс конфигурирование пятого дескриптора аналогично четвёртому приводит к стабильной работе.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 10:28 
Не в сети

Зарегистрирован: 2013-фев-18 07:01
Сообщения: 5
Ревизия микросхемы 1226
После заполнения циклического буфера приемника, дескриптор приемника перестает принимать новые посылки.
последовательность настройки:
0x8000 -> GCTRL
0xC000 -> MAC_CTRL
0x5382 -> GCTRL
0x0400 -> MAC_CTRL
0x0040 -> MinFrame
0x0000 -> CollConfig
0x000A -> IPGTx

0x0 -> adr(0x1000 - 0x1880) очистка буфера и дескрипторов передатчика
0xC000 - adr(0x800)

0x31D2 -> PHY_CTRL

[посылка] -> adr(0x1000)


0x2a -> adr(0x1801) размер посылки
0xC000 -> adr(0x1800) готов к передаче + последний дескриптор

0xC000 - adr(0x800) готов к приему + последний дескриптор

Что я делаю не так?
P.S. Счетчик (STAT_RX_OK) продолжает увеличиваться


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 10:51 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
kotikov писал(а):
1. Все дескрипторы свободны
2. Нет
3. Флаг только один - ошибка приёма
4. Помогает, но не всегда. Случаются ситуации с вылетом за последний дискриптор, а именно: я использую 4 дескриптора и иногда контроллер подвисает в ожидании готовности пятого дескриптора.
В итоге программный сброс после последовательного приёма нескольких пакетов с ошибками плюс конфигурирование пятого дескриптора аналогично четвёртому приводит к стабильной работе.
1. Попробуйте провести эксперимент только с одним дескриптором.
2. Попробуйте провести эксперимент с другим кристаллом.
Повторилась ли при этом описанная вами ситуация?


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 10:55 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Hua писал(а):
Ревизия микросхемы 1226
После заполнения циклического буфера приемника, дескриптор приемника перестает принимать новые посылки.
последовательность настройки:
0x8000 -> GCTRL
0xC000 -> MAC_CTRL
0x5382 -> GCTRL
0x0400 -> MAC_CTRL
0x0040 -> MinFrame
0x0000 -> CollConfig
0x000A -> IPGTx

0x0 -> adr(0x1000 - 0x1880) очистка буфера и дескрипторов передатчика
0xC000 - adr(0x800)

0x31D2 -> PHY_CTRL

[посылка] -> adr(0x1000)


0x2a -> adr(0x1801) размер посылки
0xC000 -> adr(0x1800) готов к передаче + последний дескриптор

0xC000 - adr(0x800) готов к приему + последний дескриптор

Что я делаю не так?
P.S. Счетчик (STAT_RX_OK) продолжает увеличиваться
В программе вы не забываете изменять значение регистра RXBF_HEAD?
"Счетчик (STAT_RX_OK) продолжает увеличиваться" - это странно, хорошо бы взглянуть на ваш код, если можно.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 11:17 
Не в сети

Зарегистрирован: 2013-фев-18 07:01
Сообщения: 5
Регистр RXBF_HEAD в программе я не меняю ( в качестве эксперимента я менял его значение на меньшее, при этом ситуация повторялась. Когда значение RXBF_TAIL + размер отправляемой посылки становились больше чем значение RXBF_HEAD, дескриптор перестает принимать пакеты), в моем понимании RXBF_HEAD отвечает только за размер циклического буфера.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 11:41 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Hua писал(а):
Регистр RXBF_HEAD в программе я не меняю ( в качестве эксперимента я менял его значение на меньшее, при этом ситуация повторялась. Когда значение RXBF_TAIL + размер отправляемой посылки становились больше чем значение RXBF_HEAD, дескриптор перестает принимать пакеты), в моем понимании RXBF_HEAD отвечает только за размер циклического буфера.
Нет, RXBF_HEAD отвечает за то, какая часть буфера приемника свободна, и сколько байт данных можно записать в буфер приемника, поэтому его необходимо двигать программно.
Советую вам посмотреть пример для демоплаты 1986ВЕ91 и Ethernet-модуля для этой платы ProjectICMPParallel5600VG1U, который можно найти здесь viewtopic.php?f=33&t=226.
Там в main.c в основном цикле программы есть строчка Ethernet->RXBF_HEAD = (Ethernet->RXBF_TAIL-1)&0x07FF; которая как раз и двигает границы буфера.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-18 12:32 
Не в сети

Зарегистрирован: 2013-фев-18 07:01
Сообщения: 5
Перед каждой настройкой дескриптора сделал вставку :

lw $10, 0xa8007f44 - RXBF_TAIL
nop
sub $10, $10, 1
nop
and $10, $10, 0x7ff
nop
sw $10, 0xa8007f40 - RXBF_HEAD

Помогло, пытаюсь понять почему )
Связка NVCom-02T + 5600ВГ1У
P.S. Огромное cпасибо!


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-19 17:56 
Не в сети

Зарегистрирован: 2011-апр-21 07:31
Сообщения: 31
Откуда: АО "ПКК Миландр"
так же смотрите тему viewtopic.php?f=22&t=1062 про портирование uIP - там есть драйверы и для 5600ВГ1


Последний раз редактировалось sva 2013-фев-25 17:36, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-19 18:20 
Не в сети

Зарегистрирован: 2011-апр-21 07:31
Сообщения: 31
Откуда: АО "ПКК Миландр"
Hua писал(а):
Помогло, пытаюсь понять почему )
Связка NVCom-02T + 5600ВГ1У
P.S. Огромное cпасибо!
##_HEAD и ##_TAIL указатели кольцевого буфера. размер буфера фиксирован по 4кБ на прием и на передачу. разница между указателями определяет свободное место (в буфере ПРМ) или готовые данные (в буфере ПРД).
один указатель передвигается автоматически по мере приема/отправки сообщения, второй передвигается "вручную" программистом.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-21 09:43 
Не в сети

Зарегистрирован: 2013-фев-18 07:01
Сообщения: 5
Добрый день. Пытаюсь наладить обмен с ПК. Написал программу для обработки ARP запросов и ответов на них. Программа Wireshark не отображает мои ответы, а в статистике интерфейса пишет:
Recive OK - 1 (2,3... и далее)
Recive Error - 1 (2,3... и далее)
...
Packets received with CRC or FCS errors - 1 (2,3... и далее)

При этом моя программа работает(в смысле видит исходящие пакеты) по витой паре с другой такой же микросхемой и с Макетом EVAL_22_0B_rev2 (1986ВЕ1Т)
Для передачи использую 1 дескриптор с настройкой 0xC000, длина пакета 0x2a или 0x40 (Минимальная длина пакета в MinFrame - 0x40).
В документации на микросхему написано: Передаваемый пакет можно конфигурировать следующим образом:
-разрешить или запретить автоматическое добавление поля CRC в конец пакета
(бит CRC_EN регистра MAC_CTRL)

но бита CRC_EN в описании регистра MAC_CTRL нет.


Вернуться к началу
 Заголовок сообщения: Re: 5600ВГ1У
СообщениеДобавлено: 2013-фев-21 11:04 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
А где у вас установлен 5600ВГ1 (в связке с чем вы ее используете)? Схема включения соответствует, представленной в спецификации?


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 233 сообщения ]  На страницу « 13 4 5 6 716 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


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

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB