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

 
 
> самый быстрый сетевой чип ?
Огурцов
сообщение Jan 2 2013, 17:41
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Помучал(ся) w5200, начинал с 25 пакетов в секунду, сечас разогнал до 5-6 тысяч, случайный максимум 7 тысяч при какой-то там оптимизации. Но это все равно мало в сравнении с максимальной пропускной способностью 100 мегабит (200 тысяч).
Мне нужно раз в десять больше, чем сейчас, т.е. 50-60-70 тысяч в секунду. На каком чипе можно столько (или больше) выжать ? Предпочтительно на SPI, т.к. скорость SPI на скорость передачи не очень сильно влияет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Cosmojam
сообщение Jan 3 2013, 22:40
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



На STM32F4 свет клином не сошёлся. Есть STM32F2 и LPC17 в до <= 100 ножных корпусах, а так же LM3S со встроенным PHY http://www.ti.com/mcu/docs/mculuminaryfeat...amp;featureId=7


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 5 2013, 03:32
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Cosmojam @ Jan 3 2013, 23:40) *
LM3S со встроенным PHY

Был не прав, оказывается ride7 его может, а это среда, прошивка и отладка. Так что вопрос лишь за демобордой.
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Jan 5 2013, 10:10
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Цитата(Огурцов @ Jan 5 2013, 06:32) *
Был не прав, оказывается ride7 его может, а это среда, прошивка и отладка. Так что вопрос лишь за демобордой.

Судя по видео http://www.youtube.com/watch?feature=playe...;v=tVTh7E5kSpE#! у них в ближайших планах выпустить LM4F29x серию со встроенным MAC+PHY. Должно быть весьма вкусно.


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 5 2013, 13:02
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Так оно и сейчас уже очень даже вкусно. Только почему-то все производители просто считают своим долгом засунуть эзернет в стоногий корпус, куда блин с такой плюшкой. БГА был бы поменьше, конечно, но это вообще космос.


Цитата(Огурцов @ Jan 5 2013, 00:28) *
Может кто-нибудь объяснить, почему эстээмовский SPI клинит, если только отправлять данные и не вычитывать принятые данные каждый раз после отправки ?

Подумал. Если второй SPI включить слейвом параллельно, то можно будет через один SPI передавать, через другой принимать. Возможно, поможет.

Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 5 2013, 14:37
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Проверил SPI - работает адекватно. Проблема, похоже в w5200 - м.б. не успевает принимать (или отправлять) данные и хочет паузу между ними. Будете смеяться, вот такая шняга работает.

CODE

void SPI1_SendByte(uint8_t byte)
{
// while (!(SPI1->SR & SPI_I2S_FLAG_TXE));
SPI1->DR = byte;
while (!(SPI1->SR & SPI_I2S_FLAG_RXNE));

// Delay_us(1);

asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");

asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");

asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");

// (uint8_t)SPI1->DR;
}


Если при отправке ждать готовности передатчика, а не приемника - не работает. Если нопов четырнадцать, а не пятнадцать - не работает. Скорость передачи поднялась стабильно до 38К+ Шаманство и магия какие-то, а не программирование.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 5 2013, 16:38
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Выше наврал, с w5200 все ок - проверял пошагово в отладчике, а там конечно задержки.
Очевидно, баг в STM.
Примерно вот такой код для проверки, MISO подключен к MOSI

CODE

uint8_t i;
for(i = 11; i < 14; i++)
{
while (!(SPI1->SR & SPI_I2S_FLAG_TXE));
SPI1->DR = i;
Delay_us(1);
}

while ((SPI1->SR & SPI_I2S_FLAG_RXNE))
i = SPI1->DR;
while (!(SPI1->SR & SPI_I2S_FLAG_TXE));
SPI1->DR = (uint8_t)123;
while (!(SPI1->SR & SPI_I2S_FLAG_RXNE));
if (SPI1->DR != (uint8_t)123)
STM_EVAL_LEDOn(LED5);


Задержка после отправки зависит не от времени, а должна быть пропорциональна тактовой частоте-1 SPI, иначе зажигается LED5 (считывается ноль)

STM32F407
VGT6 A
HPAEX VG
KOR HP 123


Поскольку стала понятна причина, добавил ядру частоты до 216MHz и 7 тактов ожидания - теперь летит 48K+ пакетов. Почти сколько нужно.

Сообщение отредактировал Огурцов - Jan 5 2013, 16:40
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 6 2013, 14:22
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Дрыганьем ножек вручную (без SPI) удалось достичь 19.6К, незнание ассемблера ARM не позволяет оптимизировать код дальше
На 72MHz тактовой, с 2 тактами ожидания, PCLK2==Div1 10 нопов с SPI - 23,2К


зы: 100 пиновый LQFP на первый взгляд не входит. Кто-нить паяет БГА вручную, есть проблемы ?

Сообщение отредактировал Огурцов - Jan 6 2013, 14:27
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   самый быстрый сетевой чип ?   Jan 2 2013, 17:41
- - Rst7   Не страдайте фигней, возьмите процессор со встроен...   Jan 2 2013, 19:22
|- - Огурцов   Я бы взял stm32f407, но корпус великоват, да и PHY...   Jan 2 2013, 20:05
|- - Огурцов   Не хотелось бы на новых камнях год-другой потерять...   Jan 4 2013, 05:00
|- - Огурцов   Цитата(Cosmojam @ Jan 3 2013, 23:40) LM3S...   Jan 7 2013, 04:07
|- - Огурцов   Таки запустил код в RAMе, скорость почему-то? стал...   Jan 7 2013, 19:01
- - Rst7   QUOTE Не хотелось бы на новых камнях год-другой по...   Jan 4 2013, 07:35
- - Огурцов   Цитата(Rst7 @ Jan 4 2013, 08:35) Это каки...   Jan 4 2013, 10:48
- - Огурцов   Каким-то непонятным образом после перекомпиляции с...   Jan 4 2013, 13:59
- - Огурцов   О! это возможно из-за компиляции релиза   Jan 4 2013, 16:11
- - Огурцов   В общем, не знаю как 38, но 27К достигается стабил...   Jan 4 2013, 21:05
- - Огурцов   Может кто-нибудь объяснить, почему эстээмовский SP...   Jan 5 2013, 00:28
- - Огурцов   Посмотрел ENC424J600 - похоже, что он не подойдет,...   Jan 5 2013, 01:50
- - iosifk   Цитата(Огурцов @ Jan 5 2013, 05:50) Посмо...   Jan 5 2013, 07:15


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

 


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


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