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

 
 
 
Reply to this topicStart new topic
> Одновременная прошивка ST32F4, перенаправление с форума начинающих
iiv
сообщение Nov 23 2012, 15:25
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

очень надо сабж, написал в форуме для начинающих, но ответа не получил... Не знаю за что браться, запутался, помогите, пожалуйста.

Спасибо!

ИИВ
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Nov 23 2012, 19:14
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(iiv @ Nov 23 2012, 17:25) *
ответа не получил... Не знаю за что браться, запутался, помогите, пожалуйста.

Прошивка.
Ответ там стоял: JTAG. Важная особенность этого отладочного интерфейса - каскадируемость (очень похоже на SPI): выход TDO предыдущего контроллера на вход TDI следующего, а остальные сигналы - TCK, TMS, TRST - параллельно. Итого 4 линии (массу не считаем). Любой нормальный отладчик/программатор сможет достучаться до любого в цепочке при указании ему количества бит до и после искомого контроллера. Многие программаторы (софт к ним) сами исследую цепочку и выдают ID устройств в ней; остается только выбрать, с каким нужно работать. В JTAG цепочке можно смешивать разные устройства. Например, контроллер и FPGA.

Теперь по шине коммуникации при работе.
Названая "латентность" (хоть бы слово русское подобрал!) ничего не говорит, пока не ясно будет, какова длина пакетов. Вот ответа и не получил там, т.к. не дал информацию.
USART в "классическом" асинхронном режиме может, судя по докам, в районе 10Mbps. Вполне нормально для RS-485. Это 1мкс на байт. Хватит?

Сообщение отредактировал KnightIgor - Nov 23 2012, 19:15
Go to the top of the page
 
+Quote Post
Axel
сообщение Nov 24 2012, 05:23
Сообщение #3


Местный
***

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



Цитата(iiv @ Nov 23 2012, 18:25) *
... Не знаю за что браться...


Недостаточно информации для "генерации рекомендаций" biggrin.gif . Из собственного опыта: для решения похожей задачи (еще на STM32F710) использовал CAN. В системе был хост для "бродкастинга", "енумерации", "апгрейда" biggrin.gif и синхронизации. Каждое устройство содержало бутлоадер с независимой поддержкой CAN. Но таких жестких требований к "латентности" не было. Если бы были - вероятно использовал бы аппаратные линии.
Go to the top of the page
 
+Quote Post
iiv
сообщение Nov 24 2012, 13:38
Сообщение #4


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(KnightIgor @ Nov 24 2012, 00:14) *
Важная особенность этого отладочного интерфейса - каскадируемость (очень похоже на SPI): выход TDO предыдущего контроллера на вход TDI следующего, а остальные сигналы - TCK, TMS, TRST - параллельно.


Классно!!! Спасибо _Pasha и Вам большое за простые и понятные объяснения по поводу JTAG. Я им до этого почти не пользовался, прошивая все по ком порту, так-как в основном работал на ардуино подобных системах. Теперь все встало на свои места, понял как и что, буду так действовать.

Цитата(KnightIgor @ Nov 24 2012, 00:14) *
Названая "латентность" (хоть бы слово русское подобрал!) ничего не говорит, пока не ясно будет, какова длина пакетов. Вот ответа и не получил там, т.к. не дал информацию.
USART в "классическом" асинхронном режиме может, судя по докам, в районе 10Mbps. Вполне нормально для RS-485. Это 1мкс на байт. Хватит?


да, реально, я не смог подобрать правильного русского слова, и, поэтому, мы друг друга не поняли... Обычно в параллельных вычислениях под моделью передачи пакетов между процессорами подразумевают модель время = Sigma + Tau * L, где L - размер передаваемого пакета (например в байтах), Sigma - латентность (latency, измеряется в секундах), Tau - обратная к скорости передачи (секунд в байт). Из этого латентность не зависит от длины пакета. В моем случае так и есть, пакеты могут быть и по 4 байта, и по килобайту, поэтому меня именно волновало как организовать систему, чтобы Sigma была не хуже 2-3мкс, а 1/Tau - не меньше 1мбит/сек.

Понятно, что идеологически I2C - самый простой для этого интерфейс, но, я спросил можно ли на нем реально достичь таких скоростных показателей...

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
Axel
сообщение Nov 24 2012, 19:24
Сообщение #5


