Які проблеми можуть виникнути при прив’язуванні 40 змінних регістрів?


16

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

Кожен регістр зсуву та мікроконтролер матиме власну друковану плату, як показано на схемі нижче:

діаграма

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

Мене хвилює те, що сигнали управління будуть дуже галасливими і регістри зсуву можуть виводити неправильні речі. Я думав про:

  • Використовуючи буферну ІМ на кожній платі для буферизації керуючих сигналів. Який би ви порадили?
  • Використання екранованих кабелів між платами для отримання сигналів
  • Знизивши CLOCKчастоту якомога більше. Мені потрібно лише оновлювати вміст реєстрів кілька разів на день.

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


3
Це звучить як фантастичний кандидат на CPLD замість 40 змінних регістрів.
Джоель Б

2
@JoelB Це може здатися гарним пристосуванням для CPLD, але це означатиме, що 320 (= 40 * 8) сигналів переходять від основної плати (CPLD) до всіх місць. В моєму випадку в цьому середовищі було б дуже важко встановити; і це буде дуже важко підтримувати. Плюс, сигнали, хоча і коротші, вони все ще будуть піддаватися шуму.
м.Алін

1
@Joel - Digikey перераховує лише декілька CPLD з 320 вводу-виводу, і всі вони BGA. Вони дорожчі, ніж 40 '595, також, як і м.Алін каже, що ви не маєте переваги в розподілених сигналах. З логічної точки зору, це ідеальна робота для CPLD, з практичної менш.
stevenvh

2
@ m.Alin - Ти абсолютно прав. Я щойно прочитав 40 регістрів змін та набрав у CPLD. Прочитавши ретельно запитання, як ви це робите, має сенс.
Джоель Б

Відповіді:


14

Використовуйте буферні тригери Шмітта на входах кожної плати. Вони, наприклад, очистять сигнали, щоб будь-який шум не видав помилкові імпульси на годиннику. 74LVC3G17 є потрійним неінвертірующего буфером.

Також передайте буферизовані сигнали до наступної дошки. Інакше всі входи будуть паралельними, і ви можете перевищити вентилятор ведучого мікроконтролера (особливо я думаю про загальну ємнісну навантаження). Ромашковий ланцюг сигналів годинника та засувки дасть пульсацію затримки по всьому ланцюгу, але дані також будуть робити це, і ви все одно плануєте рухатися на низькій швидкості.


1
@ m.Alin - Так, етап поштовху буде добре. Але я б настійно рекомендував буфери не лише для можливості приводу, а особливо для гістерезису тригера Шмітта , який дозволить уникнути помилкових тактових імпульсів, викликаних шумом навколо порогу.
stevenvh

2
@Saad - Ви маєте на увазі буфер передає сигнал на кабель? Хороша річ, що це забезпечить низький опір, що зменшує шум. Але якщо б буде шум на прийомній стороні ви не можете нічого про це на передавальній стороні зробити. Таким чином, приймач, який забезпечує хороший захист від шуму, який забезпечує тригер Schmitt.
stevenvh

1
@Saad - Так, але в цьому випадку це здається непосильним: дроти завдовжки лише 30 см, і у вас вже є ретранслятор / буфер на кожній платі.
stevenvh

1
@stevenvh Так, я говорив взагалі. Ваші публікації містять багату інформацію, і я майже завжди дізнаюся щось нове! У цьому випадку у мене буфери на платі контролера, які підключаються до кабелю, який підключається до "дочірній платі". Я не чекаю багато шуму, тому я можу залишитися зі своїм домовленістю. У мене є тільки буфери, так що мій джерело не закінчує керування 8 пристроями (з вхідною ємністю 8pF + слід і ємність кабелю).
Саад

1
@Saad - Дякую за квіти! :-) Слідкуйте за ємністю кабелю, особливо якщо він довший метра або більше. Правило: 100 пФ / м, це набагато більше, ніж вхідна ємність.
stevenvh

9

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

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

(редагувати) Зниження тактової частоти не допоможе (якщо тільки це не було занадто високим для початку). Проблеми, які ви можете виникнути в тактових краях, які у вас все одно будуть виникати, незалежно від того, наскільки низькою ви обираєте тактову частоту.


8

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

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

Якщо кількість виходів 74HC595, якими ви користуєтесь, на одну (або більше) меншу, ніж кількість, що надається вашими чіпами (наприклад, на дошці з двома 74HC595 вам потрібно лише 15 виходів), ви можете подати останні 74HC595 на плату годинник, перевернутий у інших, але це коштувало б використання одного виходу 74HC595 кожного разу, коли сигнал проходить між неперевернутим тактовим годинником 74HC595 та інвертованим годинником 74HC595.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.