реклама на сайте
подробности

 
 
> Преобразования BCD в двоичный код для умножающего ЦАП
syuha
сообщение Sep 12 2017, 19:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



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

В следующей итерации хотелось бы заменить метод ввода на что-то более удобоваримое. Выбор пал на ручные переключатели, которые thumbwheel switches, например Omron A7D-106-1.
В идеале хотелось бы иметь три разряда, которыми можно установить напряжение 0-999мВ. Нужного масштабирования можно добиться, подобрав нужное опорное напряжение для ЦАП.

Выход переключателя BCD, а вход ЦАП это двоичный код, встает вопрос конвертации.
Нашел микросхемы, дающее преобразование BCD в двоичный код (DM74184/DM74185A и SN54184/SN74184). Даташит дает схемы подключения для преобразования нескольких разрядов в двоичный код.
Но все эти микросхемы настолько старые, что их не купить, а альтернативы я не нашел. Есть ли идеи у сообщества как реализовать это на современной элементной базе?
Казалось бы, задача тривиальная и должна быть достаточно распростроненной чтобы было какое-то элегантное решение без использования программируемой логики.

Есть ЦАП c BCD входом, но я не нашел подходящих для моей задачи. Есть еще переключатели с HEX выходом, но по удобству использования это не намного лучше двоичных переключателей на плате.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 23)
Flood
сообщение Sep 12 2017, 21:02
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Если требование о неиспользовании программируемой логики не является абсолютным, задачу можно было бы решить на какой-либо дешевой CPLD с достаточным для трех разрядов количеством I/O. По крайней мере, такое лобовое решение напрашивается сразу.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Sep 12 2017, 21:02
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(syuha @ Sep 12 2017, 22:21) *
Казалось бы, задача тривиальная и должна быть достаточно распростроненной чтобы было какое-то элегантное решение без использования программируемой логики.

Я так понимаю мелкий процик тоже не пойдёт?

вариант 1:
Ну тогда умножение на x*10 = x*8 + x*2 = сдвиг x на 3 + сдвиг x на 1.
Сдвиг организуется банально проводами у нужным выводам сумматора.

Сумматоры вроде как ещё продают.

вариант 2:
сгородить аналог устаревшей микрухи на little logic должно выйти не сильно больше по площади на мой взгляд.

вариант 3:
любую функцию можно организовать на мультиплексоре. т.е. сделать то что нужно на жмене мультиплексоров

вариант 4:
ПЗУ. В которое записывается таблица 12 на 10.

Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 12 2017, 21:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



4)
SST39VF402C 1$
https://www.digikey.com/products/en/integra...amp;pageSize=25
пзу можно и сразу на все 3-4 десятичных, то есть 12-16 двоичных разрядов взять.
переключатели на шину адреса, CE + OE зажать.
но прошить предварительно придётся.

p.s. ну а вообще нынче AD7845 вполне заменяется мелким МК за 1$, в котором будут 12ти разрядные ЦАП и АЦП под МГц (АЦП для эмуляции умножающего ЦАПа, если так надо именно умножающий ЦАП).
а подстройка делается единственной крутилкой (цифровой, с квадратурными выходами), и любой индикацией. на этом же мк.
в зависимости от скорости вращения меняется приращение (медленно - приращение по 1, быстро по десяткам ещё быстрее по сотням и т.д.), соответственно очень удобно подстраивается в широком диапазоне.
видел на каком-то генераторе частоты так сделано было, а его крутить приходилось довольно часто, не только для разовых настроек.
при этом в несколько оборотов лекго выбирается значение с 4-5 десятичными разрядами.

ну или как на сейфах, смена направления вращения переключает разряд на следующий.
Go to the top of the page
 
+Quote Post
syuha
сообщение Sep 12 2017, 22:28
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



Спасибо за ответы!

Согласен, любое решение отличное от МК или CPLD, выглядит как стимпанк.
Присмотрюсь к решению на сумматорах
Go to the top of the page
 
+Quote Post
Plain
сообщение Sep 13 2017, 00:37
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



На счётчиках будет неспешно, но минимум компонентов для любой разрядности — десятичный счётчик загружается уставкой и уменьшает её до нуля, а синхронный с ним двоичный наоборот; счётчики ещё делают и продают — '190/'192 и '191/'193/'590 соответственно.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Sep 13 2017, 08:27
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(Plain @ Sep 13 2017, 03:37) *
На счётчиках будет неспешно, но минимум компонентов для любой разрядности — десятичный счётчик загружается уставкой и уменьшает её до нуля, а синхронный с ним двоичный наоборот; счётчики ещё делают и продают — '190/'192 и '191/'193/'590 соответственно.
Не очень понял схему. Точнее для первого десятичного разряда всё понятно. А как быть со вторым и третьим? Там же нужно сразу считать по 10 и по 100 это как реализовывать?
Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 13 2017, 08:34
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



счётчикам ещё нужен клок, а 16ти разрядная параллельная флэш на 1Мбит, как декодер сразу для 4х десятичных разрядов или мелкая CPLD, нынче стоит как один такой двоичный счётчик которых надо по два на каждый разряд.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 13 2017, 08:36
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(syuha @ Sep 13 2017, 01:28) *
Согласен, любое решение отличное от МК или CPLD, выглядит как стимпанк.

Как бы это помягче... Выглядит глупостью. rolleyes.gif
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Sep 13 2017, 09:02
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(ViKo @ Sep 13 2017, 11:36) *
Как бы это помягче... Выглядит глупостью. rolleyes.gif
Флешка тоже симпатично смотриться. Хотя по сути она выполняет роль CPLD
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Sep 13 2017, 17:28
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(syuha @ Sep 13 2017, 02:28) *
Согласен, любое решение отличное от МК или CPLD, выглядит как стимпанк.
Есть еще решение без МК и CPLD, как бы полностью аналоговое.
Вот оно.
Потребуется три 4-х разрядных ЦАП, на входы которых нужно подать три DCB-кода.
При этом выходы ЦАП подключить к аналоговому сумматору на три входа. А коэффициенты передачи по входам сумматора установить 1, 0.1 и 0.01, соответственно, от старшего к младшему DCB разряду. Ну и вся схема должна также иметь переменные резисторы для точной подстройки коэффициентов передачи.
Предложенные варианты с МК или CPLD точной подстройки не требуют, но здесь уже Вам выбирать самому.....

С этой темой слегка перекликается тема "Дробное двоичное в BCD" из https://electronix.ru/forum/index.php?showt...=137315&hl=
Go to the top of the page
 
+Quote Post
Plain
сообщение Sep 13 2017, 22:05
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(MegaVolt @ Sep 13 2017, 11:27) *
Не очень понял схему. Точнее для первого десятичного разряда всё понятно. А как быть со вторым и третьим? Там же нужно сразу считать по 10 и по 100 это как реализовывать?

В паспортах указанных ИС имеются примеры их каскадного соединения, т.е. увеличения разрядности.

Цитата(_pv @ Sep 13 2017, 11:34) *
мелкая CPLD нынче стоит как один такой двоичный счётчик

17$ за AD7845, 22$ за 3 шт. A7D-106 — очевидно, для автора важны не деньги, а время.
Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 14 2017, 07:07
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Plain @ Sep 14 2017, 04:05) *
17$ за AD7845, 22$ за 3 шт. A7D-106 — очевидно, для автора важны не деньги, а время.

как раз судя по AD7845 это некая доработка изделия, которому уже далеко не первый десяток лет пошёл. так что про время - вряд ли.
Go to the top of the page
 
+Quote Post
VCO
сообщение Sep 14 2017, 07:17
Сообщение #14


Voltage Control Output
******

Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436



Смоделировать статический декодер в CPLD и перенести на жёсткую логику.


--------------------
Слово - не воробей, вылетит - не пощадит
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Sep 14 2017, 08:39
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(Plain @ Sep 14 2017, 01:05) *
В паспортах указанных ИС имеются примеры их каскадного соединения, т.е. увеличения разрядности.
Вопрос не в том как каскадно объединить счётчики. Вопрос как сделать чтобы счёт вниз шёл пропорционально двоичному числу умноженному на 10 и на 100. Как планируется формировать код для работы счётчика?
Go to the top of the page
 
+Quote Post
Plain
сообщение Sep 14 2017, 11:41
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(MegaVolt @ Sep 14 2017, 11:39) *
Вопрос не в том как каскадно объединить счётчики. Вопрос как сделать чтобы счёт вниз шёл пропорционально двоичному числу умноженному на 10 и на 100. Как планируется формировать код для работы счётчика?

