Миландр

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

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2016-дек-16 12:06 
Не в сети

Зарегистрирован: 2016-май-07 09:49
Сообщения: 35
Откуда: Саратов
Доброго времени суток!

Подскажите, кто-нибудь работал с ethernet на 1986ВЕ3Т? Загружаю в контроллер демо-пример, но связь неустойчивая. Примерно через 5-7 минут обмен данными прекращается.
У меня демо-плата ревизии 2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2016-дек-16 13:55 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 475
Ethernet на ВЕ3 аналогичен ВЕ1. Гляньте вокруг темы: http://forum.milandr.ru/viewtopic.php?f=34&t=2678&start=0#p15034, вдруг поможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-мар-01 10:12 
Не в сети

Зарегистрирован: 2016-фев-04 13:50
Сообщения: 3
Добрый день! Мы используем общий внешний источник, но на самой плате разделяем полигоны питания на цифровые и аналоговые. К каким цепям земли и питания должны подтягиваться приёмопередающие цепи Ethernet в соответствие с вашей рекомендованной схемой подключения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-мар-03 09:57 
Не в сети

Зарегистрирован: 2017-фев-14 11:21
Сообщения: 63
Здравствуйте!
Согласно схеме подключения (Рисунок 133 в спецификации) приемопередающие цепи Ethernet должны подключаться к цифровому питанию Vcc.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-29 11:33 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 55
взял демо пример набортного ethernet
опытным путем установлил что через некоторое время связь пропадает -
и не заходит в обработчик прерывания.
стал разбираться с битами - это происходит если вставляется
бит OVF в ethernet - то есть не успеваю прочитать и идет новая записа
если стоит этот бит то бит наличия приема не взводится.
как OVF правильно скинуть ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-30 19:36 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 55
кто нибудь из "миландра" ответит мне вот на что:
как в этом встроенном ethernet реализован формат кадра?

смотрю формат кадра ethernet:
6 байтов адреса назначения 6 байтов адреса источника
потом 2 байта длины пакета

адрес источника и приемника набиваются программно
но я не вижу в примерах как ставится длина пакета.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-31 09:06 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1115
Откуда: Тула
Если Вам действительно нужен ответ и Вам некогда ждать когда техподдержка соблаговолит заглянуть на форум (ну "не любят" они это), Вам стоит обратиться к реализациям в уже существующих проектах (даже для ВЕ3 их более одной, для ВЕ1 и вообще штуки 3-4 на моей памяти).
  1. драйвер CMSIS_Driver\MDR1986VE1T\MDR1986VE1T_ETH_*
  2. проект mdr1986x-pack-repo\source\Example_Projects_Eclipse\1986BE3_UDP
  3. Порт uIP на контроллеры серии 1986ВЕ9х, ВЕ1х, ВЕ2х, 5600ВГ1У
  4. Порт LwIP
  5. UDP, ARP и ping для 1986BE3 в режиме FIFO
  6. далее гуглите самостоятельно...

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-31 09:44 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 55
prostoRoman писал(а):
Если Вам действительно нужен ответ и Вам некогда ждать когда техподдержка соблаговолит заглянуть на форум (ну "не любят" они это), Вам стоит обратиться к реализациям в уже существующих проектах (даже для ВЕ3 их более одной, для ВЕ1 и вообще штуки 3-4 на моей памяти).
  1. драйвер CMSIS_Driver\MDR1986VE1T\MDR1986VE1T_ETH_*
  2. проект mdr1986x-pack-repo\source\Example_Projects_Eclipse\1986BE3_UDP
  3. Порт uIP на контроллеры серии 1986ВЕ9х, ВЕ1х, ВЕ2х, 5600ВГ1У
  4. Порт LwIP
  5. UDP, ARP и ping для 1986BE3 в режиме FIFO
  6. далее гуглите самостоятельно...

супер!
спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-31 10:16 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 119
Откуда: ПКК "Миландр"
Цитата:
как OVF правильно скинуть ?

В спецификации указано что бит в данном регистре доступен для записи и чтения. При сбросе надо убедиться, что поток забивающий буфер прекратился, иначе бит снова будет установлен.
Не знаю в каком режиме работают буферы, возможно потребуется сбросить указатели Head и Tail.

Попробуйте в регистре Delimeter увеличить буфер для входящих пакетов. Если переполнение возникает периодически и не очень длинными пакетами, то возможно это поможет обработать всплеск трафика.

