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

 
 
> uart+dma
Огурцов
сообщение Feb 6 2016, 22:18
Сообщение #1


Гуру
******

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



как наименьшими телодвижениями организовать приём пакетов ?
пока видится только один вариант - сделать все пакеты одинаковой длины
но даже он не решает полностью - может прийти полпакета или наоборот, больше
после чего остальные пакеты перестанут попадать на границу и прерывание будет вызываться не по концу пакета, а где-то по середине
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Огурцов
сообщение Feb 7 2016, 16:33
Сообщение #2


Гуру
******

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



тут вопрос в другом - будет ли генерироваться idle, если внутри пакета придёт новый адреса слейва ?
было бы правильнее иметь прерывание именно по смене адреса, что абсолютно однозначно указывает на конец пакета


Цитата(mantech @ Feb 7 2016, 14:45) *
Ethernet?

это очень медленный интерфейс с огромных оверхедом
мне надо 62.5 килопакета в секунду, а на эзернете реально получается где-то 25, при 100% загрузке
и ещё его нет в бюджетных камнях

Цитата(mantech @ Feb 7 2016, 14:45) *
фиксированной длины

потенциально это можно, если бы оно только решало


Цитата(ViKo @ Feb 7 2016, 14:30) *
передавайте сначала заголовок пакета, в нем размер. По нему настройте ПДП. А затем передавайте сам пакет.

нет

Сообщение отредактировал Огурцов - Feb 7 2016, 16:34
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 7 2016, 17:45
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Огурцов @ Feb 7 2016, 21:33) *
тут вопрос в другом - будет ли генерироваться idle, если внутри пакета придёт новый адреса слейва ?
было бы правильнее иметь прерывание именно по смене адреса, что абсолютно однозначно указывает на конец пакета

Так включите и это прерывание, одно другому не мешает.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 7 2016, 18:42
Сообщение #4


Гуру
******

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



Цитата(AHTOXA @ Feb 7 2016, 18:45) *
Так включите и это прерывание, одно другому не мешает.

так я не нашёл

в общем, попробую три варианта
если idle принимается каждым слейвом, независимо от текущего адреса, буду генерить его один раз в конце пакета
если idle относится только к текущему слейву, буду генерить его на каждый субпакет
если уж совсем ничего не поможет - придется дополнительно задействовать прерывание exti спаду сигнала data_valid, который я совсем упустил

Цитата(jcxz @ Feb 7 2016, 17:37) *
SPI

синхронизироваться сложно


Цитата(zltigo @ Feb 7 2016, 18:46) *
кривая

будете сравнивать вес uart c ethernet ?

Сообщение отредактировал Огурцов - Feb 7 2016, 18:42
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 8 2016, 03:53
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Огурцов @ Feb 8 2016, 00:42) *
синхронизироваться сложно

А вот вопрос - что это за бюджетный камень такой у STM позволяющий 10МБит/с по UART??? Озвучьте!
10 МБит/с - это ведь как минимум 160МГц тактовой на входе UART-периферии.
Или у Вас оверсэмплинг = 8? Но всё равно...

Цитата(evgen2 @ Feb 8 2016, 03:24) *
О, а у меня противоположный вопрос - как с наименьшими движениями организовать передачу по DMA из памяти в uart на lpc17xx.

А что именно вызывает затруднения? Поставить бит в SSP.DMACR и написать 5 строчек инициализации DMA-канала???
Подсказка: чтобы хоть что-то организовать, надо первым делом открыть даташит. Или этот шаг пропустили и сразу в примеры полезли?
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 8 2016, 07:20
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ Feb 8 2016, 06:53) *
10 МБит/с - это ведь как минимум 160МГц тактовой на входе UART-периферии.


Разогнал наверно biggrin.gif

ЗЫ. Вообще посмотрел соседнюю тему, товарищ Огурцов вообще интересными вещами занимается, например, езернет без мак контроллера, по спи... Так что 10 мег по уарту уже не удивляет laughing.gif

Сам считаю, что для каждой задачи нужно свое решение, если нужен эзернет - так и надо брать мк с ним, а если мегабитные скорости - ИМХО уарт не для этого был разработан...

Сообщение отредактировал mantech - Feb 8 2016, 07:22
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 8 2016, 08:27
Сообщение #7


Гуру
******

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



Цитата(mantech @ Feb 8 2016, 07:20) *
Разогнал

нет, затормозил

Цитата(mantech @ Feb 8 2016, 07:20) *
10 мег по уарту

