В устройстве планируется подключить две ардуины друг к другу так, чтобы они могли перезагружать друг друга, т.к. одна система запланирована как основная, другая - как резервная. На обеих ардуинах организована подтяжка резистором 10кОм к +5V. С каждой платы какой-нибудь цифровой пин подключен к ресету другой ардуины. Но возникает проблема: одна ардуина послала сигнал на другую, та перезагрузилась, в процессе перезагрузки на пинах возникает скачок напряжения, который перезагружает первую ардуину, и ардуины начинают перезагр. Как я могу реализовать подобную рабочую схему?
Подтяжка чего? Какой скачок напряжения? Вы его замеряли? Что за скачок? Думаю, что это Ваша фантазия, а причина в другом. Рисуйте схему, как и что собрано и давайте скетч перезагрузки. P.S. Нафига Вам это надо, я даже не спрашиваю, но думаю, что это костыль, чтобы прикрыть другую ошибку.
Да, обычно перезагружать самих себя свидетельствует об ошибке в алгоритме. Но если очень хочется, то посмотрите на супервизоры питания с управляющим входом. Он вешается на ресет обоих микрух, их управляющие ресетом пины через ИЛИ на вход супервизора.
Да, можно и так, как у ТС, почему нет. Я даже догадываюсь, что там за мелкая ошибка, но пусть код покажет, чтобы наверняка. Я то я буду тут бить пальцы своими догадками, а окажется. что это реинкарнация крауса - оно мне надо?
Возможно, возникает не "скачок напряжения", а короткий импульс низкого уровня. Так происходит, если после сброса при настройке порта на вывод сначала выполняется запись в DDRx, а затем в PORTx. Нужно наоборот - сначала в PORTx, затем в DDRx. тогда не будет неконтролируемого импульса низкого уровня на выходе.
Ресет подтяни к Vcc через резистор 10к и на нулевую шину замкни через конденсатор 10...100nF. Ежели в процессе перезагрузки МК сперва загружается загрузчик или ещё происходит какое-то колдовство от бабки Ардуиньки, то выбрасывай ардуньку.
Такое явление имеет место быть. Во время старта загрузчика ардуинка произвольно дёргает ногами. Возможно если заливать скетча через программатор и первой крммандой переводить нужную ножку в HIGH проблема уйдёт?
Он уже подтянут. Не надо ничего. Мужики, давайте кода дождёмся. У меня вот такая штука отлично работает. Чтобы понять проблему ТС нужны схема и код.
А вам зачем? У меня МК ESP перезагружает, и когда МК перезагружается сам то ничего на ноге не скачет. В Ардуине, вроде, только PORTB5 дергается при загрузчике.
Мне для игры. Суть игры примерно как Core Wars - угробить противника. Но игра получилась неинтересная, потому нигде про неё не публикую. А так, там можно было на любой пин противника (или союзника) любые сигналы подавать.
Я сканировал ЛА на 100МГц ноги SPI - иглы скачут в полный рост. Хотя и допускаю, что это наводки из патрахов)) У MSP430FR сделано вообще шикарно - выходные триггеры просто блокируются самим ядром в самом начале загрузки. Надо будет тоже как-то снять осциллограмму загрузки...
Итак, проблема решилась следующим образом: послушав совет @microsystems я поменял команды pinMode и digitalWrite местами. Проблема решилась!