Цитата:
кто нибудь из "миландра" ответит мне вот на что:
как в этом встроенном ethernet реализован формат кадра?

смотрю формат кадра ethernet:
6 байтов адреса назначения 6 байтов адреса источника
потом 2 байта длины пакета


Два байта после MAC адресов это либо длина пакета, либо тип пакета - https://ru.wikipedia.org/wiki/Ethernet
Если вопрос связан с примером реализации TCPIP (из нашего пака или SPL), то там обрабатывается, например, TCP пакет. Структуру его заголовка Вы найдете в файле tcpip.h
Код:
typedef struct {
    uint16_t DestAddr[3];
    uint16_t SrcAddr[3];
    uint16_t FrameType;
    uint16_t IPVerIHL;
    uint16_t FrameLength;
    .....

} sEthernetTCPIP_Frame, *pEthernetTCPIP_Frame;


Заполнение этого поля можно увидеть в
Код:
void PrepareTCP_FRAME(unsigned short TCPCode)
  ....
  *(uint16_t *) &ptr_OutFrame[ETH_TYPE_OFS]          = SWAPB(FRAME_IP);

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-авг-31 12:24 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1115
Откуда: Тула
Vasiliy писал(а):
Структуру его заголовка Вы найдете в файле tcpip.h
Код:
typedef struct {
    uint16_t DestAddr[3];
    uint16_t SrcAddr[3];
    uint16_t FrameType;
    uint16_t IPVerIHL;
    uint16_t FrameLength;
    .....

} sEthernetTCPIP_Frame, *pEthernetTCPIP_Frame;
Заполнение этого поля можно увидеть в
Код:
void PrepareTCP_FRAME(unsigned short TCPCode)
  ....
  *(uint16_t *) &ptr_OutFrame[ETH_TYPE_OFS]          = SWAPB(FRAME_IP);

а ожидаешь
Код:
OutFrame->FrameType          = SWAPB(FRAME_IP);

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2017-сен-04 15:08 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 55
prostoRoman писал(а):
Vasiliy писал(а):
Структуру его заголовка Вы найдете в файле tcpip.h
Код:
typedef struct {
    uint16_t DestAddr[3];
    uint16_t SrcAddr[3];
    uint16_t FrameType;
    uint16_t IPVerIHL;
    uint16_t FrameLength;
    .....

} sEthernetTCPIP_Frame, *pEthernetTCPIP_Frame;
Заполнение этого поля можно увидеть в
Код:
void PrepareTCP_FRAME(unsigned short TCPCode)
  ....
  *(uint16_t *) &ptr_OutFrame[ETH_TYPE_OFS]          = SWAPB(FRAME_IP);

а ожидаешь
Код:
OutFrame->FrameType          = SWAPB(FRAME_IP);

спасиб!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2018-май-23 13:50 
Не в сети

Зарегистрирован: 2014-ноя-05 07:19
Сообщения: 6
Микроконтроллер 1986ВЕ3Т. Внешний осциллятор 10МГц. Необходима работа с ETHERNET.
После таких настроек частоты модуль работает, но не со всеми сетевыми картами (преимущественно отечественными)

MDR_RST_CLK->HS_CONTROL = 0x01; /* вкл. HSE */
while ((MDR_RST_CLK->CLOCK_STATUS & (1 << 2)) == 0x00); /* ждем пока HSE выйдет в рабочий режим */

MDR_RST_CLK->PLL_CONTROL = ((1 << 2) | (4 <<8)); //вкл. PLL | коэф. умножения = 5 частота ядра 50 МГц
while((MDR_RST_CLK->CLOCK_STATUS & 0x02) != 0x02); //ждем когда PLL выйдет в раб. режим

MDR_RST_CLK->CPU_CLOCK = (2 /*источник для CPU_C1 */
| (1 << 2) /*источник для CPU_C2 - PLL*/
| (0 << 4) /*предделитель для CPU_C3 - переферия работает на 50 МГц*/
| (1 <<8));/*источник для HCLK*/

MDR_RST_CLK->ETH_CLOCK=(1<<24)|(2<<28)|(1<<27)|(1<<16); //PHY_CLK_SEL = PLLCPUo, ETH_CLK_EN=1, PHY_CLK_EN=1, ETH_CLK = 50 MHz

На форуме прочитал , что PLLCPUo не обеспечивает необходимый джиттер для модуля ETHERNET. Поставить осциллятор 25 МГц на выводы PF0, PF1 затруднительно.

