Технический форум по робототехнике.
JeikiS » 01 авг 2013, 14:52
Доброго времени суток, уважаемые форумчане.
Помогите решить вопрос синхронизации работы двух МК.
на МК-хах крутится софтварный шим на 15 каналов, причем скорость выполнения основной программы меняется с переменника на ведущей плате. Расстояние между МК примерно 10-15 метров.
Опять же есть необходимость, чтоб при отключенном ведущем МК ведомый работал самостоятельно.
Самое лучшее что я придумал это отсылать синхроимпульс с ведущего каждую итерацию, а ведомый тупо будет ждать этот импульс, решается вопрос со скоростью, но велечины могут не совпасть...

либо выдавать синхроимпульс в начале цикла, тогда скорость будет не совпадать... два порта задействовать не хочется. копаю в сторону 1-вайр, но мне кажется при таких ресурсозатратах как софтверный шим на 15 каналов, 1-вайр тупо не будет успевать.
elmot » 01 авг 2013, 22:06
Вообще-то лучше бы по UART. Тем более, чо расстояние уже не сантиметровое, просто сигнал с ноги МК будет сильно искажен. UART - аппаратный, ему пофигу на загрузку проца, простецкими микрухами можно пересобачить в RS-422, вопрос с искажениями снимется сразу.
JeikiS » 02 авг 2013, 01:10
На уартовых ногах уже оборудование оконечное висит... платы уже разведены и изготовлены...
elmot » 02 авг 2013, 01:29
Что там передать-то надо? Просто один параметр длительности чего-то?
=DeaD= » 02 авг 2013, 01:50
Не очень ясно в чем должна состоять синхронизация? В передаче данных между МК? В совпадении фронта импульсов? В совпадении длины импульсов? С какой точностью?
Angel71 » 02 авг 2013, 01:51
JeikiS, дико извиняюсь, что не в тему. а зачем софтовый шим, да ещё и двумя микроконтроллерами? в смысле у вас какая-то эдакая задачка с хитрым шимом?
+1 что про синхронизацию ничего непонятно. подетальней бы описали задачу. к примеру подойдёт ли такой вариант или нет совершенно непонятно: переодически синхронизировать чем-то подобным синхронизации времени, только не время изменять, а вычислить какому чипу сколько тактов нужно пропустить, чтоб они потом синхронно работали (одно из условий, что бы выполнялся одинаковый код).
JeikiS » 02 авг 2013, 16:50
шимы нужны для управления нагрузками... МК выполняют абсолютно идентичную последовательность действий, смысл в том, что это два независимых устройства, которые при сопряжении должны работать синхронно, а при расключении каждый должен функционировать автономно. скорость выполнения последовательности действий меняется при помощи переменного сопротивления на адц и необходимо при изменении скорости на одном устройстве, чтоб скорость менялась и на втором(при наличии соединения, естественно), при этом можно обозначить ведущее и ведомое устройство. постарался максимально понятно изложить суть проблемы. при всем этом все аппаратные коммуникационные порты уже заняты нагрузками...
Victorovych » 02 авг 2013, 18:47
JeikiS писал(а):... при всем этом все аппаратные коммуникационные порты уже заняты нагрузками...
Скальпель в руки и резать дорожки
JeikiS » 02 авг 2013, 19:11
неужели такую простую задачу нельзя решить програмно одним пином?
тоесть, вопрос именно в алгоритме.
elmot » 02 авг 2013, 19:13
задача описана очень туманно
Angel71 » 02 авг 2013, 21:35
JeikiS писал(а):неужели такую простую задачу нельзя решить програмно одним пином?
да ктож его знает, можно или нельзя. с тем как сейчас описана задача, можно долго и нудно угадывать.
legion » 02 авг 2013, 23:47
Мееедленный софтовый уарт. Можно использовать уже существующие временные циклы софтШИМа в качестве baudrate, тогда ресурсов понадобится минимум. Ведомый по моменту начала передачи может синхронизировать "фазу" выполняемых действий, а по принятому значению - все остальное, что нужно.
JeikiS » 05 авг 2013, 16:54
legion писал(а):Мееедленный софтовый уарт. Можно использовать уже существующие временные циклы софтШИМа в качестве baudrate, тогда ресурсов понадобится минимум. Ведомый по моменту начала передачи может синхронизировать "фазу" выполняемых действий, а по принятому значению - все остальное, что нужно.
вот что-то подобное и необходимо реализовать... спасибо за наставление на путь... сегодня поколдую...