Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Два МК как один (Как их объединить?)
Два МК как один
retas Дата: Чт, 30.07.2009, 23:42  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

В моей разработке нужен МК с кучей портов. Подумываю ставить два PIC16F884, но не соображу как с 1-ого МК передать данные 2-ому ибо часть накапливаемой информации 1-вым МК должна быть известна и второму. Никаких особых требований к скорости связи (или ещё к чему либо) между МК нет.
Спасибо.
ЯНДЕКС Дата: 30.07.2009
evgenb Дата: Пт, 31.07.2009, 00:44  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 91
Репутация: 3   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

Поставьте мультиплексор, и перебирайте все каналы.
retas Дата: Пт, 31.07.2009, 07:40  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

А есть ли 20-ти канальный мультиплексор? К тому же, если уж суждено ставить два корпуса, то, ПМ, пускай это будет два МК - мало ли чего.
terrarus Дата: Пт, 31.07.2009, 10:34  |                                                                                                                Сообщение # 4
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

А если понадобится 60 каналов, тогда что, ставить 3 МК?
evgenb, правильно говорит - нужен мультиплексор. И не обязательно расширитель портов. Можно и на логике и на дискретных элементах сделать.
Например поставить на каждый вход оптопару 3 группы по 20 штук и подавать сигнал разрешения чтения на каждую группу от отдельного разряда например порта E. Оптопары хорошая зашита от наведенных напряжений, они не заменимы для длинных линий (пример здесь http://terrarus.ucoz.ru/contr_na_pic16/index.html ).
Этими управляющими сигналами можно каждую группу коммутировать отдельным ключем на транзисторе.
Например Е0 - сигнал управления 1-ой группой, Е1 - сигнал управления 2-ой группой, Е2 - сигнал управления 3-ой группой.
В этом случае нужны всего три транзистора типа КТ315, три подтягивающих резистор по 1-4,7 кОм, и все...

Рисунок прилагается

Прикрепления: 5644219.jpg (42.2 Kb)


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Пт, 31.07.2009, 16:52
retas Дата: Вс, 02.08.2009, 10:32  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Большое спасибо за направление и пример. Хоть я уже представляю свою схему, хочу ещё раз вас потревожить углубив в тонкости задачи а там, гляди, вы и опять меня чем то ошарашите - почувствовать себя незнайкой лишьний раз не приятно, но зато очень приятно посмотреть красивые примеры.
Так вот.
Надо следить за 20-тью шлейфами (линиями) на конце которых датчики (до 5 штук на одном шлейфе) на состояния норма, срабатывание, обрыв, короткое. Датчики должны постоянно получать питание 12В. Датчит - реле с самоблокировкой и индикатором срабатывания.
На пульте - 20 св. диодов показывающих состояние шлейфов. Состояние шлейфов можно предугадать и по разному звуку зумера.
На некотором расстоянии от пульта два 7сегм. индикатора.
Кнопка ресета - снятие звука либо полный отбой со снятием на 1сек питание всех датчиков.

Хотя предложенное вами и позволяет решить мой вопрос, считаете ли вы, что глупо брать два МК - один на слежение за шлейфами, другой для индикаций если это упростит программу МК.
Мною был сделан подобный "следитель" на 10 шл. и я предпологал что сделать на 20 быдет легко, но вот всё меняется.
Спасибо.

terrarus Дата: Вс, 02.08.2009, 13:22  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

retas, приношу мои извинения за то, что неосознанно нанес Вам незаслуженную обиду...

Скорее всего не прав я, так как в Вашем вопросе "В моей разработке нужен МК с кучей портов.
Подумываю ставить два PIC16F884, но не соображу как с 1-ого МК передать данные 2-ому ибо часть
накапливаемой информации 1-вым МК должна быть известна и второму."
из-за недостаточности исходных данных не смог правильно определить назначение разрабатываемого устройства и предложил частное решение исходя из своих додуманных представлений о Вашей разработке.

Использование 2 и более микроконтроллеров очень часто бывает оправданным и даже предпочтительным,
невзирая на увеличение стоимости разработки. Это тем более оправдано когда ставится задача получения
высокой надежности работы устройства.

Как я теперь понимаю, Вы делаете что-то похожее на охранную систему: 20 отдельных групп объектов по пять линий слежения в каждой группе за состоянием 5 охраняемых точек.

Если группы объектов находятся далеко друг от друга, например более 100-150 м и до 2-3 км, то я бы использовал по одному микроконтроллеру на каждую отдельную группу объектов. Причем построил бы схему за слежением каждой точки группы объекта следующим образом:
1. сделал бы резервное питание микроконтроллера от аккумуляторов или ионистора, а для надежности лучше применить и то и другое в паре;
2. использовал бы аналоговые входа микроконтроллера для слежением за величиной нагрузочного сопротивления в каждой охраняемой линии;
3. Остальные цифровые входы можно использовать как для подключения контактных датчиков? так и для измерения командой POT значения сопротивления, термистора, фотоэлемента включенных в эти линии.
4. Выход данных от микроконтроллера организовал бы по интерфейсу RS-485 или даже через радиоканал
(покупал как-то цифровые приемники и цифровые передатчики фирмы TELEKONTROLLI на 433,92 МГц
прекрасная и дешевая пара получается). Хотя можно выход микроконтроллера согласовать с длинной линией и оптопарой.
5. Приемный пульт сделал бы с индикацией на ЖКИ, у естественно и со звуковой сигнализацией тоже.
Возможно, меня опять понесло "своей дорогой", ведь я не представляю до сих пор правильного "технического задания".

Если Вы более подробно опишите задачи вашей разработки возможно я что-нибудь предложу более правильное.


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Вс, 02.08.2009, 13:36
evgenb Дата: Вс, 02.08.2009, 13:44  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 91
Репутация: 3   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

retas

Посмотрите в приложении примеры. Мультиплексор К1561КП2 коммутирует аналоговые сигналы.
При использовании АЦП можно узнать какая кнопка сработала, определить закорочен ли шлейф или произошел его обрыв. Проверьте на схеме №1 как ведут себя вольтметры. Поэкспериментируйте с резисторами.
Дальше по мере фантазии.

http://slil.ru/27876256

Вторая схема для примера, в МК нет прошивки и ПРОТЕУС не включит эмуляцию.

retas Дата: Вс, 02.08.2009, 16:43  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Уважаемый, evgenb!!!
Большое спасибо. У меня v7.2SP2 - не вижу, но на казусе было где то сказано как можно увидеть. Выясню и обязательно посмотрю!

Уважаемый, terrarus!!!
Какие извинения, какие обиды - с моей стороны только благодарность и конечно надежда на дальнейшую помощь.
Пульт в заведении стоит давно, показывает только срабатывания, 80% контингента со сдигами - им бы что либо сломать а когда зовут чинить, голова пухнет сколько там всего наделано и никто ничего не делал - так было якобы всегда. Я и предложил заменить пульт на способный следить за целосностью линий, чтоб виновника брать тёпленким.
Как я говорил, на одном этаже я уже сделал, но на 10 шл. (628А, комутатор 4017 подкидывающий под ряд все шл. на компаратор, индикация каждова шл. на ЛЕДах и звуком, без 7 сегм. индик.) и казалось взяв МК по жирнее бистренко сделаю на 20 шл. и дополнительно с двумя 7 сегм.индик.
Мне по душе разделить (по вашему совету) 20 лин. на групы (а брал бы 4 групы по 5 лин. и имел все их с АЦП) но побаиваюсь усложнений программы.
Я догадываюсь что два МК можно связать по RS, но как написать чтоб, скажем, портБ второво МК стал равен портуБ первого МК?
Нарисовал упрощенную схему своих желаний на Протеусе, но не вижу как её подцепить к письму (часть экрана накрывает реклама от Google-быть может там нужное?). Подскажете?
Спасибо.

terrarus Дата: Вс, 02.08.2009, 18:11  |                                                                                                                Сообщение # 9
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

retas, Вы мне пожалуйста поподробней напишите что за объект и что нужно от устройства. Хотелось бы увидеть Вашу схему в Протеусе, но не могу сообразить что у Вас за проблема с рекламой от Гугла? Пришлите мне на terrarus@mail.ru все, что сможете из ваших материалов, и особенно более подробное описание, что должно делать устройство. Думаю. что смогу Вам помочь.

Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
DAlexV Дата: Вс, 02.08.2009, 21:10  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (terrarus)
retas, Вы мне пожалуйста поподробней напишите что за объект и что нужно от устройства. Хотелось бы увидеть Вашу схему в Протеусе

Присоединяюсь. По RS485 есть уже рабочие прожекты PIC18->RS485->USB->VisualBasic.
Что то вроде умного дома на самой ранней стадии развития.

Проджект в студию !!!!!!! roll


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
MasterPic Дата: Вс, 02.08.2009, 21:14  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 186
Репутация: 2   ±
Замечания:   ±
На сайте с 22.11.2008

Статус: Offline

Извиняюсь, что не в тему. Уважаемый DAlexV, вы не поделитесь секретом, как на VB писать программу для приема и передачи информации по USB каналу, а также как передавать и принимать с МК. Нигде не могу найти. Спасибо.
Сообщение отредактировал MasterPic - Вс, 02.08.2009, 21:14
ЯНДЕКС Дата: 02.08.2009
retas Дата: Вс, 02.08.2009, 21:31  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Тфу ты... Действительно не все слепые видят.
Попытаюсь присоединить (интерн сегодня барохлит).
Напоминаю мне нужно просто-напросто, чтоб второй МК мог следить что творится с каким то портом или регистром у первого МК, т.е.
как то сделать "IF регА(первого МК)=А then регA(второго МК)=А".
Спасибо.
Прикрепления: 2Kryz0_1.dsn (106.8 Kb)
DAlexV Дата: Пн, 03.08.2009, 09:10  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Два примера работы с rs845. Для обмена требутся 3 ноги PICа RX, TX, TX_On(Включение передачи) работаем как с обычным Com портом.
Формат передачи данных какой душе вздумается, например:
$01 $05 $55 $0D $0A где: $01 адрес PICа, $05 - код команды(запись в порт В), $55 данные в порт В, $0D $0A - признак конца строки
в ответ при исполнении конманды PIC должен ответить: $01 $05 $55 $0D $0A
То же самое и с чтением:
$01 $01 $00 $0D $0A чтение канала АЦП, где: где: $01 адрес PICа, $01 $00 - код команды(чтение канала 0), $0D $0A - признак конца строки
в ответ при исполнении конманды PIC должен ответить: $01 $00 $АА $0D $0A где: $00 $АА значение канала 0 АЦП
Можно на подчиненных PICах реализовать включени-выключение реле как в схеме у retas, будет компактно и без наворотов. С компа запрещать(разрешать) управление кнопок и т.д. (фантазия безгранична)

При данном протоколе связать можно до 255 устройств(если позволят преобразователи RS485)

С режимом Real Time сложнее, но можно. Скорость 9600. Проверял на витой паре 305м соединенной на хвостах(~1200м) сопротивления на концах 120ом. Тянет

Могу выложить пример, но он на SwordFish Basic.

P/s.

Quote (MasterPic)
не поделитесь секретом, как на VB писать программу для приема и передачи информации по USB каналу, а также как передавать и принимать с МК

В сообшении пропустил конвертор RS485->COM->USB. Считаю что использовать отдельный PIC для тих целей не требуется(зачем изобретать велосипед), схем в нете полно, останавливаться не буду. Проджект над которым работаю коммерческий, добью в ближайшем будущем. Кусками кода поделюсь.
wink
Прикрепления: RS485.dsn (18.8 Kb) · 4880356.dsn (64.8 Kb)


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
terrarus Дата: Пн, 03.08.2009, 09:46  |                                                                                                                Сообщение # 14
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

DAlexV, Очень ясные и четкие примеры!

Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
retas Дата: Пн, 03.08.2009, 23:36  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Вот незадача - не вижу примеров со своей версией Протеуса, и советы казуса не помогает.

Интересную штуку нашёл - управление 7 сегм. индикаторами одним проводом:
http://easyelectronics.ru/upravle....du.html

Сообщение отредактировал retas - Пн, 03.08.2009, 23:45
Форум Picbasic.ru » Программирование МК » PicBasicPro » Два МК как один (Как их объединить?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: