Перейти к содержанию

Интересные технические решения


Рекомендуемые сообщения

Если я правильно понял задачу, то я обычно делаю так как на рисунке.

На вход сброса правого триггера приходит ваш импульс отрицательной полярности. На счетный вход в конце последовательности даем фронт.

post-365-1296114970,33_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

Но этот вариант все же плох тем, что частота генератора должна быть выше конечной частоты в зависимости от требуемой точности.

Ссылка на комментарий
Поделиться на другие сайты

Быть, Нет ! Вы таки неверно поняли. :? Вы описали одну из реализаций принципа, про который я упомянул как про неправильный: Взять частоту кварца в N раз больше, и поделить на N, посредством синхронизируемого делителя (сбрасываемый синхроимпульсом счетчик). Беда в том, что точность синхронизации - один такт высокочастотного сигнала, т.е. 1/N выходного такта. В вашем случае N=2 (вместо счетчика у вас счетный тригер, ака делитель пополам). Для получения высоких точностей, частота кварца, должна быть неприемлемо высокой (для указанных в задаче условий - 270Мгц) , что во первых, выше предельного быстродействия логики тех лет (если не связываться сериями с К1500 (ЭСЛ, до 300Мгц), К6500 (GaAs ПТШ, до 1000Мгц), что есть геморой), во вторых кварц на такую частоту - только гармониковый (причем гармоника, эдак 33-я :wink: ), и генератор построить, так "на халяву" уже тоже не выйдет - скорее всего, ФАПЧ городить придется, либо генератор с контурами, для захвата n-ой гармоники, и подстройкой, что тоже - порядочный геморой. Предложенное вами решение - очевидно, и не интересно (см. название темы :lol: ). Кстати для чисто "цифровых задач" оно - единственно возможное, потому повторю еще раз: схема не совсем цифровая (хотя аналоговых микросхем, как таковых, там и нет ).

Ссылка на комментарий
Поделиться на другие сайты

Да, погорячился, это решение было помечено как неверное.

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

Почему такая замкнутость на логике серий 555, 1554, Это единственно доступная комплектация?

Ссылка на комментарий
Поделиться на другие сайты

К вашим бы идеям приложить такой инструмент, как CPLD. Одна микросхемка на 44-200 выводов заменит потрясающую кучу рассыпухи, сэкономит массу времени и сил. Вобщем позволит дистанцироваться от муторного изготовления ПП, и направить энергию на более перспективные задачи.

Ссылка на комментарий
Поделиться на другие сайты

Почему такая замкнутость на логике серий 555, 1554, Это единственно доступная комплектация?

Ну во первых, как уже говорилось помимо 555, 1554, там применялись еще ПЗУ-таблицы (556РТ11, 573РФ5), для минмимизации комбинационной логики :wink: .

А вообще, в те времена, действительно, альтернатив было немного. Были еще всякие ЭСЛ, но они чудовищно много жрали, и грелись, и вообще в работе были весьма неудобны, да еще и с умножителями частоты, да преобразователями уровней, получилось бы всяко больше чем у меня на ТТЛ-стандартной логике. Сейчас, я бы тоже сделал на ПЛИС, как вы и говорите. Но это просто, а потому неинтересно. Просто тогда получилось весьма неординарное решение, над которым тоже пришлось голову поломать несколько дней.

Кстати такая штука, может быть реализована и в некоторых ПЛИС-ах, только "на новом уровне", с синхронизацией уже до единиц и долей наносекунд (на пределе быстродействия ПЛИС). Важна красивая идея (сделать синхронизацию на доли такта, без введения умноженной тактовой частоты), а не элементная база. ТТЛ-логика взята для примера, чтобы понятно было.

Ссылка на комментарий
Поделиться на другие сайты

Понятно. Кстати, ПЛИС вносит также и свои ограничения. "Не любит" асинхронщину, не позволяет подключить кварц напрямую к ногам (вернее это будет некорректно)...

Ссылка на комментарий
Поделиться на другие сайты

К вашим бы идеям приложить такой инструмент, как CPLD. Одна микросхемка на 44-200 выводов заменит потрясающую кучу рассыпухи, сэкономит массу времени и сил.
Знаем знаем. Хорошая и полезная весчЪ ! Особенно для больших проэктов. (для мелких - затраты на разработку - соразмеримы, а себестоимость конечного изделия, как правило оказывается выше, чем на дискретной логике, несмотря на меньшие габариты, так что выбор труден). Понимаете ли.. если вы можете придумать на рассыпухе оптимальный, ну скажем... аппаратный растрирующий процессор (была у меня такая фигня), то вы сможете упрятать его и в ПЛИС. И у вас получится "конфетка".

А вот если наоборот (владеете ПЛИС-ами, но не знаете принципов проэктирования цифровых устройств) ... у вас в лучшем случае, получится что-то жутко неоптимальное, использующее громадную ПЛИС, там где хватило бы маленькой, да еще и глючное наверняка. :evil:

(кстати эти же тенденции нынче наблюдаются и в программировании, иногда очень хочется засадить современных софтописателей на пару лет за ... ну скажем... 486DX4-100, (чтобы не быть совсем уж жестоким :mrgreen: ), для обучения ... приемам оптимизации кода, так сказать :evil:)

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

Вобщем позволит дистанцироваться от муторного изготовления ПП

Ну вообщето, ПП - никуда не денется, и даже не всегда станет проще :mrgreen:

Понятно. Кстати, ПЛИС вносит также и свои ограничения. "Не любит" асинхронщину, не позволяет подключить кварц напрямую к ногам (вернее это будет некорректно)...
Я в курсе.

Но вообщето ПЛИС-ы разные бывают :wink: . Есть FPGA, позволяющие достаточно свободно, заводить выходы внутренних ячеек на тактирующие входы других ячеек. И устраивать внутри множественное тактирование, и "асинхронщину", как вы выражаетесь. Правда, обычно, это достаточно сложные и дорогие ПЛИС. Дешевые, обычно этих "фич" лишены.

Ссылка на комментарий
Поделиться на другие сайты

Raymond,

Файл encoder1.ms9 будто симится, но без особого эффекта – виртуальные осциллографы ничего не показывают.

Забыл сказать, если еще интересно, попробуйте "откопипастить" схему на ИД3, из не работающего файла, в работающий (вместо схемы на мультиплексоре). Все остальное (эмулятор, осцилографы) там одинаковое.

Кстати, в схеме на мултиплексоре, введена еще одна оптимизация: если завести все D-входы тригеров, вместо "1", на выход частоты, через инвертор (там осталось еще парочка свободных вентилей, которые могут использоваться как инвертор) - схема станет нечувствительной к повторному фронту, в течении времени генерации импульса (т.е. к "дребезгу"): ни один D-тригер не сможет установится в "1", пока не кончится выходной импульс, ибо на D-входе будет "0". На симуляторе - тоже проверил.

Ссылка на комментарий
Поделиться на другие сайты

А вот если наоборот (владеете ПЛИС-ами, но не знаете принципов проэктирования цифровых устройств) ... у вас в лучшем случае, получится что-то жутко неоптимальное, использующее громадную ПЛИС, там где хватило бы маленькой, да еще и глючное наверняка. :evil:

(кстати эти же тенденции нынче наблюдаются и в программировании, иногда очень хочется засадить современных софтописателей на пару лет за ... ну скажем... 486DX4-100, (чтобы не быть совсем уж жестоким :mrgreen: ), для обучения ... приемам оптимизации кода, так сказать :evil:)

Да уж естественно знать основы проектирования ЦУ необходимо. Так же как программист должен сперва освоить ассемблер, дабы понимать сами основы программирования. А вот "мыслю, в категориях дискретной логики" - этого надо в меру, нужно использовать современные возможности...

Ссылка на комментарий
Поделиться на другие сайты

А меня особенно бесят всякие стеки протоколов или реализаций. Особенно, когда начинаешь ковырять новую тему, а там поработали поколения программистов. Вроде GUI в разных ОС.

В QNX, вроде бы всё понятно, запущен сервер графического интерфейса. Кажется, что проблемы многопоточности при такой реализации быть не должно. Ан нет: вылетает программа, да ещё и не отлаживается при этом.

Или... Да что там, половина IT Happens написана про проблемы стека технологий...

Кто-нибудь знает куда можно пастухом устроиться? Надоело программировать!

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

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