Местный
***

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



Цитата(iiv @ Nov 24 2012, 16:38) *
Понятно, что идеологически I2C - самый простой для этого интерфейс, но, я спросил можно ли на нем реально достичь таких скоростных показателей...


Нельзя. I2C на 0.5м шлейфе устойчиво работает до 250кГц. Да он и не для этого придуман (не для связи между модулями).
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Nov 24 2012, 21:22
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(iiv @ Nov 24 2012, 15:38) *
Sigma - латентность (latency, измеряется в секундах)

Теперь понятно. Слово применю тоже не чисто русское - имеется ввиду аддитивная составляющая, в то время как Tau - мультипликативная. Если говорить о пакетах данных, такой составляющей может быть его преамбула: BREAK в DMX, различные последовательности битов в системах передачи с каналом без постоянной составляющей (радиоканалы, Ethernet, и т.п.). Аппаратной задержкой в драйверах RS485 и подобных тут можно принебречь. Ну, а уж как сами CPU там на все прореагируют...

Цитата
Понятно, что идеологически I2C - самый простой для этого интерфейс, но, я спросил можно ли на нем реально достичь таких скоростных показателей...

Можно - на границе спецификации Fast Mode+ I2C. В принципе, выбор неплох: интерфейс мультимастерный, можно передавать широковещательные сообщения... Если шина будет валить фронты (I2C - открытый коллектор), можно поставить ускоритель (ищи у linear). Придется правда повозиться с весьма мудреным I2C в STM.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Nov 25 2012, 11:09
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(iiv @ Nov 24 2012, 17:38) *
Понятно, что идеологически I2C - самый простой для этого интерфейс, но, я спросил можно ли на нем реально достичь таких скоростных показателей...

ну-ну.. разрулите работу 3+ мастеров на шине и сами поймете "простоту" и латентность..

Цитата(Axel @ Nov 24 2012, 23:24) *
Нельзя. I2C на 0.5м шлейфе устойчиво работает до 250кГц. Да он и не для этого придуман (не для связи между модулями).

именно для связи между модулями/платами он и предназначен.. например аккумуляторы со встроенными контроллерами, tft матрицы.. (это помимо внутриплатного обмена)
кстати о матрицах, в старых ЭЛТ и устаревающих TFT мониторах с интерфейсом VGA для идентификации использован DDC - тот же i2c.. длина кабеля ~1.5м
да, экранированный, да, скорость невысокая..
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 25 2012, 16:23
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(KnightIgor @ Nov 25 2012, 01:22) *
Придется правда повозиться с весьма мудреным I2C в STM.

Кривой он, а не мудрёный.

Есть с SPI вариант такой:
-два дифференциалных трансивера как в RS485, два моноканала
- один отвечает за передачу/прием клока
- второй соответственно для MISO/MOSI
Это для высокоскоростной передачи.
Договариваться, кто источник кто приемник можно в рамках I2C
------
Сам еще не пробовал, - так, мысли вслух.
Go to the top of the page
 
+Quote Post
Axel
сообщение Nov 26 2012, 09:03
Сообщение #9


Местный
***

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



Цитата(Jury093 @ Nov 25 2012, 15:09) *
именно для связи между модулями/платами он и предназначен..


Вы правы. Я неточно выразился, а имел в виду "не для быстрого обменa".
Go to the top of the page
 
+Quote Post
iiv
сообщение Nov 26 2012, 16:09
Сообщение #10


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(KnightIgor @ Nov 24 2012, 00:14) *
Прошивка.
Ответ там стоял: JTAG.

Во-первых, всем огромное спасибо всем за разъяснения! Многое понял, сейчас планирую плату. Возникло два глупый вопроса, ответы на который быстро не смог найти в мануалах...

Скажите, пожалуйста

1. если у меня только STM32 контроллеры, можно ли как-то по SWIM интерфейсу прошить несколько, организованных в цепочку как и по JTAGу?

2. если я вдруг захочу подсоединить колхоз плисок, atmeg и STM32, достаточно ли мне в этом случае иметь VREF, GND, TCK, TMS, TDO, TDI и могу ли я обойтись без nSRST и nTRST?

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post

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

 


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


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