|
Авто перепрограммирование флешей в устройствах, как бы сделать |
|
|
|
 |
Ответов
|
Nov 6 2012, 22:36
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(zombi @ Nov 7 2012, 00:09)  Есть N изделий с иксмегами и мс.флеш на борту. Флэшки 1-2 мегабитники. Надо организовать автоматическиое перепрограммирование флешей (дублирование оригинала на копию/и) Нужно что бы чел. выбрал одно изделие в качестве оригинала (планирую DIPswich) а остальные N шт. в качестве подчинённых, нажал кнопку и содержимое флэшки оригинала скопировалось на все подчинёные. Слишком мало конкретики: какие флешки, какой у них интерфейс, какая серия? Цитата(zombi @ Nov 7 2012, 00:09)  Как бы организовать обмен ??? SPI, TWI, COM ??? Флешки с COM-портом? Как называются?
|
|
|
|
|
Nov 7 2012, 12:39
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(Сергей Борщ @ Nov 7 2012, 11:49)  Может достаточно просто кнопки на каждом устройстве? На каком нажал - тот и мастер. Мастер начинает обмен, остальные автоматом становятся слейвами. Это не принципиально. Цитата(Сергей Борщ @ Nov 7 2012, 11:49)  Я бы делал на UARTe, как самом простом из перечисленных трех. То же склоняюсь к такому мнению. Цитата(Сергей Борщ @ Nov 7 2012, 16:19)  В случае же UARTа можно обойтись одной линией с подтяжкой, которую все будут слушать и передавать открытым коллектором. Ну да, линий хочется поменьше. С комом вроде бы всё красиво, но получается что все RX и TX будут соединены. Для слейвов всё ок, а вот у мастера нужно наоборот. Думаю использовать в каждом изделии по два компорта у которых RX первого соединён с TX второго а TX перв. с RX второго и в завмсимости от мастер/слейв активизировать нужный ком. Но блин жалко два компорта под это дело занимать.
|
|
|
|
|
Nov 8 2012, 07:25
|

Местный
  
Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291

|
Для такаго варианта самое оно - это использовать драйвер CAN как приемо-передатчик, причем внешний и только для такого программирования, а остальное, да, кнопочка на мастере и вперед... Передачу данных сделать аля широковещательной для одновременного программирования, потом контроллировать только CRC от слэйвов всей области либо кусками. Либо вообще тупо  , соединить ВСЕ RXD и TXD вместе на всех устройствах и между собой в подобие однопроводной шины и настраивать TXD на выход только в моменты ответа конкретного устройства... Ничего внешнего вообще не понадобится, как и предлагалось выше. И подтяжку просто включить на каждом RXD.
--------------------
|
|
|
|
|
Nov 8 2012, 10:28
|

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

|
QUOTE (YAM @ Nov 8 2012, 09:25)  Передачу данных сделать аля широковещательной для одновременного программирования, потом контроллировать только CRC от слэйвов всей области либо кусками. Вот тоже хотел вчера расписать этот вариант. А ОК на выходе предлагал, чтобы после передачи все слейвы могли ответить одновременно. Ответ 0xFF - удалось записать блок, ответ 0x00 - не удалось. И пока мастер получает ответ отличный от 0xFF - он повторяет блок. Получится, что все слейвы получают блок одновременно и пишут его параллельно, таким образом сокращается общее время и обмена и записи. Естественно, посылка блока должна содержать адрес блока и CRC. Слейвы, успешно записавшие блок с последним адресом игнорируют следующие посылки пока не пойдет посылка с новым адресом блока.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Nov 8 2012, 11:39
|

Местный
  
Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291

|
Тут асинхронная передача Цитата(Сергей Борщ @ Nov 8 2012, 13:28)  .... А ОК на выходе предлагал, чтобы после передачи все слейвы могли ответить одновременно. Ответ 0xFF - удалось записать блок, ответ 0x00 - не удалось. И пока мастер получает ответ отличный от 0xFF - он повторяет блок.... одновременно не получится. Я еще обычно перед записью проверяю, а надо ли вообще что-то записывать, так уменьшается износ флэша...
--------------------
|
|
|
|
Сообщений в этой теме
zombi Авто перепрограммирование флешей в устройствах Nov 6 2012, 22:09   ILYAUL Цитата(Сергей Борщ @ Nov 7 2012, 11:49) Я... Nov 7 2012, 11:10    Сергей Борщ QUOTE (ILYAUL @ Nov 7 2012, 13:10) А чем ... Nov 7 2012, 12:19    iosifk Цитата(zombi @ Nov 7 2012, 16:39) С комом... Nov 7 2012, 12:54     zombi Цитата(iosifk @ Nov 7 2012, 15:54) Интерф... Nov 7 2012, 16:08    maksimp Цитата(zombi @ Nov 7 2012, 16:39) Ну да, ... Nov 7 2012, 18:08     zombi Цитата(maksimp @ Nov 7 2012, 22:08) Испол... Nov 7 2012, 18:29        Сергей Борщ QUOTE (YAM @ Nov 8 2012, 13:39) Тут асинх... Nov 8 2012, 11:56      zombi Цитата(YAM @ Nov 8 2012, 10:25) Либо вооб... Nov 8 2012, 17:12       maksimp Цитата(zombi @ Nov 8 2012, 20:12) Идея хо... Nov 8 2012, 17:48        zombi Цитата(maksimp @ Nov 8 2012, 20:48) Соеди... Nov 8 2012, 18:08    YAM Цитата(zombi @ Nov 8 2012, 21:08) Вобщем ... Nov 9 2012, 06:26     zombi Цитата(YAM @ Nov 9 2012, 09:26) Да, да SP... Nov 9 2012, 08:37 GDI Про тип флешей нам ничего не известно. Но гигабитн... Nov 8 2012, 08:31 ILYAUL Цитата...кроме трех линий собственно SPI понадобят... Nov 8 2012, 10:47 Сергей Борщ QUOTE (ILYAUL @ Nov 8 2012, 12:47) Слейвы... Nov 8 2012, 11:17 GDI А у этих N-девайсов нет интерфейса, которым они на... Nov 9 2012, 05:55 ILYAUL Девайсы получают команду на перепрограммирование н... Nov 9 2012, 19:20 zombi Цитата(ILYAUL @ Nov 9 2012, 23:20) И могу... Nov 10 2012, 07:22 ILYAUL Да я не против SPI. Есть ведь USART вот и прикинул... Nov 10 2012, 15:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|