Расширитель порта ВВОДА/ВЫВОДА для AVR
Расширитель порта ВВОДА/ВЫВОДА для AVR
Всем привет. Необходимо решить вот такую задачку: имеется устройство с большим числом входов/выходов (всего 144) построенное на микросхемах с ТТЛ уровнями. Необходимо управлять всеми этими входами/выходами через ATMEGUXXX , которая имеет КМОП уровни. Обмен данными в обе стороны. Подскажите, что можно сделать. Возможно есть какой-нибудь расширитель портов который преобразует уровни ТТЛ в КМОП и наоборот.
- Реклама
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Атмелка ващето совместима по уровням с TTL. Как я понял нужно сделать 144 IO - тут решений несколько. Можно использовать регистры + дешифратор, можно специализированные расширители шины с управлением по I2C.
Уточните, плиз:
1. Сколько входных портов, сколько выходных, сколько двунаправленных?
2. Какая скорость обмена необходима.
А то дробь слишком офигенная получается
ЗЫ:Всех поздравляю с Днем Космонавтики
Уточните, плиз:
1. Сколько входных портов, сколько выходных, сколько двунаправленных?
2. Какая скорость обмена необходима.
А то дробь слишком офигенная получается
ЗЫ:Всех поздравляю с Днем Космонавтики
Все будет только лучше, в крайнем случае - хуже.
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
все 144 канала должны быть двунаправленными и иметь ТТЛ уровень. Информацию с этих каналов необходимо передавать в ATMEGU. Скорость обмена 4 МГц. Укажите, плиз, конкретные микросхемы и пример их подключения. Расскажите про расширители по I2C.
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Задачка нерешаемая. 4 мегагерца на 144 I/0 - здоровья у AVR не хватит. Это получается 144/8=18. Для оработки линий потребуется тактов 16-20 на одну 8-битную шину.
Исходя из этого, даже на самой быстрой меге (20МГц) получаем 20/(20*18) = 0.055МГц. А еще с этими данными надо что-то сделать. Короче обеспечить скорость обмена 4МГц - невозможно на данном контроллере.
Насчет I2C I/O экспандеров: я использовал вот такую http://www.nxp.com/documents/data_sheet/PCF8575.pdf
тут можете почитать про другие расширители http://ics.nxp.com/products/gpio.expanders/i2c/
Тока решение (с I2C) еще медленнее, притом раз в 10.
Вам помогут только шинные формирователи типа SN74LS245, и то они обеспечат (вкупе с контроллером), от силы 50кГц, как я писал выше.
А управление направлением линий каким образом происходит? Все 144 линии одновременно или группы существуют?
Исходя из этого, даже на самой быстрой меге (20МГц) получаем 20/(20*18) = 0.055МГц. А еще с этими данными надо что-то сделать. Короче обеспечить скорость обмена 4МГц - невозможно на данном контроллере.
Насчет I2C I/O экспандеров: я использовал вот такую http://www.nxp.com/documents/data_sheet/PCF8575.pdf
тут можете почитать про другие расширители http://ics.nxp.com/products/gpio.expanders/i2c/
Тока решение (с I2C) еще медленнее, притом раз в 10.
Вам помогут только шинные формирователи типа SN74LS245, и то они обеспечат (вкупе с контроллером), от силы 50кГц, как я писал выше.
А управление направлением линий каким образом происходит? Все 144 линии одновременно или группы существуют?
Все будет только лучше, в крайнем случае - хуже.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Слишком неопределенно. Могу предложить такой вариант (см рисунок)
Он конечно 4 МГц не даст, но при желании, можно выйти к уровню 1...2 МГц
Данная схема легко расширяется до требуемого количества
Он конечно 4 МГц не даст, но при желании, можно выйти к уровню 1...2 МГц
Данная схема легко расширяется до требуемого количества
- Вложения
-
- mega_r.JPG
- (212.93 КБ) 1068 скачиваний
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- Реклама
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
а не проще ли сделать "распараллеливание" на нескольких переферийных ИС(МК) для предварительной оперативной обработки линий, а окончательную обработку отдать центральному ядру?
да и, судя по всему, схема совершенно сырая - неужто все сразу 144 канала работают и как входы и как выходы?
а ежли уж оччень приперло - втисни регистровое кольцо - 144 -150 тактов на сбор одного пакета информации, примерно столько же и на обновление выходных данных
примерно 18 восьмиразрядных регистров а-ля 561ир6
да и, судя по всему, схема совершенно сырая - неужто все сразу 144 канала работают и как входы и как выходы?
а ежли уж оччень приперло - втисни регистровое кольцо - 144 -150 тактов на сбор одного пакета информации, примерно столько же и на обновление выходных данных
примерно 18 восьмиразрядных регистров а-ля 561ир6
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Тут наверное нужен ARM поскоростнее, чтобы достичь таких скоростей.
I am DX168B and this is my favourite forum on internet!
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
еще разочек обрисую то что хочу получить: Имеется десяток устройств и все имеют разъем со 144 контактами, которые имеют ТТЛ уровень. Необходимо разработать универсальное изделие для работы со всеми десятью устройствами, таким образом чтобы разъем изделия можно было подключить к любому из десяти устройств. Перед началом работы, идет конфигурация 144 пинов на вход/выход для конкретного устройства. На счет скорости в 4 Мгц, я погорячился и в настоящий момент безразлично на какой скорости вести обмен.
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
явно недоработанные устройства
единственно что напоминают - анализатор линий связи проводной телефонии
ну еще отладнчно-тестовый стенд при производстве теликов в древние времена (или современный аналог экспресс-анализатора участка по выпуску радиоэлектронных(компьютерных) плат), дак и там уже давно первую часть задачи выполняют программы внутреннего самотестирования для сведения к минимуму цепе внешней коммм...утации
единственно что напоминают - анализатор линий связи проводной телефонии
ну еще отладнчно-тестовый стенд при производстве теликов в древние времена (или современный аналог экспресс-анализатора участка по выпуску радиоэлектронных(компьютерных) плат), дак и там уже давно первую часть задачи выполняют программы внутреннего самотестирования для сведения к минимуму цепе внешней коммм...утации
-
orinoko
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Кстати, задача достаточно нетривиальна, так как требуется независимая настройка КАЖДОГО "контакта" на вход или выход, то есть нужно сделать некий упрощённый аналог портов ввода-вывода МК:RuslanXXX писал(а):еще разочек обрисую то что хочу получить: Имеется десяток устройств и все имеют разъем со 144 контактами, которые имеют ТТЛ уровень. Необходимо разработать универсальное изделие для работы со всеми десятью устройствами, таким образом чтобы разъем изделия можно было подключить к любому из десяти устройств. Перед началом работы, идет конфигурация 144 пинов на вход/выход для конкретного устройства. На счет скорости в 4 Мгц, я погорячился и в настоящий момент безразлично на какой скорости вести обмен.
1. пачка параллельных регисторов на вывод (PORTx) - 18 штук (например 74HC573)
2. буферные элементы с возможностью перевода каждого выхода в Z-состояние (например 74125) 36 штук + регистры управления этими буферами (DDRx) 18 штук
3. пачка параллельных регисторов на вывод (PINx) - 18 штук
4. Адресный дешифратор для всего это хозяйства.
Некисло получается на дискретной логике. Можно попробовать заюзать ПЛИС на нужное количество выводов, и тогда можно будет обойтись более реальным количеством микросхем.
Вот такое моё видение данной задачи.
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Теперь хоть понятно, что нужно 
Я уже выше писал про GPIO expaner-ы - у NXP/Philips (и не только) есть куча готовых чипов. Там есть возможность сконфигурить каждый пин отдельно на ввод или вывод. Для нашего случая, кмк, хорошо подходит. Обратите внимание на PCA8575 - 16 независимых I/O - навеситиь 9 штук - вот и готовое решение на 144 ноги. Можно глянуть еще у Maxim/National/Dallas. Лепить на "рассыпухе" - слишком геморно.
Можно предложить вариант с CPLD (например Altera MAX)- будет работать шустрее, чем с I2C.
Я уже выше писал про GPIO expaner-ы - у NXP/Philips (и не только) есть куча готовых чипов. Там есть возможность сконфигурить каждый пин отдельно на ввод или вывод. Для нашего случая, кмк, хорошо подходит. Обратите внимание на PCA8575 - 16 независимых I/O - навеситиь 9 штук - вот и готовое решение на 144 ноги. Можно глянуть еще у Maxim/National/Dallas. Лепить на "рассыпухе" - слишком геморно.
Можно предложить вариант с CPLD (например Altera MAX)- будет работать шустрее, чем с I2C.
Все будет только лучше, в крайнем случае - хуже.
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Опять же - что, так сильно пригорело AVR ?
Зачем изобретать велосипед на пустом месте ?
Есть дешевые ARM контроллеры с 160 GPIO пинами в паябельных корпусах.
Зачем изобретать велосипед на пустом месте ?
Есть дешевые ARM контроллеры с 160 GPIO пинами в паябельных корпусах.
-
qwerky
- Мучитель микросхем
- Сообщения: 487
- Зарегистрирован: Пт июн 12, 2009 19:17:35
- Контактная информация:
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
ну-ну... почитайте выше требования по скорости. 4МГц I2C никогда не даст. Плюс плохая помехозащищенность на длинной линии. И цена - намного дороже обычных регистров.Я уже выше писал про GPIO expaner-ы - у NXP/Philips (и не только) есть куча готовых чипов. Там есть возможность сконфигурить каждый пин отдельно на ввод или вывод. Для нашего случая, кмк, хорошо подходит.
Возможен еще вариант организации псевдо-двунаправленной шины с помощью "открытого коллектора" - посл.диода с каждым выводом 74HC595, 74HC597 - на прием. Для макс.скорости подключить на SPI.
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
решил попробовать в качестве расширителя использовать трехпортовый AVR. Но появились опять вопросы: как тактировать одним сигналом все шесть МК, какая должна быть схема. И еще раз хочу уточнить, AVR совместим с ТТЛ?
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
ну-ну. почитайте ветку. Я уже писал выше, что добиться 4МГц на 144 линиях никаким образом на AVR не получится.qwerky писал(а):ну-ну... почитайте выше требования по скорости. 4МГц I2C никогда не даст. Плюс плохая помехозащищенность на длинной линии. И цена - намного дороже обычных регистров.
Возможен еще вариант организации псевдо-двунаправленной шины с помощью "открытого коллектора" - посл.диода с каждым выводом 74HC595, 74HC597 - на прием. Для макс.скорости подключить на SPI.
Это Вы читали?
PS: Без обидRuslanXXX писал(а):На счет скорости в 4 Мгц, я погорячился и в настоящий момент безразлично на какой скорости вести обмен.
Последний раз редактировалось coredumped Чт апр 14, 2011 19:52:42, всего редактировалось 1 раз.
Все будет только лучше, в крайнем случае - хуже.
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Расширитель порта ВВОДА/ВЫВОДА для AVR
Да, AVR совместим с TTL. Насчет тактирования - поставьте фьюзы на использование внешнего генератора(CKSEL3..0 = 0). Поставьте в схему любой кварцевый генератор с выходом TTL, на нужную частоту. Подайте эту частоту на все контроллеры, на вход XTAL1.RuslanXXX писал(а):... вопросы: как тактировать одним сигналом все шесть МК, какая должна быть схема. И еще раз хочу уточнить, AVR совместим с ТТЛ?
Все будет только лучше, в крайнем случае - хуже.