В качестве эмулятора энкодера был использован, ясное дело, микроконтроллер, который по таблице в прерывании таймера переключал выводы – все максимально просто. Осцилограмму можно увидеть во вложении. Другая осциллограмма демонстрирует фронты импульсов. Внизу – желтый клок, вверху голубым – изменение состояния направления. Как видим, фронты более чем удовлетворительны, не смотря на провода и на выводной монтаж. Длительность клока порядка 320 наносекунд, что более чем достаточно для вызова прерывания процессора. Как видно – тайминги очень красивы с разницей между фронтами порядка десятка наносекунд.

При разводке платы мне было удобно использовать незадействованные вентили в т.ч. для блокировки входных триггеров во время тактового сигнала. И еще два ушли в дело в связи с топологией. Таким образом, не осталось ни одного свободного логического элемента. К сожалению, фотографии со стороны монтажа нет, но через плату на просвет можно увидеть надпись «dr. Nimnull & Raymond Silvermane» ^_^

Короче говоря, я доволен и был рад взять участие в разработке этой схемы. ::smile

post-441-1296114975,71_thumb.jpg

post-441-1296114975,74_thumb.png

post-441-1296114975,79_thumb.png

Ссылка на комментарий
Поделиться на другие сайты

Raymond

Поздравляю. Вы весьма трудолюбивы. Ежели честно, мне было бы лень макетировать "за просто так", я ограничился симуляцией :-D

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

А можно поподробнее ? чтоли, как я предлагал в конце, подали задержанный тактовый сигнал, на D-входы тригеров, для запрета повторного запуска, покак не окончился импульс? Если не сложно - схему в студию.

Ссылка на комментарий
Поделиться на другие сайты

Поздравляю.

Спасибо. ::smile

Вы весьма трудолюбивы.

Если труд удовольствие – почему нет? Тем более, что собираюсь повозится с энкодерами и есть пару интересных идей. Если плата травится, светится, сушится с десятками других – это не такая уж большая трата времени. А финансово вообще копейки же, ибо логика.

Ежели честно, мне было бы лень макетировать "за просто так", я ограничился симуляцией :-D

Симуляция вам так же красиво покажет фронты и наносекундные задержки как реальная схема и хороший цифровой осциллограф? ::smile

А можно поподробнее ?

Сигнал тактов, который можно видеть на осциллограмме, инвертируется и подается на D-вход триггеров. Еще два инвертора, как я говорил, функциональной нагрузки не несут, так как их было удобно использовать при разводке, и не более того.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

К вопросу об энкодерах. Сейчас случайно наткунлся, то что использовалось выгладело примерно вот так, только дискретов было в 6 раз меньше.

Кстати для энкодера по приведенной ссылке, 6000рисок Х на 50об/сек - это 300кГц на фазу и 1.2мГц частота отсчетов :wink: (Это я для тех, кто предлагал программно формировать микроконтроллером :lol: )

Ссылка на комментарий
Поделиться на другие сайты

К стати, была не особо оригинальная идея о клавиатуре с градиентной чувствительностью к нажатию на клавиши (скажем 512 уровней чуствительности на каждую из 101й клавиши) - может кто-нибудь прикинуть, насколько сложно (и сколько будет стоить в массово-китайском исполнении). Для чего все это - очевидно, что в немалом числе приложений (3Д, игры, дизайн) возможность градиентного управления параметрами через силу нажатия на клавиши будет боооольшим плюсом:

1)В 3D-моделировании/дизайне/рисовании - размеры кистей, прозрачность, масштабирование, прокрутка, движение/позиционирование объектов и так далее.

2)В играх - еще очевидней: WSAD теперь будут отвечать не только за направление движения но и за скорость/ускорения этих самых движений; режимы огня, возможность выглядывать из-за угла (наклон) и так далее.

Собсно даже не понятно - почему досихпор нет такого.

Ссылка на комментарий
Поделиться на другие сайты

Lex4art

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

Кроме того, это будет напрочь несовместимо с существующими драйверами (хотя это конечно вопрос решаемый, но "режим совместимости" - эмуляции обычной клавы - необходим, иначе - это жуткий геморой)

