Easyelectronics.ru

Электроника для всех
Текущее время: 26 май 2018, 01:35

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 03 июн 2012, 15:23 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
Есть подозрение что задача чисто учебная, и для воплощения в железе не предназначена. Нет?
Если погуглить, можно найти и схемы с уже готовыми проектами для Proteus.
Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты - http://kazus.ru/articles/427.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 03 июн 2012, 15:48 
Только пришел

Зарегистрирован: 02 июн 2012, 11:42
Сообщения: 9
anakost писал(а):
Есть подозрение что задача чисто учебная, и для воплощения в железе не предназначена. Нет?

Правильное подозрение :) По крайней мере пока нет цели воплотить в железе, может быть скоро появится такое желание.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 03 июн 2012, 15:59 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
Построение схемы классическое для микроконтроллеров C51. Погуглите на тему "измерение частоты методом досчета".
P.S. И если уж так необходимо применить С51, возмите что нибудь пожирнее, например AT89C51RD(ED)2. Он есть и в Proteus.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 03 июн 2012, 20:21 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
xard писал(а):
Первоначальная цель была написать программу на си для этого контроллера, но возникли проблемы с симуляцией схемы с использованием оригинальной прошивки.

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

На Си вообще задержки непредсказуемы, один и тот же листинг откомпилируется с разным временем выполнения, в зависимости от компилятора, установок оптимизации, и трудноучитываемого Влияния Фазы Луны на Котовы Яйца.

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

Применяемые же методы формирования цикла изменения с точно подсчитанным числом тактов программы на ассемблере, дает точность +- 1 единица последнего разряда (что типично для всех цифровых приборов) + погрешность кварцевого генератора. То есть фактически точность определяется кварцем и схемой его включения. Что при подгонке его частоты по эталонному источнику, даже без термостата, позволяет иметь долговременную погрешность порядка единиц герц на мегагерц измеряемой частоты (5 точных десятичных разрядов). С термостатом - еще лучше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 11:31 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2666
Откуда: Винница
Да можно и на C получить приемлемый джиттер - контроллер взять пошустрее. Обсуждаемые атмеловские 51 тут не в кассу - даже RD2 на максимальных 60 МГц даст 5 мипсов максимум, при негуманной цене (кхм, пардон - тут же модель. :) )
В качестве опорника, как компромисс между простым кварцем и дорогим и габаритным термостатированным генератором можно применить TCXO (термокомпенсированный кварцевый генератор, выпускаются в виде "гибридок". Компенсация там параметрическая - емкостями со строго определёнными ТКЕ). В индустриальном диапазоне температур их уход - несколько десятых Гц на МГц частоты.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 12:05 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
Katz писал(а):
Да можно и на C получить приемлемый джиттер - контроллер взять пошустрее. Обсуждаемые атмеловские 51 тут не в кассу - даже RD2 на максимальных 60 МГц даст 5 мипсов максимум, при негуманной цене (кхм, пардон - тут же модель. :)

Вначале про мипсы, С51RD2 имеют режим Х2, при котором рабочий цикл занимает 6 тактов генератора, LP51RD2 могут работать в режиме 1Мгц ~ 1MIPS.
Все это при снижении максимальной тактовой частоты, но это так, к слову.
Теперь про джиттер, вышеназванные МК имеют режим скоростного вывода PCA - формирование импульса заданной длительности. При этом формирование импульса происходит чисто аппаратно, программа только задает необходимый порядок работы внутренних блоков МК.
Так что похоронить старичков пока не получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 12:44 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
Итоги ... :) .... Похоже проблема работоспособности приведенной ТС схемы, в кривой симуляции периферии 8051 Proteus_ом. По крайней мере многие из режимов таймеров-счетчиков точно не работают, отсюда и проблемы ....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:04 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
ChipKiller писал(а):
Итоги ... :) .... Похоже проблема работоспособности приведенной ТС схемы, в кривой симуляции периферии 8051 Proteus_ом ....

Речь должна идти не о кривой симуляции, а о расхождении поведения железа с их абстрактной, идеальной моделью. Собственно точного соответствия никто и не обещал. Каждый инструмент хорошо работает только при правильном примении. Можно и шуруп забить молотком, и гвоздь закрутить отверткой.
ТС неплохо было бы почитать FAQ по протеусу от Halex07 на казусе. Там есть и про заморочки динамической индикации в протеус.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:07 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2666
Откуда: Винница
anakost писал(а):
Теперь про джиттер, вышеназванные МК имеют режим скоростного вывода PCA - формирование импульса заданной длительности. При этом формирование импульса происходит чисто аппаратно, программа только задает необходимый порядок работы внутренних блоков МК.
Так что похоронить старичков пока не получается.
PCA - конечно, полезная штука, но она есть не только у атмела, и за гораздо меньшие деньги. Просто атмел широко известен. :)
По долгу службы приходилось пользовать, например, почти полный аналог RD2 с МЦ в один такт и тактовой вплоть до 25 МГц - MPC82G516. $2 мелким оптом (25 шт.) Сейчас работаю с Silabs, там блок PCA есть практически во всех моделях, даже в "блошках" типа C8051F300.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:18 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
Katz писал(а):
PCA - конечно, полезная штука, но она есть не только у атмела, и за гораздо меньшие деньги. Просто атмел широко известен. :)