Попробовал вариант с установкой генератора ГК108 на 25 МГц на вход OSC_IN и следующими настройками


MDR_RST_CLK->CPU_CLOCK = 0x00000003; //CPU_C1 frequency 12,5MHz
MDR_RST_CLK->HS_CONTROL = 0x03; /* вкл. HSE осцилятора 25 MHz*/
while ((MDR_RST_CLK->CLOCK_STATUS & (1 << 2)) == 0x00); /* ждем пока HSE выйдет в рабочий режим */

MDR_RST_CLK->PLL_CONTROL = ((1 << 2) | (3 <<8)); //вкл. PLL | коэф. умножения = 4 частота ядра 50 МГц
while((MDR_RST_CLK->CLOCK_STATUS & 0x02) != 0x02); //ждем когда PLL выйдет в раб. режим

MDR_RST_CLK->CPU_CLOCK = (3 /*источник для CPU_C1 - HSE/2 */
| (1 << 2) /*источник для CPU_C2 - PLL*/
| (0 << 4) /*предделитель для CPU_C3 - переферия работает на 50 МГц*/
| (1 <<8));/*источник для HCLK*/

MDR_RST_CLK->ETH_CLOCK=(1<<24)|(1<<28)|(1<<27)|(0<<16); //PHY_CLK_SEL = HSE, ETH_CLK_EN=1, PHY_CLK_EN=1, ETH_CLK = 50 MHz

В режиме отладки программа останавливается на строке

while ((MDR_RST_CLK->CLOCK_STATUS & (1 << 2)) == 0x00); /* ждем пока HSE выйдет в рабочий режим */


Вопрос:
Насколько работоспособно подобное решение, и как следует настраивать частоты микроконтроллера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2018-май-24 09:52 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 119
Откуда: ПКК "Миландр"
Я не пробовал данный режим и могу ошибаться, но на мой взгляд:

1. В регистре HS_CONTROL бит HSE_ON надо выключить. Сам генератор HSE (что делает из синусного сигнала резонатора прямоугольные импульсы) здесь не нужен, т.к. частота внешняя уже "квадратная" от генератора.

2. И поскольку используется byPass, т.е. частота с внешнего генератора просто пропускается сквозь генератор HSE, то ожидать раскачки неиспользуемого HSE не нужно.

Правка: По мнению разработчиков бит HSE_Ready вероятно все-таки будет работать. Но думаю это проще проверить, чем поднимать из архива документацию. Буду благодарен, если скажете отрабатывает ли этот бит на самом деле. К сожалению, не удалось найти вариантов кода где бы это отрабатывалось.

_________________
Отдел технической поддержки support@milandr.ru


Последний раз редактировалось Vasiliy 2018-май-24 13:02, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2018-май-24 12:25 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1115
Откуда: Тула
Vasiliy писал(а):
1. В регистре HS_CONTROL бит HSE_ON надо выключить.

Это гарантировано (на ВЕ9х и ВЕ1) приведёт к "зависанию порта" и невозможности подключиться к нему по jtag (совсем), будьте к этому готовы - вставьте задержку в пару секунд перед отключением HSE_ON или обеспечьте выбор режима MODE для загрузки через UART loader и/или с внешней шины.
Vasiliy писал(а):
2. И поскольку используется byPass, ..., то ожидать раскачки неиспользуемого HSE не нужно.

Ожидание "раскачки" позволяет программно определить наличие внешней тактовой частоты, иначе можно переключиться на нулевую тактовую со всеми эффектами, описанными выше.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ethernet на 1986ВЕ3Т
СообщениеДобавлено: 2018-май-24 13:14 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 119
Откуда: ПКК "Миландр"
prostoRoman писал(а):
Vasiliy писал(а):
1. В регистре HS_CONTROL бит HSE_ON надо выключить.

Это гарантировано (на ВЕ9х и ВЕ1) приведёт к "зависанию порта" и невозможности подключиться к нему по jtag (совсем), будьте к этому готовы - вставьте задержку в пару секунд перед отключением HSE_ON или обеспечьте выбор режима MODE для загрузки через UART loader и/или с внешней шины.

Возможно некорректно выразился, имел ввиду - после запуска на HSI, бит HSE_ON включать не нужно. Поскольку не нужен функционал самого генератора HSE, а только внешняя частота пропущенная сквозь него. Логика отработки HSE_Ready скорее всего остается рабочей, поэтому флаг проверять надо, как уже подправил в исходном сообщении.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB