|
Демультиплексер |
|
|
|
Mar 31 2008, 11:14
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(URANst @ Mar 31 2008, 15:07)  Люди подскажите какую микросхему можно (нужно) испоьзовать для следующих целей: из микроконтроллера данные должны передоваться на одно из четырех устройств по RS 485, перед преобразователем в RS485 нужно делать выбор канала (1 из 4), что для этого можно применить. ИМХО, ничего не нужно. Все решается на уровне протокола обмена, MODBUS например.
|
|
|
|
|
Mar 31 2008, 12:03
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(rx3apf @ Mar 31 2008, 14:21)  405x. Хотя типично у трансиверов RS485 есть входы выборки, так что вполне можно организовать демультиплексирование именно выборками... Прстейший способ - завести входы EN (или CS) всех приёмопередатчиков Rs485 на 4 ноги мк и управлять. В зависимости от полярности на нужный выдавать 0 или 1 (на остальные соответственно 1 или 0). Главное в этом случае - не включить больше одного одновременно. "Железные" мультиплексоры в этом смысле надёжнее.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Mar 31 2008, 12:12
|
Группа: Новичок
Сообщений: 9
Регистрация: 5-04-07
Пользователь №: 26 793

|
Цитата(URANst @ Mar 31 2008, 14:07)  Люди подскажите какую микросхему можно (нужно) испоьзовать для следующих целей: из микроконтроллера данные должны передоваться на одно из четырех устройств по RS 485, перед преобразователем в RS485 нужно делать выбор канала (1 из 4), что для этого можно применить. MrYuran прав. Но если нет возможности контролировать CS/EN каждого драйвера(есть чипы в которых просто четыре дравера в одном корпусе без CS/EN ) То можно и так, вообще без дополнительных элементов(Только с помощью четырёх резисторов):
На который канал нужно вывести сигнал - ставишь на MASKx 'Z' (DDRx = '0', PORTx = '0'). А на остальных '1'
Сообщение отредактировал alkaes - Mar 31 2008, 12:17
|
|
|
|
|
Mar 31 2008, 12:18
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 2-02-06
Пользователь №: 13 912

|
Если я правильно понял что "железные" мультиплексоры это собственно отдельная микруха, то я как раз и хочу использовать такую, только не знаю какую (простите за тафтологию). Представляю так : из контроллера 2 вывода адресных, 2 вывода разрешения чтения - записи, чтение запись адресуется тому устройству , адрес которых установлен в первых двух выводах. Цитата А можно и так, вообще без дополнительных элементов(Только с помощью четырёх резисторов):
На который канал нужно вывести сигнал - ставишь на MASKx 'Z' (DDRx = '0', PORTx = '0'). А на остальных '1' А как быть с приемом ?
|
|
|
|
|
Mar 31 2008, 13:15
|
Группа: Новичок
Сообщений: 9
Регистрация: 5-04-07
Пользователь №: 26 793

|
Цитата(URANst @ Mar 31 2008, 15:18)  Если я правильно понял что "железные" мультиплексоры это собственно отдельная микруха, то я как раз и хочу использовать такую, только не знаю какую (простите за тафтологию). Представляю так : из контроллера 2 вывода адресных, 2 вывода разрешения чтения - записи, чтение запись адресуется тому устройству , адрес которых установлен в первых двух выводах. А как быть с приемом ? С приёмом сложнее Тогда используй SN74CBT3253C (DUAL 1OF4 MUX/DEMUX) PDF
|
|
|
|
|
Mar 31 2008, 14:10
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
URANst, вам тут сейчас насоветуют  Вы поясните, четыре устройства должны быть физически разделены или их можно все-таки объединить на одной физической шине RS485? Что это за устройства на которые МК должен передавать данные? Это курсовая? Если да то, напишите задание полностью. Может вы его неверно интерпретируете?
|
|
|
|
|
Apr 1 2008, 05:03
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(URANst @ Mar 31 2008, 15:18)  А как быть с приемом ? В своё время у меня была система, объединяющая по RS-485 512 модулей. Естественно, они были разбиты на группы по 32, для каждой группы своя шина. Передача шла на все параллельно (использовались адресные команды), а вот приём - объединяли все выходы DI приёмников по "или". Правда, есть одна проблема: если какой-то модуль зависнет и оставит на шине "1", то эта единица забьёт по приёму все остальные линии (так как объединение по или.)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|