не только 10, в не самом бюджетном камне от 40..50 до 100 должно
ещё тут недавно тема была, про нейросети, точнее про сотни бюджетных камней на одной плате, как им общаться ?

Цитата(mantech @ Feb 8 2016, 07:20) *
если нужен эзернет

нам такой футбол не нужен http://electronix.ru/forum/index.php?showt...t&p=1402440

Цитата(mantech @ Feb 8 2016, 07:20) *
ИМХО уарт не для этого был разработан...

а для чего ? а для чего был телефон придуман, для adsl, наверно ?

Сообщение отредактировал Огурцов - Feb 8 2016, 08:28
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   uart+dma   Feb 6 2016, 22:18
- - AHTOXA   Если это STM32, то добавьте прерывание по IDLE.   Feb 7 2016, 05:52
|- - Огурцов   Цитата(AHTOXA @ Feb 7 2016, 06:52) Если э...   Feb 7 2016, 09:14
|- - mantech   Цитата(Огурцов @ Feb 7 2016, 12:14) UART ...   Feb 7 2016, 13:45
|- - AHTOXA   Цитата(Огурцов @ Feb 7 2016, 14:14) а буд...   Feb 7 2016, 15:08
- - ViKo   Задавайте в начале каждого пакета его длину.   Feb 7 2016, 06:48
|- - jcxz   Для любого МК: При старте rx-DMA, кроме разрешения...   Feb 7 2016, 07:09
- - scifi   А лучше без всяких DMA передавать человеческим тек...   Feb 7 2016, 07:36
|- - Огурцов   Цитата(scifi @ Feb 7 2016, 08:36) лучше б...   Feb 7 2016, 08:47
||- - ViKo   Цитата(Огурцов @ Feb 7 2016, 11:47) т.е. ...   Feb 7 2016, 13:30
|- - jcxz   Цитата(scifi @ Feb 7 2016, 13:36) А лучше...   Feb 7 2016, 08:58
- - scifi   Можно посмотреть на LIN. Там есть Break.   Feb 7 2016, 09:41
|- - jcxz   Цитата(Огурцов @ Feb 7 2016, 22:33) мне н...   Feb 7 2016, 16:37
||- - zltigo   QUOTE (Огурцов @ Feb 7 2016, 20:42) будет...   Feb 7 2016, 20:23
||- - Огурцов   Цитата(jcxz @ Feb 8 2016, 03:53) Или у Ва...   Feb 8 2016, 06:33
|||- - zltigo   QUOTE (mantech @ Feb 8 2016, 09:20) ЗЫ. В...   Feb 8 2016, 07:54
||- - evgen2   Цитата(jcxz @ Feb 8 2016, 06:53) А что им...   Feb 8 2016, 08:21
||- - jcxz   Цитата(evgen2 @ Feb 8 2016, 14:21) Зачем ...   Feb 8 2016, 08:55
||- - evgen2   Цитата(jcxz @ Feb 8 2016, 11:55) Вот моя ...   Feb 8 2016, 09:53
||- - jcxz   Цитата(evgen2 @ Feb 8 2016, 15:53) Нашел....   Feb 10 2016, 13:24
|- - zltigo   QUOTE (Огурцов @ Feb 7 2016, 18:33) это о...   Feb 7 2016, 17:46
|- - mantech   Цитата(Огурцов @ Feb 7 2016, 19:33) это о...   Feb 7 2016, 18:48
- - Огурцов   дюжина байт войдёт был бы ещё uart хотя бы на 25 м...   Feb 7 2016, 19:18
- - Tarbal   Я бы сделал циклический буфер, заполняемый DMA, с ...   Feb 7 2016, 21:09
- - evgen2   Цитата(Огурцов @ Feb 7 2016, 01:18) как н...   Feb 7 2016, 21:24
- - Огурцов   погонял idle - ерунда, работает не так, как мне на...   Feb 10 2016, 12:55
|- - scifi   Цитата(Огурцов @ Feb 10 2016, 15:55) пого...   Feb 10 2016, 15:30
- - Огурцов   break работает только с lin или не только ?   Feb 10 2016, 15:55
|- - scifi   Цитата(Огурцов @ Feb 10 2016, 18:55) brea...   Feb 10 2016, 19:58
- - Огурцов   а не получилось вероятно, остановлюсь на любимом f...   Feb 10 2016, 21:17


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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 21:50
Рейтинг@Mail.ru


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