Частотомер-конструктор F51.12

Обсуждаем цифровые устройства...
Ответить
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Alexeyslav писал(а):Но тогда возникает вопрос про
А это был способ стартануть твою "думалку".. 8)
Естественно, можно хоть все знакоместа засветить, только зачем.. :)

Этот 9-бит автоматически синхронизирует схемы на вывод, начиная с младшего знакоместа..

Это, как в МИДИ-протоколах: начало пакета, есть единичка в старшем бите..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

А, что-то я не доглядел... переключение разряда происходит до того как зажгутся сегменты, или после? а предыдущие при этом гасятся? Нужен ведь алгоритм когда сегменты сначала гасятся потом переключается разряд, и только после переключения или одновременно с ним засветить сегменты, иначе будет наблюдаться еле заметный но неприятный след. наверно это все же учтено?
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Alexeyslav писал(а):до того как зажгутся сегменты, или после?
Зажигание следующего знакоместа и выдача информации в его разряды происходит одновременно..
Alexeyslav писал(а):будет наблюдаться еле заметный но неприятный след.
Ни разу не замечал что-то подобное..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

а на 595х этого и не произойдет - смена данных проводится одновременно со сменой позиции (сигнал перезаписи кода из накопителя в выходной регистр он же тактовый для позиционного счетчика/дешифратора)
хоша ... я б в той схемка еще кой-чего добавил для абсолютной точности выдачи данных...
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Уважаемые коты, все таки по какой схеме мне лучше собирать???
Конечно, хочется, чтобы все по уму и на совесть было, но опять дилемма:
74HC595 я уже прикупил, могу и на них, только вот с прошивкой как быть? сам я не справлюсь... :dont_know:
Alexeyslav предложил свой вариант с исходником, который только чуть подправить надо, а оказалось - это садомазохизм... :roll:
BOB51 писал(а):хоша ... я б в той схемка еще кой-чего добавил для абсолютной точности выдачи данных...
Интересно узнать Ваши соображения :)
Контактная информация:
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Ну так и мою схему/исходник переделать под 595 можно. надо просто часть где идет вывод на два регистра переделать под последовательную выдачу данных в регистр. ну там цикл на 8 бит, сдвиг вывод в порт и импульс сдвига для регистра...

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

Код: Выделить всё

LOAD_COL ; PB5 - данные, PB4 - такт, PB0 - сброс, PB1 - защелка.

; BCF STATUS,RP0 ;Выбор банка 0
MOVWF COL_DAT ;Выводимые данные сохраним для дальнейших действий
MOVWF COL_DAT2 ;Сохранить хначение чтобы можно было временно погасить индикатор. 

BSF PORTB,RB0 ; сигнал сброса =1 
NOP
BСF PORTB,RB0 ; сигнал сброса снят =0 
BСF PORTB,RB1 ; подготовить защелку

MOVLW 8  
MOVWF COL_COUNT        ; цикл 8 бит

LC_LOOP:
RRF COL_DAT

BSF PORTB,RB5 
BTFSS STATUS, C      ; перенос есть? передаем 1
BCF PORTB,RB5        ; иначе - 0

; формируем импульс загрузки данных...
BСF PORTB,RB4               ;Устанавливаем 0 в RB4
NOP
BSF PORTB,RB4               ;Устанавливаем 1 в RB4
NOP
BСF PORTB,RB4               ;Устанавливаем 0 в RB4

DECFSZ COL_COUNT
GOTO LC_LOOP

BSF PORTB,RB1 ;  защелкиваем данные во внешнем слое регистра.

RETURN
Только я не уверен в полярности управляющих импульсов 595-й, этот момент надо бы уточнить.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

а надо было изначально программу делить на хотя-бы два независимых фрагмента - отдельно обработчик дисплея/кнопок( входной код с контактов/датчиков), включая туда и выдачу управляющих внешними нагрузками сигналов, и собственно программу обработчика данных частотомера 8)
иначе "накладок" не избежать - в схеме как минимум два независимых тайм - интервала - один для обслуживания интерфейса пользователя (ввод/вывод), а второй для формирования измерительного окна
скорее всего при едином генераторе квантов времени эти программки взаимозавязаны потянеш один шнурочек... :facepalm:
уж легче все заново нарисовать и запрограммировать :)))
допустим такое :
хотим - частотомер...??
а чего он мерять то должен?
период, частота(гц, кгц, мгц, длительность) =?
амплитуда входного сигнала =?
диапазон измерений =?
форма представления информации =?
необходимость в дополнительных сервисных функциях =?
имеем в наличии следующие детали
микроконтроллеры =?
рассыпуха =?
индикаторы =? (жки, светодиоды тип/схемы подключения/характеристики)
куда запихнем?
параметры внешнего вида(исполнения) устройства =? (корпус/встраиваемый допустимые габариты)
проработаем возможности и удобство имеющихся в наличии МК для нашего мыша
вот после анализа всего этого сообразючим схемку
затем список чего прикупить
анализ рынка деталюшек
скорректируем схемку после ЖАБЫ ЗЕЛЕНОI
собрали детальки в коробушку
набросаем печатку
изготовим платку и соберем макет
приступим к "правке мозгов" для МК
наконеч зальём программу и... приступим к устранению ошибок в программе и схемке
:tea:
ежли интересно- могу позлодействовать, но только в пределах вышеизложенного :beer:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Alexeyslav писал(а):Ну так и мою схему/исходник переделать под 595 можно. надо просто часть где идет вывод на два регистра переделать под последовательную выдачу данных в регистр. ну там цикл на 8 бит, сдвиг вывод в порт и импульс сдвига для регистра...
Хорошо, приму к сведению. Думаю в итоге должно получиться нечто среднее...
BOB51 писал(а):ежли интересно- могу позлодействовать, но только в пределах вышеизложенного :beer:
Конечно интересно :))
BOB51 писал(а):уж легче все заново нарисовать и запрограммировать :)))
Кому как... :)
BOB51 писал(а):хотим - частотомер...??
а чего он мерять то должен?
период, частота(гц, кгц, мгц, длительность) =?
диапазон измерений =?
форма представления информации =?
Частотомер.
Конечно измерение только частоты за глаза хатит, период ведь в одно действие рассчитывается. Но если индикацию периода не сложно реализовать то в принципе я не против...
диапазон измерений: 10Гц - 999мГц (хотя возможно я погорячился... думаю если делить на 640 точности до 10Гц не добиться)
форма представления информации: 8 разрядов, измерение в кГц, с двумя знакми после десятичной точки.
К примеру максимальное отображаемое значение должно быть: 999 999,99 кГц
BOB51 писал(а):амплитуда входного сигнала =?
Об этом я не здумывался... :dont_know:
BOB51 писал(а):необходимость в дополнительных сервисных функциях =?
Это какие к например? :roll:
BOB51 писал(а): имеем в наличии следующие детали...
Микроконтроллеры: PIC16F628a, ATTiny2313 (как в DIP, так и в SOIC корпусе) и ATmega8.
Сам я склоняюсь к PIC16F628a, т.к. у мя имеется к ним программатор EXTRA-PIC и хоть не большой но успешный опыт работы. Для AVR у мя только проггер Altera Byte Blaster и опыт работы в пределах обучалки с нашего прекрасного сайта, но в принципе, если потребуется я могу осилить и их.

Рассыпуха: 74HC595, 1533ИР8 (как аналог 74xx164 в схеме МитяРы), буферы 74HC244 и 74HC245 по 1шт., делитель на 640 193ПЦ1 с потолком до 1ГГц, многое другое из 155, 555, 176 и 561-х серий...
Вообще в моем городе Кургане без проблем можно купить отечественные микры почти любой марки, а вот с буржуйскими гораздо сложнее... только заказом по почте.

Индикаторы светодиодные по 4 разряда каждый. Марки KINGBRIGHT CA56-12GWA / CC56-12SRWA по неск.штук.
BOB51 писал(а):куда запихнем?
параметры внешнего вида(исполнения) устройства =? (корпус/встраиваемый допустимые габариты)
Это уже вторично. Было бы устройство, а корпус под него найдется. В крайнем случае, можно вообще без него обойтись.
Что касается размеров, то они определяются размером индикаторов: два в ряд 105мм в ширину будут.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

хммыршш...
посморю сие на досуге... 8)
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

набросаем печатку
изготовим платку и соберем макет
приступим к "правке мозгов" для МК
Ага, и на этом последнем этапе как правило оказывается что контроллер не тянет задачу с такой схемотехникой... поэтому, этот этап лучше пройти несколько ранее, уж точно до изготовления платы.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