Серьёзно, не понятны Ваши трудности — в 3-разрядный десятичный счётчик, созданный посредством каскадного соединения трёх вышеуказанных ИС, переписываются данные с трёх вышеуказанных енкодеров, после чего он декрементирует в двоично-десятичном виде от данного значения до нуля, после чего выдаёт сигнал переноса. Одновременно с этим, т.е. по тому начальному сигналу переписи с энкодеров, сбрасывается 10-разрядный двоичный счётчик, также созданный посредством каскадного соединения других вышеуказанных ИС, после чего он инкрементирует в двоичном виде от этого нуля до появления того сигнала переноса с двоично-десятичного счётчика, по которому полученное таким способом значение уставки, теперь уже в нужном двоичном виде, переписывается из этого двоичного счётчика в защёлку ЦАП, после чего всё повторяется, т.е. снова вырабатывается сигнал переписи данных с энкодеров в десятичный счётчик и по нему же сброс двоичного счётчика, после чего включается их единый тактовый генератор, и т.д.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Sep 14 2017, 13:28
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(Plain @ Sep 14 2017, 14:41) *
Серьёзно, не понятны Ваши трудности — в 3-разрядный десятичный счётчик, созданный посредством каскадного соединения трёх вышеуказанных ИС,
Спасибо. Не рассмотрел что DOWN счётчики BCD sad.gif
Go to the top of the page
 
+Quote Post
iliusmaster
сообщение Sep 14 2017, 18:02
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 15-04-17
Пользователь №: 96 556



Можно так попробовать на CD4008:


Сообщение отредактировал iliusmaster - Sep 14 2017, 18:02
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Flood
сообщение Sep 15 2017, 19:22
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(ViKo @ Sep 13 2017, 11:36) *
Как бы это помягче... Выглядит глупостью. rolleyes.gif

Если в схеме нет других программируемых элементов - то отказ от МК / ПЛМ вовсе не глупость, а очень разумное решение. Во-первых, не нужно решать вопрос программирования микросхем при производстве. Во-вторых, можно не беспокоиться о том, что через 10-15 лет вместо BCD кода на ЦАП начнет поступать какая-нибудь дичь.
Go to the top of the page
 
+Quote Post
syuha
сообщение Sep 15 2017, 21:37
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



Цитата(iliusmaster @ Sep 15 2017, 01:02) *
Можно так попробовать на CD4008:


Спасибо, так и решил делать, только добавил еще один разряд "на будущее"
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 16 2017, 05:23
Сообщение #21


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Flood @ Sep 15 2017, 22:22) *
Если в схеме нет других программируемых элементов - то отказ от МК / ПЛМ вовсе не глупость, а очень разумное решение. Во-первых, не нужно решать вопрос программирования микросхем при производстве. Во-вторых, можно не беспокоиться о том, что через 10-15 лет вместо BCD кода на ЦАП начнет поступать какая-нибудь дичь.

Кто хочет делать, ищет средства, кто не хочет делать, ищет причины.
С МК можно получить изделие гораздо более качественное, надежное, компактное, еще и дешевле.
И для "будущего" у него тоже возможностей куда больше.
Go to the top of the page
 
+Quote Post
syuha
сообщение Feb 9 2018, 22:36
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



Долго ли коротко, но собрал я схему, приведенную в сообщении выше.
Но вот незадача - выходы сумматора ведут себя нестабильно, иногда некоторые выходные биты начинают звенеть на максимальной частоте переключения сумматора.

Использовал сумматоры CD74HCT283M, неиспользуемые входы переноса к земле подключил.
Неужели нужны еще подтяжки к земле на входах сумматоров от переключателей?

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

Блокировочные конденсаторы стоят, полигон земли не забыл, тантал на несколько микрофарад на питании стоит один на плату, распиновку проверил.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 10 2018, 05:22
Сообщение #23


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А входы КМОП микросхем подтягивать к нулю (или единице) нужно. Резисторов на схеме нема.
Go to the top of the page
 
+Quote Post
syuha
сообщение Feb 12 2018, 23:58
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



Да, добавил подтягивающие 1кОм резисторы на входы от переключателей и преобразование заработало стабильно.
Спасибо ViKo, в следующий раз попробую прежде чем спрашивать
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 14:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01617 секунд с 7
ELECTRONIX ©2004-2016