Обсуждаем контроллеры компании Atmel.
Ответить

Параллельное программирование

Пт авг 18, 2017 11:17:46

Всем доброго здравия!
Есть 2 микроконтроллера Atmega8 (с одинаковыми кварцами) и, к примеру, PORTB1, который у одной микросхемы на земле, а у другой на питании. Прошивка одна на 2 микроконтроллера, в которой определяется где ножка, от чего зависит дальнейшая работа программы. Вопрос в том, возможно ли одновременно запрограммировать 2 микроконтроллера через USBasp (например просто запараллелив все выводы программирования) ?

Re: Параллельное программирование

Пт авг 18, 2017 15:28:52

Параллельное программирование - это маленько не то, о чем вы спрашиваете. Однако звучит оригинально. )))
Если хотите, можете попробовать запараллелить два МК, будете первооткрывателем. Получится, то обязательно об этом сообщите. Кому-нибудь будет интересно.

Re: Параллельное программирование

Пт авг 18, 2017 19:32:49

Мне кажется, одновременно одинаковоыми прошивками прошить 2 микроконтроллера вполне можно. Только надо линию MISO от одного МК не использовать.
Т.е. все управляющие сигналы от программатора подаются на оба (или сколько хотите) микроконтроллера, а отвечает программатору только один. Думаю, в этом случае ничто не помешает прошиться всем.

Re: Параллельное программирование

Пт авг 18, 2017 19:35:06

Я не разбирался в этой теме... Точно там нет такого, что ответы могут быть разными по таймингам? Или ожидание отсыла очередной команды? Вдруг один МК быстрее запишет, а другой будет ждать еще?
Точно эта тема специфичная.

З.ы. Либо прошивать их на самой медленной скорости, которую способен программатор выдать.

Re: Параллельное программирование

Пт авг 18, 2017 19:45:17

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

Re: Параллельное программирование

Сб авг 19, 2017 19:06:39

Лучше, конечно, прошивать каждый контроллер по отдельности, так спокойнее.
Но если уж очень хочется, то можно:
- выхода с MISO объединить на логическом элементе (И, ИЛИ, можно попробовать на диодах)
- также выхода MISO подать на входа элемента исключающее ИЛИ, на выходе получим сигнал ошибки (возможно потребуется поставить на выходе небольшой конденсатор для устранения тычков при не одновременном ответе)
- сигналом ошибки с элемента исключающее ИЛИ блокировать результирующий сигнал MISO, или даже RESET (можно сигнал ошибки пропустить через триггер)

Правда понять какой микроконтроллер дал ошибку вряд ли получиться

Замыкать выхода MISO не нужно, можно сжечь выход

Если же у вас цель установить на плате только один разъём для программирования, то можно программировать по отдельности, а микроконтроллер выбирать перемычкой, например, коммутируя сигнал RESET или CLK

Re: Параллельное программирование

Сб авг 19, 2017 20:54:00

dm37 писал(а):выхода с MISO объединить на логическом элементе (И, ИЛИ, можно попробовать на диодах)
зачем? :shock:
dm37 писал(а):также выхода MISO подать на входа элемента исключающее ИЛИ, на выходе получим сигнал ошибки
зачем?! :shock: :shock:
dm37 писал(а):сигналом ошибки с элемента исключающее ИЛИ блокировать результирующий сигнал MISO, или даже RESET
зачем?! :shock: :shock: :shock:
т.к. интерфейс SPI полностью синхронный интерфейс, все сигналы на нем меняются по фронтам/спадам сигнала CLK. если будет некоторая несинхронность, то в рамках допусков к интерфейсу, т.е. эта разница никоим образом не сможет повлиять ни на что.
для прошивки достаточно подавать в программатор ответ любого из МК, игнорируя остальные, как я выше писал.
верифицировать при этом прошивку можно будет так же только у одного МК.
однако, я в своей практике не сталкивался с необходимостью это делать - всегда все шьётся верно.

Re: Параллельное программирование

Вс авг 20, 2017 18:41:44

to ARV
что значит "зачем"? вы всегда объединяете два выхода, при условии, что они не открытый коллектор? Откройте datasheet и посмотрите как устроен выход микроконтроллера.
Вы пишете "зачем", а потом снова предлагаете работать с одним микроконтроллером. Т.е. верификация одного микроконтроллера полностью отсутствует и вы считаете, что это нормально?

Отвечать не нужно, ваше мнение я услышал
Ответить