Попроще врятли, что может быть проще 10 разрядного счетчика? Вместо того чтобы подавать один импульс надо будет загружать в регистр 8 разрядов, перед этим не забыв обнулить регистр сегментов. а тут все аппаратно реализуется...
а их обнулять-то и не требуется послал пакет сегменты+позиция (16 ти), дал импульс защелки в выходной регистр и жди следующего пакета кроме того вся предварительная обработка опять же в МК делается
Все же мне кажется что требуется. Даже если на сегменты и знакоместо подашь напряжение одновременно, транзисторы не закроются достаточно быстро - микросекунд достаточно чтобы ток по транзисторам продолжал течь еще от прошлого состояния, итого новый транзистор открылся быстро а старые закрываются долго - на индикаторе будет "тень". Чтобы не гадать будет или не будет эта тень проявляться проще перед переключением занулить сегменты перед переключением и пока будешь формировать импульсы для загрузки транзисторы успеют переключится. Вот и у меня так сделано - выставили импульс на счетчик и вместе с ним обнулились регистры и начался процесс отключения транзисторов сегментов, пока будет сформирован импульс для переключения счетчика на следующий сегмент - транзисторы уже закрылись. Причем, чем в более сильном насыщении(ток базы) находились транзисторы тем дольше они закрываются. Впрочем, наверно можно обойтись выводом "гашения" HC595 - перед сменой данных отключать выходы регистров и включать только через некоторое время после загрузки новых.
Да, и тогда ведь прийдется программно реализовать бегущий "1", и ограничить количество разрядов до 8 дабы не ставить 3-ю микросхему...
это совсем разное понимание обнуления - есть "общий сброс по включению питания" и есть операция гашения (по сегментам или по позиционным ключам) операция гашения - запись в соответствующм месте уровня гашения одно дело, когда эта начинка на "рассыпухе" делается - там надо жестко привязывать к микросхемам - другое, когда все решается программой МК или раздельный алгоритм подачи двух тетрад сегментного кода+ формирование импульса для дешифратора (и все сие тянет на 7 выводов мк) или одним пакетом весь код (сегменты+позиция) на максимум 5 выводах чего касательно 10 позиций... дак кто мешает "бегущую строку" организовать? или еще чего наворотить - главное в удобстве монтажа (простота печатки) и простоте работы
Частотомер в виде "бегущей строки" ради простоты монтажа... это надо было еще такое придумать! Для приборов важно прежде всего удобство считывания показаний, хорошо когда все цифры перед глазами и никогда не меняют позицию(перенос десятичной точки, автоматическое переключение поддиапазонов и т.д.) Зачем что-то делать программно когда это возможо сделать аппаратно. Я конечно понимаю, вроде бы как в данном случае от программиста много не убудет, но все же... надо хоть чуть чуть тренировать мозги, может где-то такое решение позволит сократить длительность программных манипуляций, где они будут критичны к времени выполнения.
Но правда, обычно достаточно 8 цифр... 9 знаков это уже будет частота до 1ггц с точностью до 1гц. Такую точность обеспечить на ширпотребовских элементах нереально, но всегда приятно когда цифры не меняют свою позицию и не нужно переключать поддиапазоны. Это всегда нужно знать - самый лучший кварц все равно не обеспечит точность лучше чем 6 значащих цифр. А в реальности стоит рассчитывать лишь на 4. Чтобы добиться лучших показателей необходимо предпринимать дополнительные меры. И самое главное - никогда не трясти кварцевый резонатор - после удара он меняет свою частоту на уровне 5-6 знака.
Карма: 14
Рейтинг сообщений: 37
Зарегистрирован: Чт дек 11, 2008 14:52:26 Сообщений: 11492 Откуда: град Нижний
Рейтинг сообщения:0
Alexeyslav писал(а):
Зачем что-то делать программно когда это возможо сделать аппаратно
Это любимая фраза схемотехника, которому доверили ещё и программу написать..
Надо в совершенстве знать и то и другое, и тогда задача будет решена наиболее оптимальным способом.. То, что лучше делать аппаратно - делается аппаратно, а что программно - делается программно..
Как говориться "Кессарю - кессарево, а слесарю - слесарево"..
_________________ Между людьми возникает напряжение, если у них разный потенциал...
Надо в совершенстве знать и то и другое, и тогда задача будет решена наиболее оптимальным способом.
Точно подмечено!
Alexeyslav писал(а):
Но правда, обычно достаточно 8 цифр... 9 знаков это уже будет частота до 1ггц с точностью до 1гц.
Согласен, 1Гц можно пренебречь. Буду делать плату на 8 разрядов.
А Триггеры Лейтенанта Шмидта 40106 в Вашей схеме, нужны для защиты регистров? Почем они обведены под одно крыло с индикатором, их реально ставить надо, или они там чисто условно?
Последний раз редактировалось Vicont Сб фев 11, 2012 16:24:07, всего редактировалось 1 раз.
в дальние 90-е "на спор" сделал частотомер "на рассыпухе" - достал один знакомый, дескать "у всех есть , а тебе слабо?" - 8 позиционный индикатор с динамикой, запоминанием информации, и прочее и прочее... схемотехника оригинальная - подобных решений такого плана тогда не существовало НО... за бугром уже тогда были подобные изделия на 1-й!!! микросхеме (по публикациям), да и первые микроконтроллеры на подходе были, а моя схемка, кабы склероз не подвел, была где-то на 45 корпусах собрана... хош и работала, но уже "морально устарела" - единственная польза - приобретенный опыт разработки как схемотехники, так и монтажа кстати, для удобства пользователя обычно применяется автоматический выбор пределов измерения со специальной позицией, отображающей размерность(множитель) измеряемой величины МГц/КГц/Гц
Последний раз редактировалось BOB51 Сб фев 11, 2012 16:27:28, всего редактировалось 1 раз.
Карма: 14
Рейтинг сообщений: 37
Зарегистрирован: Чт дек 11, 2008 14:52:26 Сообщений: 11492 Откуда: град Нижний
Рейтинг сообщения:0
Vicont писал(а):
на 561ЛН2 заменить можно?
Теоретически - да.. Но на практике 7LED-индикаторы потребляют гораздо больше, тем более при динамической индикации, чем могут обеспечить микросхемы КМОП-стандартной логики..
Данная схема нарисована только для отработки схемы и программы в эмуляторе.. В "реальном" воплощении индикатор необходимо подключать через транзисторы и буфера.. Если конечно не используется какой нить АЛС318-й индикатор..
_________________ Между людьми возникает напряжение, если у них разный потенциал...
Они там чисто для симуляции. Чтобы правильно работал индикатор, ну нет в протеусе индикатора с логическим входом.
Я уже говорил, что применен индикатор с кассового аппарата. Там уже прямо на платке с индикаторами имеются транзисторные ключи. И сегмент и разряд выбираются лог.1, поэтому чтобы правильно горел индикатор в протеусе я и поставил инверторы первые попавшиеся. Хотя наверно не стоило - из-за них наверно возросла нагрузка на аналоговую часть симуляции.
В схеме нужен только ОДИН инвертор, от которого можно избавится разделив выводы сигналов загрузки в регистр и немного переделав программу.
Распределение сегментов тоже условное, их всегда можно в программе переназначить как это будет удобно для разводки на плате. Ну и собственно не забываем про необходимость подключения кварцевого резонатора к микроконтроллеру по даташиту, и цепи сброса - для симулятора они не представляют интереса поэтому и не рисовал. Если в реальности не подключить цепь сброса - контроллер может сбрасываться от любого "шороха статики" рядом.
И еще одну вещь заметил - в питании стоит танталовый конденсатор, он не сразу разряжается на нем долго держится заряд порядка 1В, если в это время подать напряжение на контроллер он начинает "глючить", надо внимательно пересмотреть программу - где-то видимо есть место где предполагается наличие "0" в регистрах после сброса.
ну нет в протеусе индикатора с логическим входом...
Протеус не одинок...
Alexeyslav писал(а):
В схеме нужен только ОДИН инвертор, от которого можно избавится разделив выводы сигналов загрузки в регистр и немного переделав программу.
А какой смысл тогда в использовании регистров? Насколько я понимаю, их ставят для разгрузки портов МК. В данном случае требуется 6 каналов (4 на данные + 2 на управление), если убрать инвертор, надо уже 7 каналов (4+3). Может тогда уж и регистры убрать, и просто соединить 8 каналов МК с сегментами через буфер... свободные поры ведь есть... Или это сильно усложнит программу? алгоритм ведь кардинально изменится...
Не хватает портов. 16F628 имеет довольно мало выводов. 4 на управление надо будет, и 8 на сегменты. Но там если 8 выделить на сегменты остается свободным только 3 порта. 2 порта используется для счета импульсов! у ATtiny2313 все же побольше выводов, на нем уже можно будет реализовать такую схему без регистров. Да что там ... если не пожалеть и раскошелится на ATMEGA8 то можно реализовать частотомер даже без использования счетчика разрядов. Но это просто не спортивно
А если попробовать реализовать его на быстродействующей ПЛИС, то реально сделать частотомер до 500Мгц без предделителя на специальных высокоскоростных счетчиках.
Кстати, вот давно листал справочники и находил такую интересную отечественную микросхему как десятичный 10-разрядный счетчик с динамической индикацией. Там по сути это все было реализовано и счет и индикация - только простой схемой управления добавляй и будет счетчик-частотомер. Но увы, микросхема по старым технологиям и работает до 1МГц.
так да не совсем... у PICов функционал по портам раскидан (в отличии от AVR&mcs51) там 8 бит сегментов на RB0-RB7 при использовании Т/С1 выдать без лишних проблем программисту некоторый труд представит, а в другом случае разводка печатки не слишком удачна будет. наиболее удобен вариант с PICом в качестве обработчика входного сигнала и управления предделителями на спецмикросхемах, а в качестве матобработчика и контроллера клавиатуры/дисплея использовать ATtiny2313
у PICов функционал по портам раскидан (в отличии от AVR&mcs51) там 8 бит сегментов на RB0-RB7 при использовании Т/С1 выдать без лишних проблем программисту некоторый труд представит...
Правда? Пока я в такие тонкости еще не вникал... Просто я встречал во многих устройствах на PIC16F628 подключение сегментов индикатора напрямую к порту В. К примеру этот простой термометр, с ним даже исходники есть, возможно они помогут...
BOB51 писал(а):
в другом случае разводка печатки не слишком удачна будет....
Конечно порт B можно использовать под сегменты, но проблема в том что вход таймера/счетчика под номером 1 находится аккурат на этом порту. Используя его как вход, сегменты на этот порт уже не подключишь все - надо будет выводить отдельный сегмент через другой порт. А это уже программный изврат нужен и т.д. и т.п.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения