Полная версия этой страницы:
Расширение числа I/O
Morfko
Jan 14 2011, 06:23
Имеется платка на базе AT91SAM7S256. Кто знает, каким образом можно увеличить на 115 количество входов/выходов?
prottoss
Jan 14 2011, 06:28
Цитата(Morfko @ Jan 14 2011, 17:23)

Имеется платка на базе AT91SAM7S256. Кто знает, каким образом можно увеличить на 115 количество входов/выходов?
Повесить ПЛИС с доступным количеством ИО на какой нить свободный последовательный интерфес
Dron_Gus
Jan 14 2011, 06:45
i2c port extender. tca9555, например. Все зависит от требований.
Morfko
Jan 14 2011, 07:13
Цитата(prottoss @ Jan 14 2011, 12:28)

Повесить ПЛИС с доступным количеством ИО на какой нить свободный последовательный интерфес
Т.е. если ставить ПЛИС, то максимальная частота ногодрыгания у ПЛИС будет не больше максимальной частоты ногодрыгания у МК?
skripach
Jan 14 2011, 08:09
Цитата
Т.е. если ставить ПЛИС, то максимальная частота ногодрыгания у ПЛИС будет не больше максимальной частоты ногодрыгания у МК?
Будет больше если эту самую ПЛИС подключить например к аппаратному SPI.
Dron_Gus правильно советует использовать port extender, они так же есть у microchip, TI вроде, SPIные тоже вроде бывают.
ARM тут только причем?
Цитата(Morfko @ Jan 14 2011, 13:13)

Т.е. если ставить ПЛИС, то максимальная частота ногодрыгания у ПЛИС будет не больше максимальной частоты ногодрыгания у МК?
Если поставить ПЛИС, то туда можно зашить такую ногодрыгалку, что у МК крыша слетит. Сотни мегагерц - легко.
prottoss
Jan 14 2011, 08:25
Цитата(scifi @ Jan 14 2011, 18:13)

Если поставить ПЛИС, то туда можно зашить такую ногодрыгалку, что у МК крыша слетит. Сотни мегагерц - легко.
Не быстрее чем МК успеет передать адрес ноги ее состояние и направление.
Dopler
Jan 14 2011, 10:46
А может быть кто-нибудь подскажет микросхему, аналогичную HC595 (8 bit shift register with output latches), но только с ножкой сброса или с детерминированным Power-On состоянием?
Проблема вот в чем - есть много активных источников сигнала (выходы ОУ), которые через ключи подсоединены к АЦП (т.е. в одну точку). Ключи управляются через HC595. В момент подачи питания на выходах HC595 произвольные логические состояния, что приводит к соединению сразу несколько источников сигнала. Приходится на каждый выход HC595 ставить подтяжку и управлять входом OE.
prottoss
Jan 14 2011, 10:55
Цитата(Dopler @ Jan 14 2011, 20:46)

А может быть кто-нибудь подскажет микросхему, аналогичную HC595...
Ну а чем плисина то не нравится? Кучу зайцев одним выстрелом - надежность, компактность, универсальность, цена...
aaarrr
Jan 14 2011, 11:03
Цитата(prottoss @ Jan 14 2011, 14:25)

Не быстрее чем МК успеет передать адрес ноги ее состояние и направление.
Зачем же так категорично. ПЛИС может проявлять некоторую самостоятельность в "ногодрыганьи", не находите?
Цитата(prottoss @ Jan 14 2011, 16:55)

Ну а чем плисина то не нравится? Кучу зайцев одним выстрелом - надежность, компактность, универсальность, цена...
С HC595 в плане цены поспорить весьма затруднительно. Компатность - тоже палка о двух концах: если нужно равномерно раскинуть IO на протяжении нескольких десятков сантиметров платы, то несколько мелких корпусов, соединенных одним SPI, разводить будет не в пример удобнее, чем если тянуть все от одного здорового корпуса.
prottoss
Jan 14 2011, 11:11
Цитата(aaarrr @ Jan 14 2011, 21:03)

Зачем же так категорично. ПЛИС может проявлять некоторую самостоятельность в "ногодрыганьи", не находите?
Да, безусловно, но тогда скорее всего это будет тема другого топика.
Цитата(aaarrr @ Jan 14 2011, 21:03)

С HC595 в плане цены поспорить весьма затруднительно. Компатность - тоже палка о двух концах: если нужно равномерно раскинуть IO на протяжении нескольких десятков сантиметров платы, то несколько мелких корпусов, соединенных одним SPI, разводить будет не в пример удобнее, чем если тянуть все от одного здорового корпуса.
Автор про конструктив ничего не говорил...

Опять же - что за ключи?
Цитата(Dopler @ Jan 14 2011, 16:46)

А может быть кто-нибудь подскажет микросхему, аналогичную HC595 (8 bit shift register with output latches), но только с ножкой сброса или с детерминированным Power-On состоянием?
Вам сюда:
List of 7400 Series Integrated Circuits.
Если можете обойтись без Output Latch, то есть HC164. В конце концов, будет ползти единичка по выходам, да и фиг с ней.
Dopler
Jan 14 2011, 13:26
Спасибо за ответы.
Действительно ПЛИС в моем случае не применима - есть 24 территориально разделенных канала, в каждом стоит по одной HC595.
И единичка ползти тоже не должна, эти же микросхемы управляют и другими режимами канала, они прерываться не должны.
Пока сделал тупо и криво - Output Latch отключил (соединил с shift). На время выдачи информации по SPI перевожу выходы в неактивное состояние. Так как заполнение всей цепочки занимает не очень много времени (примерно 20 мкС), то за счет емкостей выходы в третьем состоянии не успевают уплыть от логической единицы (там где надо управлять режимами) и гарантированно уходят в 0 там нужно за счет внешних подтяжек.
prottoss
Jan 14 2011, 14:30
Цитата(Dopler @ Jan 15 2011, 00:26)