а кто сказал, что на этом все закончится? :cry:
да и насчет "тянет/нетянет" - всегда изначально думать надо - задолго до схемки (не говоря уже про печатку и монтаж) :tea:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Иногда это невозможно пока не раскрутишь идею до мелочей.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

абсолютно неверно!
если конечно не менять начальную задачу по принципу "аппетит приходит с едой" 8)
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Где ж ты видел нормального разработчика без аппетита?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

а вот сначала доведи "до ума" то чего придумал, а затем уж под аппетит (и лишние бабасики) всяческие вариации лепи!
:tea:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Так не интересно.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Начнем с несколько «отвлеченных» вопросов – а что собственно говоря мы можем измерить?
Первый вариант – из внутренней тактовой частоты формируется измерительный интервал, за время действия которого подсчитываются входные импульсы неизвестной частоты.
Второй вариант – внутренний тактовый генератор формирует импульсы с эталонной длительностью, а период внешнего сигнала формирует измерительный интервал.
Пока будем считать, что внешний сигнал представлен «идеальными» импульсами ТТЛ-уровня…
В обеих случаях для формирования тактовых импульсов микроконтроллера потребуется хотя-бы обычный кварцевый резонатор (чем выше частота- тем лучше).
ATTiny2313 допускает работу с кварцем 20МГц с формированием внутренних тактовых импульсов с той же частотой и выполнением одной команды за 1 ТИ.
PIC16F628 допускает работу с кварцем 20МГц и формированием внутренних ТИ на этой же частоте, однако… для исполнения одной команды требуется 4 ТИ и такой же длительности будет «эталон» подаваемый на вход таймер/счетчиков.
В результате имеем минимальную длительность эталонных интервалов :
Тинька – 50ns, пик -200ns т.е. они уж никак без внешних пердделителей не разберутся с подсчетом интервалов меньше собственных ТИ (это же и минимальная погрешность измерительного окна) … мня… 20МГц/5МГц и не более (а скорее и того меньше учитывая реакцию на прерывание, всяческие дополнительные задержки и прочие пакости)…
Так что даже «влоб» та схемка больше чем 20000000Гц (2000,00КГц)обслужить не в состоянии .
Но вроде там есть предделители перед счетныим входами?
Посмотрим… у аврки - …упс… а он только внутренний эталон удлинить может…а для счета с внешнего входа действует формула Fclk_io/2,5 = 50ns*2,5=125ns… всего-то 8МГц…
А чего там у пика?... предделитель на максимум 8 … вроде уже интереснее, там еще асинхронный вход счетных импульсов… ИК :shock: … а вот вам(нам) фигура17-8 с табличкой 17-8 (DS40044G-page 147-148) для разнообразия… навскидку в наилучшем режиме период входного сигнала 30+60ns=90ns (11111111,11Гц) т.е теоретически (* These parameters are characterized but not tested. ) 11111КГц еще нацарапать можно… И НЕ ВЫШЕ… :cry:
Остальное можно получить с применением внешних управляемых предделителей, либо другими «хитрыми» способами (а-ля измерение промежуточных частот…)
мож я чего "усклерозил"? :facepalm:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

BOB51 писал(а):ATTiny2313 допускает работу с выполнением одной команды за 1 ТИ.
PIC16F628 допускает работу с исполнением одной команды требуется 4 ТИ
А почему оно так получается? я думал, что любой контроллер выполняет одну команду за 1 ТИ :roll:

Выходит предпочтительнее на Тиньке делать?

И еще... Почему в схемах на Пиках измеряемый сигнал подают сразу на 2 входа, а в АВРках на 1?
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

в ПИКе предделитель 8 бит, так что нормально там и 20Мгц померять.

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


Насчет тактов... это не совсем верно, Atmel выполняет каждую команду за 2 такта - префетч и исполнение, но за счет конвеера префетч следующей команды выполняется с исполнением текущей - за счет этого в линейном коде достигается скорость выполнения 1 инструкция за такт.

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

Но интересное начинается когда используется условный переход... при этом конвеер перестает приносить пользу и игнорируется, а на выполнения инструкции условного перехода уходит целых 2(иногда 3) такта и 2 такта на выполнение первой инструкции сразу после перехода.

В некоторых случаях, из-за особенности системы команд некоторый алгоритм на PIC может выполнятся с такой же скоростью как и у Атмела.
Так что сравнивать быстродействие только лишь по тактовой частоте тут очень непросто.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

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

Вернуться в «Цифровая техника»