Страница 1 из 1

Связь двух микроконтроллеров

Добавлено: Вт май 26, 2009 15:44:28
Arlleex
Мне надо связать два МК между собой: чтобы работали одновременно, чтобы нажал кнопку "Старт" и один мк делает всою прогрмму, а другой - другую. но вот проблема, на одном МК свободным остался только один канал в порту, а в другом МК их много. может просто поставить кнопку старт общую для обоих МК?
и как только начинается программа, я нажимаю эту кнопку, сигнал проверяется программой на нажках МикроконтроллерОВ, если там
if()
{основная программа}

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

Добавлено: Вт май 26, 2009 18:10:16
demson
я бы забабахал с одного мк выход на вход другого. И как раз 1 цикл будет разница - при скорости в 1Мгц совершенно одновременно

Добавлено: Вт май 26, 2009 18:27:26
Arlleex
ну а как я показал, можно?
кнопку на резистор, с резистора на + питания, а с кнопки сигнал разделяется на вход одного и другого мк.

вот еще вопрос. куда нодглючать термометр - к ADC? ну всмысле в любому каналу из этого порта?
и еще вопрос: кнопки куда подключать лучше?

Добавлено: Вт май 26, 2009 22:12:04
Pooher
ну а как я показал, можно?
кнопку на резистор, с резистора на + питания, а с кнопки сигнал разделяется на вход одного и другого мк.
Да, так можно. Но я сделал бы как говорит товарищ demson, если конечно ко времени не критично, хотя, с кнопкой разделённой на 2 МК тоже синхронности можно не получить, для этого схему подавления дребезга внешнюю прикошачить придётся.
куда нодглючать термометр - к ADC?
Какой термометр?
в любому каналу из этого порта?
Каково порта?
кнопки куда подключать лучше?
Можно использовать внешние прерывания, можно к любому пину IO.

Добавлено: Вт май 26, 2009 22:18:46
Arlleex
термометры DB... какие то, уже не помню) ну их к МК подключают. на выходе этого термометра сигнал цифровой или аналоговый?

Добавлено: Вт май 26, 2009 22:21:39
Pooher
термометры DB
Может DS?

Добавлено: Вт май 26, 2009 22:34:55
Arlleex
угу)

и вот еще. антидребезг я поставлю на оба МК, так что нажал кнопку старт, и поехала программа...
а может сделать вот как?

на первом МК на ножке сделать лог.1, на на втором ждем эту единицу, и все.
программа:

PORTD.5=1; //
, это начало программы на первом МК, а на втором прописываем МК,

if(PINB.3)
{};
при этом я учел, что вывод 6 порта D первого МК соединен с выводом 4 порта B на втором МК.

как идея? или так тоже нельзя?

Добавлено: Вт май 26, 2009 23:03:40
WildCat
датчики DS цифровые, считываются по 1-wire.
Сделать как ты говоришь можно, но я б задумался о других задачах микроконтроллеров. Если одновременное включение - единственное что от них нужно, то можно и просто кнопку. Но меня всегда тянет сделать какой нибудь более "интеллектуальный" интерфейс, типа i2c. При таких скоростях в мегагерцы, не будет заметна разница даже в сотни шагов (хотя, опять же, смотря какая задача). Зато можно обмениваться любыми данными между МК

Добавлено: Вт май 26, 2009 23:18:41
Pooher
на первом МК на ножке сделать лог.1, на на втором ждем эту единицу, и все.
А разве не об этом писал demson
я бы забабахал с одного мк выход на вход другого
По поводу DS. У всех DS-ок выход цифровой.
Если датчик типа 1820, 18s20, 18b20 то это интерфейс 1-Wire.
Есть и другие, не помню названий, работающие по I2C например, может и ещё какие то есть, не углублялся. http://www.maxim-ic.com/

Библиотек и тем на форуме предостаточно.
http://radiokot.ru/forum/viewtopic.php?t=14968
http://radiokot.ru/forum/viewtopic.php?t=9863
____________________________
Упс, уже ответили, и когда всё успевают :))

Добавлено: Ср май 27, 2009 14:11:37
Arlleex
а как подключить калвиатуру (одну) к 2 МК одновременно?м клавиатуры пустить 2 одинаковых шлейфа, один на порт одноо МК, дргой шлейф на порт другого МК... так чтоли?
или есть более лечшее решение?

Добавлено: Ср май 27, 2009 14:27:30
ploop
А если немного пересмотреть задачу...
Первый МК отвечает за связь с внешним миром (кнопки/клавиатуры/датчики и т.п.), и передаёт другому обработанные данные по какому-нибудь стандартному протоколу, например IIC?

Добавлено: Ср май 27, 2009 14:30:48
Arlleex
ну у меня все забито, уже, только под клавиатуру оставил по 1 порту у каждого МК.
что такое AVCC. куда его подключать.

Добавлено: Ср май 27, 2009 16:16:34
ibiza11
Можешь проектик выложить? Схему хотя бы. И то что хочешь сделать из этого? Чувствую там куча ошибок...по крайней мере думаю все это можно организовать проще.
Здесь обсудят схему, укажут на минусы, подскажут как сделать экономичнее и разумнее. как вам предложение, Stalker46?
AVCC - вывод питания аналоговой части микроконтроллера. но подключать к + питания обязательно, даже если аналоговая часть не используется.

Добавлено: Ср май 27, 2009 16:42:34
Arlleex
это отладочная плата ATMega16.
вот, смотрите.

Добавлено: Ср май 27, 2009 17:53:28
ibiza11
) я думал будет интереснее))
буду постепенно писать по пунктам:
1) вы подключаете ЖКИ по 8 битной шине, для чего? если только для интереса, ибо по 4-х битной шине ЖКИ занимает всего один порт, а программная реализация такого подключения не так уж сложна.
2) зачем на оба микроконтроллера по ЖКИ? если отладочная плата, то одного вполне достаточно, ИМХО.
3) если отладочная - поставьте драйвер RS232 (например max232a). полезно для связи с компом - опять таки для отладки и визуализации.
4) в упор не понимаю зачем вам на отладочной плате второй контроллер... наверное есть разумное объяснение, расскажите плиз.

вроде пока все) будет еще что то - напишу)

Добавлено: Ср май 27, 2009 18:05:54
Arlleex
на первом контроллере знакосинтезирующий ЖКИ, на втором графический. на первом и втором кнопки. на первом сегментный индикатор, на втором светодиоды.
второй МК нужен для сложных проэктов, когда все, (практически все) модули будут задействованы...

Добавлено: Ср май 27, 2009 18:11:41
ibiza11
думаю до сложных не дойдет) для того она и макетка)))

Добавлено: Ср май 27, 2009 18:19:42
Arlleex
ну а кто его знает, как все сложится...
а так, что, все хорошо?