...есть 24 территориально разделенных канала, в каждом стоит по одной HC595...
Так может есть смысл применить микроконтроллеры в качестве расширителей IO? Дороговато может быть конечно... Хотя сейчас 8051 стоят чуть дороже НС595.
firstvald
Jan 14 2011, 14:59
Я бы проц ставил однозначно - куча проблем решается. Если источники распределены, то несколько процев с простейшей адресацией. В прнципе на проце можно написать длинный сдвиговый регистр с защелкой.
aaarrr
Jan 14 2011, 15:09
Воистину "погромистский" подход, ага - вместо копеечной микросхемы сделать сдвиговый регистр на МК

Куча проблем таким способом не решается, а создается.
Dopler
Jan 14 2011, 16:17
Ладно, я в обще-то сюда на всякий случай написал, просто тема похожая. Как бы на ответ особо и не рассчитывал.
Проц - это конечно здорово, особенно если вспомнить сколько он стоит/потребляет/занимает места, плюс прошивать его в каждом канале и т.д. И при этом еще и работать будет медленнее (покажите мне проц, у которого SPI на прием хотя бы половина тактовой).
prottoss
Jan 14 2011, 16:56
Цитата(aaarrr @ Jan 15 2011, 02:09)

Воистину "погромистский" подход
Я, по крайней мере, хоть какие то подходы предложил - Вы ни одного
Цитата(Dopler @ Jan 15 2011, 03:17)

покажите мне проц, у которого SPI на прием хотя бы половина тактовой).
Любая дохлая AVR-ка c аппаратным SPI на борту
Цитата(prottoss @ Jan 15 2011, 03:53)

Любая дохлая AVR-ка c аппаратным SPI на борту
Извиняюсь - SLAVE - только в 4 раза меньше тактовой или ниже
firstvald
Jan 14 2011, 17:19
Цитата(aaarrr @ Jan 14 2011, 21:09)

Воистину "погромистский" подход, ага - вместо копеечной микросхемы сделать сдвиговый регистр на МК

Куча проблем таким способом не решается, а создается.
Если бы вы решали такую задачу, так бы не сказали. С копеечными цепочками сдвиговых регистров натрахались по самые немогу. Впоследствии многоногий вспомогательный проц решал все и никто никогда даже не вспоминал про это место.
aaarrr
Jan 14 2011, 17:29
Цитата(prottoss @ Jan 14 2011, 22:56)

Я, по крайней мере, хоть какие то подходы предложил - Вы ни одного
I'm useless

Пойду убьюсь веником.
Цитата(firstvald @ Jan 14 2011, 23:19)

Если бы вы решали такую задачу, так бы не сказали.
Представьте себе, успешно решал безо всяких МК.
Цитата(firstvald @ Jan 14 2011, 23:19)

Впоследствии многоногий вспомогательный проц решал все и никто никогда даже не вспоминал про это место.
Кроме производства, надо полагать.
Однажды попала мне в руки платка, где расширение IO было сделано при помощи восьми(!) AT90S2313. Стыдно.
Dopler
Jan 14 2011, 17:43
Чтобы развеять все вопросы по периферийному процессору посчитаем время переключения:
1. У меня 24 канала, частота дискретизации по каждому 500 гЦ, т.е. имеем 12 КГц переключение, или по 80 мкС на каждое переключение.
2. Возьмем половину времени на переходной процесс, т.е. надо уложится в 40 мкС.
3. Возьмем АВР с внутренним генератором (внешний не рассматриваю даже близко) - частота SPI 2 МГц (и то это не допустимо, частота должна быть строго 1/4 тактовой) - период 0.5 мкС.
4. В каждый канал надо передать минимум 10 бит - 5 бит на адрес и 5 бит данных (мне нужно 5 IO линий в каждый канал).
Итого: 0.5 * 10 * 24 = 120 мкС, т.е. не вмещаемся никак.
Можно попробовать соединить контроллеры последовательно, но тогда вся гибкость пропадет и вообще толку применять их не будет.
Это я уже позже подумал - при таком подходе не надо обновлять все каналы одновременно, достаточно только один (текущий) выключить, один (следующий) включить, т.е. по времени должны укладываться нормально.
Прибор питается от USB, только на эту цепь уйдет 5 мА * 24 == 120 мА энергии, т.е. 1/4 всего питания.
P.S. В моем случае похоже HC594 подойдет, третье состояние мне не нужно, а сброс у нее есть. Спасибо scifi за наводку, как-то я ее пропустил.
prottoss
Jan 14 2011, 18:50
Цитата(Dopler @ Jan 15 2011, 04:43)

Это я уже позже подумал - при таком подходе не надо обновлять все каналы одновременно, достаточно только один (текущий) выключить, один (следующий) включить, т.е. по времени должны укладываться нормально.
АХА

Кроме того, цитирую классика:
Цитата(aaarrr @ Jan 14 2011, 22:03)

Зачем же так категорично. ... может проявлять некоторую самостоятельность в "ногодрыганьи", не находите?
Morfko
Jan 23 2011, 03:45
Я вообще с ПЛИС дела никогда не имел, очень примерно представляю что это такое, и посему походу глупый вопрос: можно ли в ПЛИС "засунуть" какую-либо простую функцию, например вот такую:
m = ((2 - t)*8)/a
а на выходе иметь значение переменной m или нельзя?
Цитата
А может быть кто-нибудь подскажет микросхему, аналогичную HC595 (8 bit shift register with output latches), но только с ножкой сброса или с детерминированным Power-On состоянием?
10я нога в HC595 - это что ?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.