Как отдельную (дополнительную) клавиатуру, с десятком другим кнопок, для игрушек например (да и для всего, к чему программисты приладят :wink: ), сделать можно, и не особо дорого. Более того приличные джойстики, давно имеют градиентное измерение по нажатию на сами рычажки - точно. Насчет вспомогательных кнопок - не скажу, но вполне возможно, что в каких-то моделях, сделано уже и по ним. С геймерскими клавками (это такие дополнительные, с урезанным набором клавиш, специально расположенными под 2 руки), я просто близко не общался, вполне возможно, что там тоже есть чтото подобное. Только 256 градаций, ИМХО, бред 16 - более чем хватит, кнопка - слишком грубая штука.

Кстати в тачскринах, где нет проваливания клавиши, в некоторых моделях такую фичу тоже делают.

Ссылка на комментарий
Поделиться на другие сайты

Не думаю что схема "пороговое усилие -> провал" является единственно возможной и правильной в нашем разнообразном мире :) (придумать другие способы сообщить чуствам что клавиша нажата - можно же; а эта схема просто оказалось наиболее простой и дешевой для текущих клавиатур). Сенсорные экраны и прочие вообще не предполагают такого - а за ними типа будущее пророчат :). Да и что-нибудь по месту тоже можно родить, хотя это усложнит конструкцию каждой клавиши.

Только 256 градаций, ИМХО, бред 16 - более чем хватит, кнопка - слишком грубая штука.

Неее, меньше 256 - смысл почти теряется. Тот же RGB - это 256 градаций на каждый цвет, прозрачность - также 256 градаций и так далее. Как цифрохудожник - на меньше чем 256 градаций не согласен (в планшетах у перьев уже за тысячу давно). Наши пальчики вполне 256 градаций (да и тысячу тоже) могут освоить.

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

Наверно с этого и начнется, наиболее экономный путь.

Ссылка на комментарий
Поделиться на другие сайты

Не думаю что схема "пороговое усилие -> провал" является единственно возможной и правильной в нашем разнообразном мире

Для клавиши - это самое удобное, что можно придумать.

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Да вряд ли - софт то разве что джойстики поддерживает, да и то только игровой. Это так, мечты-мечты :) - просто не понятно, почему это очевидное решение (и конкурентное преимущество) досих пор не реализовано даже в одиночных образцах клавиатур от какого-нибудь производителя, стремящегося выделится. Делают что угодно - превращая клавиатуру в полную хрень, да еще и дорогую (апофеоз - Лебедев со своей "Оптимус" за пару тыщ евро) - но не то что надо делать. Очевидно же, что взаимодействовать с мультимедиа-приложениями гораздо удобнее с градиентно-чуствительной к нажатию клавиатурой, нежели с древней "да/нет" клавой - но ... всем пофиг.

Ссылка на комментарий
Поделиться на другие сайты

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

Потому, что это решение, делает клавиатуру очень плохо употребимой, по ее основному назначению.

(Все извращения Лебедева со товарищи, не ухудшат основных функций , и кабы не цена, могли бы быть весьма полезны)

И производители об этом прекрасно знают. Например была пару лет назад разработана клавиатура, которая представляла из себя маленькую коробочку, которая прэцировала изображение клавиатуры на любую ровную поверхность и сканировала положение пальцев (кстати вот там, наверное реализовать вашу идею можно было бы вообще без дополнительных затрат, чисто программно). Девайс реально дошел до магазинов, и даже не очень дорого стоил (ЕМНИП 150$). Предлагалось это как аналог полноразмерной клавиатуры для для ноутбуков. Я читал обзор (ЕМНИП, в жур. Upgrade), так вот там тоже отмечалось, что всем бы девайс хорош, и даже пальцы лоцирует уверенно, и компактен НО отсутствие тактильного эффекта, превращает его в красивую игрушку....

Неужели вам не разу не приходилось работать с пленочными клавками, или тачскринами (пускай даже нормального размера) ? Должны же знать, насколько противно на них печатать, сколько-нибудь длинный текст (даже этот пост).

Ссылка на комментарий
Поделиться на другие сайты

Да хотя бы длинный "градиентный" ход + "клик" в конце сделали (чисто для печатанья текста) - так и такого нет. Т.е. менее удобных решений - несколько штук придумать(найти готовых) можно - но это ничего не меняет. Народу не нужны градиентные нажатия что-ли...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...