Нужна идея...arduino mega 2560 + коммутация 8 источников цифрового сигнала

and-payalnik
Offline
Зарегистрирован: 30.04.2020

Нужна идея...

имеется arduino mega 2560, 8 источников цифрового сигнала f=250кГц, 

нужно  коммутировать 8 входов на 8 выходов в автоматическом режиме.  различными комбинациями. А-ля типо мультиплексора. после мега отчитывается в Serial что переключила по такой-то схеме : "1-2,2-1,3-3,5-4,4-5,6-6,7-7,8-8". Команды буду подавать по COM-порту(или чтения с карты памяти). (на подобии как 3D принтер читает с карты построчно команды и выполняет)

как лучше реализовать выполнение проброса портов?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Без мультиплексоров "не полетит".

and-payalnik
Offline
Зарегистрирован: 30.04.2020

я так и думал...

хорошо, а как реализуется назначение порта через COM-порт (OUTPUT/INTPUT) ?

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

and-payalnik пишет:
... а как реализуется назначение порта через COM-порт (OUTPUT/INTPUT) ?

А зачем? У Вас всё переключение будет реализовано на внешних аппаратных мультиплексорах. Чтобы подключить один вход к любому выходу потребуется 3 двоичных разряда адреса. И так на каждый из входов. Т.е. всего будет 24 разряда, которыми нужно управлять с выходов Ардуино.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Duino A.R. Можно и с I2C управлением взять чипы, тогда нужно будет меньше портов задействовать.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Komandir пишет:
Duino A.R. Можно и с I2C управлением взять чипы, тогда нужно будет меньше портов задействовать.

Да. Тут главное - вся коммутация портов будет осуществляться аппаратно и вне Ардуино. А чтобы грамотно выбрать аппаратное решение, уже ТЗ надо писать.

b707
Offline
Зарегистрирован: 26.05.2017

and-payalnik пишет:

а как реализуется назначение порта через COM-порт (OUTPUT/INTPUT) ?

никак , вам это не нужно.

Ардуина не умеет пробрасывать сигнал с INPUT на OUTPUT

RxMaxx
Offline
Зарегистрирован: 10.04.2020

Я подобный мультиплексор на CD4067 делал, была матрица из 6 микросхем, успешно коммутировал цифровые сигналы TTL уровня до 3МГц (может и на больших частотах работать может, не помню, надо даташит читать). 

P.S. Если всего 8 входов, тогда могут подойти CD4097, там на борту два мультиплексора 8x1, если нужно 8x8, то достаточно всего 4х CD4097, только обратите внимание, что там управление общее на оба канала.

rkit
Offline
Зарегистрирован: 23.11.2016

and-payalnik пишет:

 f=250кГц, 

Через регистры - без проблем. Как работать с пинами на низком уровне полно информации. Правда не похоже, что ты умеешь программировать, так что тут может быть проблемка.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

rkit 8 каналов - успехов !!!

and-payalnik
Offline
Зарегистрирован: 30.04.2020

Всем спасибо

решение выпало на CD4097, как то, что быстрее приедет

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

and-payalnik пишет:

 f=250кГц, 

Через регистры - без проблем. Как работать с пинами на низком уровне полно информации. Правда не похоже, что ты умеешь программировать, так что тут может быть проблемка.

Родное сердце! Даже если входящие синхронны, у нас 4 мкс=64 команды на то,  чтобы прочитать порт, сделать 8 перестановок бит и записать в выходной порт (для простоты пусть входящие и исходящие ложатся целиком на один порт). Не пишу  "нельзя", но ведь еще и UART слушать. Опять же - не пишу "нельзя", но...

rkit
Offline
Зарегистрирован: 23.11.2016

wdrakula]</p> <p>[quote=rkit пишет:

Родное сердце! Даже если входящие синхронны, у нас 4 мкс=64 команды на то,  чтобы прочитать порт, сделать 8 перестановок бит и записать в выходной порт (для простоты пусть входящие и исходящие ложатся целиком на один порт). Не пишу  "нельзя", но ведь еще и UART слушать. Опять же - не пишу "нельзя", но...

Да, нельзя. Я не совсем правильно прочитал задачу.