Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 17.11.2007, 00:48  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Ребята, давайте жить дружно..
(с) Кот Леопольд

Давйте будем терпимей и вежливей, вот написали – а оно ведь осталось... Отгуглится, простите на слове..
Реклама:
urry вне форума  
Непрочитано 17.11.2007, 13:03  
west329
Частый гость
 
Регистрация: 13.11.2007
Сообщений: 43
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
west329 на пути к лучшему
По умолчанию

Хочу расказать как я когдато собирал частотометр на АВР 2313 тогда ещё АТ90. Было это в далёком 2006 году, целью было создать вернее, выкинуть старый (на ВЕхххх) частотометр,и заменит на новый(внутрянку), на прецинзионном радиоприёмнике для ФМ радиостанции, дабы они по нему подстраивали свои передатчики.

сразу скажу что всё зароботало на ура и приёмник уехал к заказчику.

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

заводить надо не больше 10мгц, при учёте что частота кварц на КПУ в 2 раза больше.

измерял 2 таймерами. 16 битный таймер в режиме накопления импульсов, на него заводится измеряемый сигнал, 8 битный отмерял время накопления 16таймера, брал 0,1 секунду, но можно увеличить для точности.

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

исходники выложил бы с удовольствием, но сразу после конца проекта сдох винт и всё ушло прахом
west329 вне форума  
Непрочитано 01.12.2007, 11:22  
Panda_Y2k
Временная регистрация
 
Аватар для Panda_Y2k
 
Регистрация: 30.08.2005
Адрес: Ротовска йобласть
Сообщений: 84
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Panda_Y2k на пути к лучшему
По умолчанию

народ! Я тут тоже делаю частотомер на авр ат tiny2313
выложу в форум схему и программку, пообсуждайте, может кому и понравиться. у меня сразу вопрос. мс КС193ПЦ1 - делитель. ни кто не сталкивался, что-то делить не хочет. в остальном схема работает (и программа тоже)
Вот текст программы на с для указанной микры:
/************************************************** ***
Project : Freq_Counter
Version : 1.0
Date : 21.09.2007
Author : Panda
Frequnsy counter

Chip type : ATtiny2313
Clock frequency : 8,000000 MHz
Memory model : Tiny
Data Stack size : 32
************************************************** ***/

#include ‹tiny2313.h›
#include ‹delay.h›

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include ‹lcd.h›

//Global vaiable defination
char dg[10] = {'0','1','2','3','4','5','6','7','8','9'};
char fq[10];

float freq;

void display(void)
{//Вот тут будем отображать измеренные значения частоты
unsigned int tmp, tmp1;
unsigned char cnt;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("F (Hz) = ");
tmp = freq; //сделаем неявное привидение типа и отрежем дробную часть
cnt = 9;
while (tmp › 0)
{
tmp1 = tmp;
tmp1 = tmp1/10;
//lcd_putchar(dg[tmp-tmp1*10]);
fq[cnt] = dg[tmp-tmp1*10];
cnt--;
tmp = tmp1;
};
lcd_puts(fq+cnt+1);

delay_ms(500);
}


// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (TCCR1B == 0) //если таймер остановлен, тогда начнем счет
{ TCNT1H = 0; //Обнулим внутренние счетные регистры таймера
TCNT1L = 0;
TCCR1A = 0; //просто обнуляем, там ничего не должно быть
TCCR1B = 2; //Кдел = 8, 1 тик = 1 мкс
}
else
{
//Если таймер работал, то остановим его и вычислим частоту

TCCR1B = 0; //Остановили таймер
//В TCNT1H и TCNT1L должны находиться значения длительности периода
//из расчета 1 тик = 1 мкс
GIMSK &= ~(1 ‹‹ 6); //прерывание на время измерения можно запретить
freq = 1000000/TCNT1; //Частоту посчитал
display();
EIFR = 0x40;
GIMSK |= (1 ‹‹ 6); //разрешаем прерывание
};
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Port D initialization
// Func6=In Func5=In Func4=Out Func3=Out Func2=In Func1=Out Func0=In
// State6=T State5=P State4=0 State3=0 State2=T State1=0 State0=T
PORTD=0x21;
DDRD=0x1A;