Согласен с вами, цены на С51 у атмела просто негуманные. И я их не советую, если бы можно было найти аналог pin-to-pin за более вменяемые деньги и доступностью, с удовольствием бы перешел. Я имею в виду производство, в своих поделках С51 не применяю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:26 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
anakost писал(а):
Речь должна идти не о кривой симуляции, а о расхождении поведения железа с их абстрактной, идеальной моделью. Собственно точного соответствия никто и не обещал.
...речь не о том, что Proteus плох, а о том, что приведенная схема в нем работать не будет и эта проблема не в коде...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:36 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
ChipKiller писал(а):
... и эта проблема не в коде...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 13:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
anakost писал(а):
Любой код можно подшаманить под абстрактную модель, при этом он будет на ура работать и на реальном железе.
...если только аппаратные возможности реализовать программно, но такое "шаманство" никому не нужно .... И еще раз - речь не о том, что есть "отличия", а о том что не работает ...
Если есть желание - попробуйте, например, запустить режим генерации меандра на T2 у AT89С52 .....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 14:01 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
ChipKiller писал(а):
Если есть желание - попробуйте, например, запустить режим генерации меандра на T2 у AT89С52 .....

Если честно, нет никакого желания. Понадобится на работе, запущу, и будет работать.
Меня просто удивляет нежелание людей воспользоваться чужим опытом. Строки из FAQ по протеусу от Halex07, часть первая, глава "Выводы по применению динамической индикации в Протеусе и в реальности".
Цитата:
В-третьих: для того, чтобы динамическая индикация при симуляции выглядела реально, нам
необходимо предусмотреть кратковременные паузы при смене разрядов, исключающие наползание
разрядов индикации. Паузы могут быть достаточно короткими (в районе 10 микросекунд), но их
присутствие необходимо. Первым на эту особенность обратил внимание dosikus и материал по
этой теме был в одной из веток форума Kazus


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 14:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
anakost писал(а):
Меня просто удивляет нежелание людей воспользоваться чужим опытом. Строки из FAQ по протеусу от Halex07, часть первая, глава "Выводы по применению динамической индикации в Протеусе и в реальности".
... только причем здесь динамическая индикация??? ... разве чтобы поддержать беседу :)
Схема "честно" выводит строку HELLO, а вот отображать частоту она не будет из-за того, что не происходит счет импульсов .....
anakost писал(а):
Понадобится на работе, запущу, и будет работать.
... если перепишете модель AT89С52, то да ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 15:12 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
ChipKiller писал(а):
Схема "честно" выводит строку HELLO ...

Поделитесь честным проектом, а то у меня не выводит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 15:23 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
anakost писал(а):
Поделитесь честным проектом, а то у меня не выводит.
... проект выкладывал ТС в своем втором сообщении


Вложения:
freq.GIF
freq.GIF [ 30.86 Кб | Просмотров: 9001 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 17:42 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
Тогда понятно, почему мы друг друга не понимаем. Загрузил проект из 2 поста ТС (02 июн 2012, 20:29).
Вывод прилагаю. Желтый горчичник, на индикаторе пробегают 0, L, H. И так по кругу.


Вложения:
TC_2.png
TC_2.png [ 8.18 Кб | Просмотров: 8991 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 04 июн 2012, 22:02 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
anakost писал(а):
Тогда понятно, почему мы друг друга не понимаем. Загрузил проект из 2 поста ТС (02 июн 2012, 20:29)....
не знаю, что было непонятного в моем сообщении
ChipKiller писал(а):
...По крайней мере многие из режимов таймеров-счетчиков точно не работают, отсюда и проблемы ...
... предполагал, что участвующие в обсуждении хотя-бы разобрались в коде - таймер-счетчик программно настроен на счет внешних импульсов и с какого бока здесь индикация совсем непонятно.....
по поводу проекта из 2 поста ТС (02 июн 2012, 20:29). - именно этот проект и выводит сообщение при небольшом "допиливании" (а именно немного изменил знакогенератор, чтобы не зависеть от подключения к сегментам дисплея) о чем написал выше ...


Вложения:
freq.JPG
freq.JPG [ 42.59 Кб | Просмотров: 8977 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 05 июн 2012, 09:55 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3608
Откуда: г. Липецк
ChipKiller писал(а):
...не знаю, что было непонятного в моем сообщении ...

ChipKiller писал(а):
...по поводу проекта из 2 поста ТС (02 июн 2012, 20:29). - именно этот проект и выводит сообщение при небольшом "допиливании" ...

непонятным было ваше утверждение о работоспособности индикации в проекте ТС, "долиленный" вами проект так и не был представлен в этом топике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 05 июн 2012, 11:13 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
Цитата:
непонятным было ваше утверждение о работоспособности индикации в проекте ТС...
это не утверждение, а факт - сообщение действительно выводится при старте программы
anakost писал(а):
Просто разбираться с предложенным кодом не сахар, стиль написания напрягает, и главное это никому не нужно.
anakost писал(а):
Если честно, нет никакого желания. Понадобится на работе, запущу, и будет работать.
... чему верить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 07 июн 2012, 02:34 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 647
Откуда: Херсон
Размялся. А то мозги ...
Вот архивчик с проектиком для RadAsm и Proteus частотомера ra4nal'а.
Вложение:
FMetr_2012-06-07_00-08-00.zip [74.88 Кб]
Скачиваний: 499

Как это работает.
http://youtu.be/rpT3kH0T910

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: частотомер на at89c51
СообщениеДобавлено: 07 июн 2012, 03:18 
Только пришел

Зарегистрирован: 02 июн 2012, 11:42
Сообщения: 9
S_Alex, спасибо за помощь :) Ваш код более понятен чем у ra4nal'a. Буду разбираться


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB