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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> USB Sniffer, Help!!!
kovigor
сообщение Aug 27 2015, 11:02
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Armen78 @ Aug 27 2015, 13:53) *
kovigor , можно связаться с вами по мейлу?

Пожалуйста,
kovigor@yahoo.com
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 11:55
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(aaarrr @ Aug 27 2015, 12:21) *
Это и есть сдвиговый регистр. Можете принимать поток данных с частотой 42МГц, и сразу складывать через DMA в память для последующего анализа.

А EOP как ловить?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 14:04
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(GetSmart @ Aug 27 2015, 14:55) *
А EOP как ловить?

Взять второй SPI.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 14:53
Сообщение #19


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(aaarrr @ Aug 27 2015, 18:04) *
Взять второй SPI.

Отъест слишком много ресурсов ЯДРА.
Можно предложить на SPI подать D+, а EOP ловить логикой вроде 2ИЛИ с небольшим(и) RC-фильтром, поданным на вход INT процессора. EOP будет виден как строб шириной пару бит в конце пакета (сплошные еденицы). А прерывание обратит на это место внимание ядра. Хотя между Out токеном и DataX пакетом бывает всего пару бит состояния Idle. Тут разобраться будет сложнее.

Сообщение отредактировал GetSmart - Aug 27 2015, 15:09


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
kovigor
сообщение Aug 27 2015, 15:09
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(GetSmart @ Aug 27 2015, 17:53) *
Можно предложить на SPI подать D+, а EOP ловить логикой вроде 2ИЛИ с небольшим(и) RC-фильтром, поданным на вход INT процессора. EOP будет виден как строб шириной пару бит в конце пакета (сплошные еденицы). А прерывание обратит на это место внимание ядра.

Я не совсем понимаю, зачем все это, если гораздо проще использовать ПЛИС ?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 15:11
Сообщение #21


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Спортивный интерес программистов.

Да и ТС предложил пофантазировать на нестандартную тему.

Сообщение отредактировал GetSmart - Aug 27 2015, 15:52


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 15:12
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(GetSmart @ Aug 27 2015, 17:53) *
Отъест слишком много ресурсов ЯДРА.

На обработке? Не отъест: всего-то сложить по OR два числа и проверить, все ли единицы.

Цитата(GetSmart @ Aug 27 2015, 17:53) *
Можно предложить на SPI подать D+, а EOP ловить логикой вроде 2ИЛИ с небольшим(и) RC-фильтром, поданным на вход INT процессора. EOP будет виден как строб шириной пару бит в конце пакета (сплошные еденицы). А прерывание обратит на это место внимание ядра.

Во-первых, это подразумевает разбор на лету; во-вторых, "это место" получится слишком уж неопределенным из-за латентности прерывания. Тогда уж таймером захватывать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 15:59
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(GetSmart @ Aug 27 2015, 18:53) *
Какую латентность? На заявленном процессоре и на остальных Кортексах обещали нулевой джиттер.

Кто обещал?

Цитата(GetSmart @ Aug 27 2015, 18:53) *
Но читая мануалы NXP почти нигде не указано сколько задержка в тактах.

На arm.com все расписано. Недавно обсуждалось.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 17:03
Сообщение #24


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(aaarrr @ Aug 27 2015, 19:59) *
Кто обещал?

Реклама разработчиков. Но в STM могут быть любые неожиданности. Сам проверял с обработчиком во внутренней RAM и джиттера не наблюдал. С точностью до такта.

На 168 МГц два бита EOP выльются в 28 тактов свободы. Джиттер готовности SPI будет сравнимый (на 42 МГц), если SPI байтовый. Так что не надо сгущать краски. OR двух байт тоже быстро, согласен. Если не будет проблем с вычитыванием двух SPI.

-----
По недоразумению мой предыдущий пост удалили. Восстанавливаю.

Какую латентность? На заявленном процессоре и на остальных Кортексах обещали нулевой джиттер. Но читая мануалы NXP почти нигде не указано сколько задержка в тактах.

Сообщение отредактировал GetSmart - Aug 27 2015, 18:10


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 18:30
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Только не байт, а слова - у нас же 32 битный процессор, зачем по мелочам размениваться? А считывать будет DMA.

Цитата(GetSmart @ Aug 27 2015, 20:03) *
Сам проверял с обработчиком во внутренней RAM и джиттера не наблюдал. С точностью до такта.

Тем не менее, время входа зависит от прерываемого кода. Даже когда все выполняется из RAM. И ST/NXP тут ни при чем, ядро так себя ведет.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 18:43
Сообщение #26


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(aaarrr @ Aug 27 2015, 22:30) *
Тем не менее, время входа зависит от прерываемого кода.

Не очень понял из той ветки: что нужно сделать чтобы это увидеть? Какой код?

ЗЫ
Проверял не с одним обработчиком в раме, а и основной программой тоже, вместе с таблицей векторов.

Цитата(aaarrr @ Aug 27 2015, 22:30) *
Только не байт, а слова - у нас же 32 битный процессор, зачем по мелочам размениваться?

У NXP SPI/SSP максимум 16 бит. Если у STM 32, то круто.

Сообщение отредактировал GetSmart - Aug 27 2015, 18:48


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 19:13
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(GetSmart @ Aug 27 2015, 21:43) *
Не очень понял из той ветки: что нужно сделать чтобы это увидеть? Какой код?

Прибавляется такт при прерывании bit-band операций и инструкций с невыровненным доступом.

Цитата(GetSmart @ Aug 27 2015, 21:43) *
У NXP SPI/SSP максимум 16 бит. Если у STM 32, то круто.

Я данные предлагал сложить в RAM при помощи DMA. Далее уже оперировать 32 битными словами.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 19:19
Сообщение #28


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(aaarrr @ Aug 27 2015, 23:13) *
Прибавляется такт при прерывании bit-band операций и инструкций с невыровненным доступом.

А на CM0 джиттера нет?

Всё перечисленное легко избегаемо даже в Си-коде. И пугать тактом задержки на фоне EOP равного 28 тактам это как минимум странно.

Сообщение отредактировал GetSmart - Aug 27 2015, 19:29


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 27 2015, 19:35
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Еще джиттер создают late arrival и pop pre-emption, если прерывание не одно.

Цитата(GetSmart @ Aug 27 2015, 22:19) *
А на CM0 джиттера нет?

Только в особом режиме:
Цитата
The Cortex-M0 and Cortex-M0+ processors have an optional feature to force interrupt response time to have zero jitter. This is done by forcing the interrupt latency to be the worst case (i.e. interrupt latency + wait state effect). This feature is typically not used in microcontrollers (just process the interrupt request as quick as possible), but is used in some special SoC designs that demand zero jitter in interrupt responses.


Цитата(GetSmart @ Aug 27 2015, 22:19) *
Всё перечисленное легко избегаемо даже в Си-коде. И пугать тактом задержки на фоне EOP равного 28 тактам это как минимум странно.

Странно, по-моему, пытаться разбирать поток на лету. Реальные задержки будут далеко не в один такт.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 27 2015, 19:49
Сообщение #30


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Прерывание должно было "метку поставить", например, по текущему адресу из DMA, что там (+-байт) находится EOP. Шириной, грубо, тоже в байт. При этом не используя второй SPI. Ничего странного в этом нет.

На лету делают разбор даже на AVR. Пример тому V-USB. Умножив ресурсоёмкость на 8 (FS/LS) получим сравнимую тактовую в 160 МГц.

Сообщение отредактировал GetSmart - Aug 27 2015, 20:08


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


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


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