TCCR1A=0x00;
TCCR1B=0x00;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x40;
MCUCR=0x03;
EIFR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// LCD module initialization
lcd_init(16);

// Global enable interrupts
#asm("sei")
//подождем, пока пользователь отпустит кнопку
lcd_putsf("Hello...");
while ((PIND &0x01) == 1);

while (1)
{
// Place your code here
if ((PIND & 0x01) == 1)
PORTD = 0x22;
};
}

и вот схема:
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/01122007/5351430.GIF" frameborder="0" name="fr6435953" scrolling="yes" width="470" height="1305" align="bottom"›[img]nuke/users_images/01122007/5351430.GIF[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›
Panda_Y2k вне форума  
Непрочитано 09.12.2007, 23:21  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию

У меня вопрос по программе из предыдущего поста

Как можно измерить частоту ниже 15Гц . У таймера максимальное значение 65535, если 1000000 поделить на 65535 то получим 15 . Как можно измерить частоту до 1.5Мц если МК тактируется от 8Мгц и у таймера стоит делитель на 8, получается максимальная частота 1Мгц.
Zemlyanov вне форума  
Непрочитано 10.12.2007, 09:19  
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

Ответ мне кажется очевидным - использовать прерывание по переполнению таймера, которое будет инкрементировать регистр рег_фулл, в таком случае общее количество импульсов будет рег_фулл* 65536 + таймер. По второму вопросу - использовать счетчики - даже 555 серия позволяет делить до 30 мегагерц - а микроконтроллер, когда значение счета получается меньше какого-то значения, переключает коммутатор с входа прямого счета - на вход с делителя.
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 10.12.2007, 22:29  
Panda_Y2k
Временная регистрация
 
Аватар для Panda_Y2k
 
Регистрация: 30.08.2005
Адрес: Ротовска йобласть
Сообщений: 84
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Panda_Y2k на пути к лучшему
По умолчанию

Программка только на стадии разработки. Ни кто не мешает менять коэффициент деления если значение частоты ниже или выше определенного порога, так что поставьте Кдел скажем 8 или 64 и считайте частоту ниже 15 герц, для частот выше 1,5 мгц есть делитель если кто не заметил кс193пц1, к стати в нем поганом и проблема, не делит что-то а должен делить частоты до 2 ггц. Кроме того в схеме есть коммутатор для переключения входов. В программе о нем ни слова, так что есть что добавлять, к стати я его передумал использовать, он дает какие-то пачки импульсов, видимо возбуждается. Частоту он считает нормально, сверял с китайским тестером, все совпадает. Видимо китайцы используют теже цифры . для большей точности я заменил Кдел = 1, и f=8000000/TCNT1. Вопрос собственно был с делителем, он не делил, хотя я уже нашел ошибки
1 Вход дифференциальный, так что второй вход через кондей на землю.
2 на плате не развел выводы управления Кдел.
После того как все исправил, все равно не заработало. на выходе делителя 0.
Может кто нибудь сталкивался с таким делителем??

-- Прилагается рисунок: --

Panda_Y2k вне форума  
Непрочитано 10.12.2007, 22:29  
Panda_Y2k
Временная регистрация
 
Аватар для Panda_Y2k
 
Регистрация: 30.08.2005
Адрес: Ротовска йобласть
Сообщений: 84
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Panda_Y2k на пути к лучшему
По умолчанию

продолжение

-- Прилагается рисунок: --

Panda_Y2k вне форума  
Непрочитано 10.12.2007, 22:30  
Panda_Y2k
Временная регистрация
 
Аватар для Panda_Y2k
 
Регистрация: 30.08.2005
Адрес: Ротовска йобласть
Сообщений: 84
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Panda_Y2k на пути к лучшему
По умолчанию

продолжение

-- Прилагается рисунок: --

Panda_Y2k вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Схема на частотомер smg123 Измерительное оборудование 5 08.09.2007 02:48
Частотомер Ч3-34А Modul-x Поиск схем. Делимся схемами 0 24.08.2007 23:00
Частотомер ЦД2120.1 Slava_shp Поиск схем. Делимся схемами 0 10.08.2007 21:18
Частотомер KLMZ Измерительное оборудование 4 12.01.2007 12:06


Часовой пояс GMT +4, время: 01:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot