|
|
  |
Прошить кучу одинаковых контроллеров, насколько плохая идея тупо запараллелить SWD |
|
|
|
Dec 3 2016, 13:40
|
Гуру
     
Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 3 2016, 14:06
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Dec 3 2016, 15:42
|
Гуру
     
Группа: Свой
Сообщений: 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 ног под это.
|
|
|
|
|
Dec 3 2016, 20:44
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(Сергей Борщ @ Dec 3 2016, 16:06)  Можно сделать так: SWD завести на один из процессоров, две его ноги завести на SWD следующего, две его ноги - на SWD следующего и т.д. Есть еще идея с EEPROM и загрузчиком. Она не исключает первого нудного программирования каждого процессора изначальным загрузчиком, но должна упростить последующие актуализации. Итак, все процы своим I2C интерфейсом могут читать одну EEPROM, и этот I2C еще и выведен на разъемчик. Заливаем обновление снаружи в EEPROM, а процы уже из нее и самопрошиваются.
|
|
|
|
|
Dec 5 2016, 17:39
|
Гуру
     
Группа: Свой
Сообщений: 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, так что обновлять там особо-то и нечего.
|
|
|
|
|
Dec 23 2016, 06:08
|

Профессионал
    
Группа: Участник
Сообщений: 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 шт получается, так что не долго. Но опять-же как их конфигурировать изначально - не ясно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|