Какие проблемы могут возникнуть при объединении 40 сменных регистров?

16

Я планирую объединить 40 х 74HC595 сдвиговых регистров. Вся цепь 74HC595s будет контролироваться с помощью 5 V микроконтроллера, который будет генерировать SDI, CLOCK& LATCHсигналы.

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

диаграмма

Из-за механических ограничений расстояние между каждым сдвиговым регистром будет составлять около 30 см (12 дюймов), поэтому сигналы управления будут распространяться на расстояние приблизительно. 12 м (40 футов). Кроме того, вся система будет установлена ​​в очень шумной обстановке (рядом с люминесцентными лампами, сетевыми проводами и т. Д.)

Меня беспокоит то, что сигналы управления будут очень шумными, а сдвиговые регистры могут выводить неправильные данные. Я думал о:

  • Использование буферной ИС на каждой плате для буферизации сигналов управления. Какой из них вы бы порекомендовали?
  • Использование экранированных кабелей между платами для сигналов
  • Понижение CLOCKчастоты максимально. Мне нужно обновлять содержимое регистров только несколько раз в день.

Являются ли вышеуказанные решения полезными? Что еще я могу сделать, чтобы свести (потенциальный) шум в сигнальных проводах к минимуму?

m.Alin
источник
3
Это звучит как фантастический кандидат на CPLD вместо 40 сменных регистров.
Джоэл Б
2
@JoelB Это может звучать как хорошая подгонка для CPLD, но это будет означать наличие 320 (= 40 * 8) сигналов, идущих от главной платы (CPLD) по всему миру. Было бы очень трудно установить, в моем случае, в этой среде; и это будет очень трудно поддерживать. Кроме того, сигналы, хотя и короче, они все равно будут подвергаться шуму.
м.Алин
1
@Joel - Digikey перечисляет только несколько CPLD с 320 ввода-вывода, и все они BGA. Они дороже, чем 40-е 595-е, и, как говорит м.Алин, у вас нет преимущества распределенных сигналов. С логической точки зрения это идеальная работа для CPLD, с практической точки зрения.
Стивенв
2
@ m.Alin - Ты совершенно прав. Я только что прочитал 40 сменных регистров и набрал в CPLD. После прочтения вопроса, как вы делаете это имеет смысл.
Джоэл Б.

Ответы:

14

Используйте триггеры Шмитта на входах каждой доски. Они будут очищать сигналы так, чтобы любой шум, например, не давал ложных импульсов на часах. 74LVC3G17 является тройным неинвертирующим буфером.

Также передайте буферизованные сигналы на следующую доску. В противном случае все входы будут параллельными, и вы можете превысить разветвление управляющего микроконтроллера (особенно я думаю об общей емкостной нагрузке). Последовательная цепь тактовых сигналов и сигналов защелки будет вызывать пульсацию по всей цепочке, но данные также будут поступать так же, и вы все равно планируете двигаться на низкой скорости.

stevenvh
источник
1
@ m.Alin - Да, двухтактный этап будет в порядке. Но я бы настоятельно рекомендовал буферы не только для возможности привода, но особенно для гистерезиса триггера Шмитта , который позволит избежать ложных тактовых импульсов, вызванных шумом около порога.
Стивенв
2
@ Саад - Вы имеете в виду, что буфер подает сигнал на кабель? Хорошо то, что он обеспечивает низкий импеданс, который уменьшает шум. Но если бы будет шум на приемной стороне вы не можете ничего об этом на передающей стороне сделать. Так что это приемник, который нуждается в хорошей помехоустойчивости, которую обеспечивает триггер Шмитта.
Стивенв
1
@ Саад - Да, но в этом случае это кажется излишним: провода длиной всего 30 см, и у вас уже есть повторитель / буфер на каждой плате.
Стивенв
1
@stevenvh Да, я говорил вообще. Ваши посты содержат огромное количество информации, и я почти всегда узнаю что-то новое! В этом случае у меня есть буферы на плате контроллера, которые подключаются к кабелю, который подключается к «дочерней плате». Я не ожидаю много шума, поэтому я мог бы остаться с моей договоренностью. У меня есть только буферы там, чтобы мой источник не приводил в движение 8 устройств (с входной емкостью 8 пФ + трасса и емкость кабеля).
Саад
1
@Saad - Спасибо за цветы! :-) Следите за емкостью кабеля, особенно если его длина превышает метр. Практическое правило: 100 пФ / м, это намного больше, чем входная емкость.
Стивенв
9

Проблема, которая может возникнуть, состоит в том, что некоторые SR синхронизируются до следующих SR, так что следующий SR будет синхронизировать неверные данные. (Стандартное?) Решение для этого состоит в том, чтобы подключить часы, начиная с последнего SR.

Я хотел бы рассмотреть возможность добавления буфера (schmit-trigger?) На каждой плате для всех 3 сигнальных линий.

(править) Понижение тактовой частоты не поможет (если только оно не было слишком высоким для начала). Проблемы, которые могут возникнуть у вас по краям часов, которые будут у вас в любом случае, независимо от того, как низко вы выберете частоту.

Воутер ван Оойен
источник
8

Самая большая проблема при объединении сдвиговых регистров заключается в том, чтобы гарантировать, что временная зависимость между часами, используемыми каждой платой, используемой для получения данных, и изменением данных с предыдущей платы предсказуема. Тот факт, что выход 74HC595 изменяется на той же границе, что и часы, немного раздражает в этом отношении. Я бы предложил, чтобы тактовый сигнал был буферизован при прохождении через каждую плату и чтобы сигнал данных, поступающий из 74HC595 одной платы, передавался через буфер, который задержит его на время, немного превышающее тактовый буфер.

В качестве альтернативы вы можете использовать сдвиговый регистр, такой как 74HC4094, у которого изменение выходных данных по падающему фронту тактового сигнала, или вы можете добавить триггер между выходом последнего 74HC595 на плате и следующей плате и получить этот триггер зафиксируйте его выход на заднем фронте тактового генератора, который управляет 74HC595 (возможно, пропустите тактовый генератор через два инвертора для его буферизации и подайте инвертированный тактовый сигнал на триггер).

Если число выходов 74HC595, которые вы будете использовать, на один (или более) меньше, чем количество, поставляемое вашими чипами (например, на плате с двумя 74HC595, вам на самом деле нужно только 15 выходов), вы можете подать последние 74HC595 на плату с часы, инвертированные от других, но это будет стоить вам использовать один выход 74HC595 для каждого прохождения сигнала между неинвертированными тактовыми импульсами 74HC595 и инвертированными тактовыми импульсами 74HC595.

Supercat
источник