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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Прошить кучу одинаковых контроллеров, насколько плохая идея тупо запараллелить SWD
Огурцов
сообщение Dec 3 2016, 13:40
Сообщение #16


Гуру
******

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



Цитата(AVR @ Dec 3 2016, 14:01) *
Так делать не стоит. Я бы делал бутлоадер

так делать стоит, ибо бутлодырь тоже надо как-то заливать

Цитата(AVR @ Dec 3 2016, 14:01) *
+ максимально автоматизировал этот процесс.

так вы предлагаете сделать робота, который будет ползать по плате и перетыкать разъем swd ?


Цитата(_pv @ Dec 2 2016, 14:22) *
понадобилось сделать очень много небыстрого IO, причем в обе стороны и заодно i2c размножить, вместо спец размножителей i2c и сдвиговых регистров появилась мысль понаставить мелких МК и по SPI в daisy chain их всех собрать

кстати, а про fpga/cpld мысль не появилась ?


Сообщение отредактировал Огурцов - Dec 3 2016, 13:32
Go to the top of the page
 
+Quote Post
AVR
сообщение Dec 3 2016, 13:44
Сообщение #17


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Огурцов @ Dec 3 2016, 16:40) *
так делать стоит, ибо бутлодырь тоже надо как-то заливать
Человек пишет что они будут на одной плате, и его волнует как он их одним махом обновлять будет. Один раз ведь поработать можно, а потом обновлять уже более цивильно sm.gif

А почему кстати SWD? Не JTAG ли предназначен для таких целей?


--------------------
Go to the top of the page
 
+Quote Post
scifi
сообщение Dec 3 2016, 13:53
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Заводской загрузчик забыли рассмотреть?
У меня есть система, в которой 1 ведущий (в который прошивается свой загрузчик) и несколько ведомых, которые прошиваются и запускаются заводским загрузчиком.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 3 2016, 14:06
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Можно сделать так: SWD завести на один из процессоров, две его ноги завести на SWD следующего, две его ноги - на SWD следующего и т.д. В первый заливаем прошивку, запускаем, она копирует себя в следующий процессор, тот, запустившись, копирует свою в следующий и т.д. Да, придется написать SWD-ведущего и это займет много времени. А можно по совету scifi использовать заводской загрузчик, правда придется кроме TX-RX еще BOOT0 и RESET кидать по цепочке.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_pv
сообщение Dec 3 2016, 15:42
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(AVR @ Dec 3 2016, 19:01) *
Я бы делал бутлоадер + максимально автоматизировал этот процесс.
Один раз ведь поработать можно, а потом обновлять уже более цивильно sm.gif

вопрос именно в том чтобы и один раз этого не делать, а прошить как-нибудь все разом.

если взять кучу, например, i2c или spi еепромов соединённых параллельно, с одинаковым адресом, и очень неспешно, чтобы гарантированно всё успело записаться, прошить их, забив на опрос статуса, то все прошьются как один.

тем более что МК дополнительно соединены в цепочку по SPI так что если кто не прошьётся - можно будет потом выяснить дополнительно.

если так смущает слово "запараллелить" про SWDIO, пусть там будет еще по килоОму перед каждым МК, чтобы не получилось перетягивания линии в разные стороны при переключении.

Цитата(AVR @ Dec 3 2016, 19:01) *
А почему кстати SWD? Не JTAG ли предназначен для таких целей?

потому что у самых мелких stm32f0 или stm8 нормального JTAGa нет

Цитата(AVR @ Dec 3 2016, 19:01) *
Заводской загрузчик забыли рассмотреть?

из-за асинхронности, уарт параллелить не хочется, иначе стандартными средствами прошить может не получиться, так как программатор в ответ должен что-то вменяемое всё-таки прочитать.

а вариант от Сергея протащить ещё цепочкой от одного МК к другому SWD или UART не нравится тем что придётся в МК изображать SWD хост или мастера для встроенного бутлоадера. ну и лишние 4, а то и 6 ног под это.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 3 2016, 16:05
Сообщение #21


Гуру
******

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



Цитата(Сергей Борщ @ Dec 3 2016, 14:06) *
Да, придется написать SWD-ведущего и это займет много времени

и почему тогда это не сделать на хосте ?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Dec 3 2016, 20:44
Сообщение #22


Знающий
****

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



Цитата(Сергей Борщ @ Dec 3 2016, 16:06) *
Можно сделать так: SWD завести на один из процессоров, две его ноги завести на SWD следующего, две его ноги - на SWD следующего и т.д.

Есть еще идея с EEPROM и загрузчиком. Она не исключает первого нудного программирования каждого процессора изначальным загрузчиком, но должна упростить последующие актуализации.
Итак, все процы своим I2C интерфейсом могут читать одну EEPROM, и этот I2C еще и выведен на разъемчик. Заливаем обновление снаружи в EEPROM, а процы уже из нее и самопрошиваются.
Go to the top of the page
 
+Quote Post
skripach
сообщение Dec 3 2016, 20:59
Сообщение #23


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата(scifi @ Dec 3 2016, 16:53) *
Заводской загрузчик забыли рассмотреть?
У меня есть система, в которой 1 ведущий (в который прошивается свой загрузчик) и несколько ведомых, которые прошиваются и запускаются заводским загрузчиком.

+1


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
AVR
сообщение Dec 4 2016, 16:11
Сообщение #24


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(skripach @ Dec 3 2016, 23:59) *
+1
Как-то это прошло мимо меня, где почитать про возможности заводского загрузчика в stm32? Для меня это шок что он там есть (слышал лишь про загрузчики в более крупных камнях).


--------------------
Go to the top of the page
 
+Quote Post
scifi
сообщение Dec 4 2016, 16:16
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(AVR @ Dec 4 2016, 19:11) *
где почитать про возможности заводского загрузчика в stm32?

Как это где? В гугле, конечно.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 5 2016, 15:10
Сообщение #26


Гуру
******

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



а проверьте лучше кто-нибудь какой-то другой, не st-link, программатор на паре запараллеленных swd в мк типа stm32f0 ?
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Dec 5 2016, 15:39
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(AVR @ Dec 4 2016, 23:11) *
Как-то это прошло мимо меня, где почитать про возможности заводского загрузчика в stm32? Для меня это шок что он там есть

AN3156 USB DFU protocol used in the STM32T bootloader
и далее
AN3154 CAN protocol used in the STM32T bootloader
AN3155 USART protocol used in the STM32 bootloader
Go to the top of the page
 
+Quote Post
_pv
сообщение Dec 5 2016, 17:39
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(KnightIgor @ Dec 4 2016, 02:44) *
Итак, все процы своим I2C интерфейсом могут читать одну EEPROM, и этот I2C еще и выведен на разъемчик. Заливаем обновление снаружи в EEPROM, а процы уже из нее и самопрошиваются.

I2C боюсь занят, можно конечно и программный сделать, но опять же тратятся ноги (можно и 1wire программный сделать),
и все МК и так по spi соединены, так что с обновлением проблемы вобщем-то и нет.
есть проблема с первоначальным прошиванием этих "сдвиговых регистров"
и если есть возможность прошить их все разом параллельно в первый раз, то со своим бутлоадером можно не париться, а просто прошивать их так всегда.
от МК нужна фунциональность 74HC595 + 74HC165, плюс возможно моста SPI->i2c, так что обновлять там особо-то и нечего.

Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 23 2016, 05:54
Сообщение #29


Гуру
******

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



частично написал загрузчик через swd - уже могу сказать, что мульти-дроп для сабжа бесполезен, ибо в протоколе swd не реализовано перечисление девайсов на шине
т.е. можно программировать только камни, id которых уже знаешь
а брутфорсом искать id нелогично и очень долго

Сообщение отредактировал Огурцов - Dec 23 2016, 05:55
Go to the top of the page
 
+Quote Post
ataradov
сообщение Dec 23 2016, 06:08
Сообщение #30


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Огурцов @ Dec 22 2016, 23:54) *
т.е. можно программировать только камни, id которых уже знаешь

Прочитал про этот multi-drop. Не совсем ясно откуда этот target ID берется в первую очередь (4-х битная часть).

QUOTE (Огурцов @ Dec 22 2016, 23:54) *
а брутфорсом искать id нелогично и очень долго
Их всего 16 шт получается, так что не долго. Но опять-же как их конфигурировать изначально - не ясно.

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 Текстовая версия Сейчас: 18th July 2025 - 09:03
Рейтинг@Mail.ru


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