Например TDA7294

Форум РадиоКот • Просмотр темы - Генератор из arduino
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 15, 2025 04:04:37

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 174 ]    , , , , 5, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 15:14:55 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 02, 2009 17:46:04
Сообщений: 287
Откуда: Крым
Рейтинг сообщения: 0
чтобы просто
лучше режим FPWM...
там можно:
-менять частоту (ICR).
-менять скважность (OCR).

Так мне и нужна частота 25300Гц. FPWM я пытался визардом CVAVR настроить, он паразит мне 32кГц выдает, ошибка 19%. СТС частоту точнее выдает, с погрешностью 0,6%
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 16:22:17 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
допустим мне нужны часы.
для этого мне надо чтобы таймер тикал каждую секунду.
т.е. мне нужна частота таймера = 1 герц.

для этого берём:
-ардуино. (мега328)
-таймер номер 1.
-режим номер 14. (быстрая ШИМ с верхним пределом счета ICR).

Код:
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 31,250 kHz
// Mode: Fast PWM top=ICR1
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x02; //WGM11=1, WGM10=0
TCCR1B=0x1C; //WGM13=1, WGM12=1 //8.000.000 Hz/256 = 31250 Hz 
TCNT1H=0x00;
TCNT1L=0x00;

//unsigned int kor=31250;   // коррекция часы
ICR1H=(kor>>8);//регистр захвата - верхний предел счета = 31250 Hz / 31250 Hz = 1c
ICR1L=kor;     //регистр захвата - верхний предел счета = 31250 Hz / 31250 Hz = 1c
//ICR1H=0x00;  //регистр захвата - верхний предел счета = 31250 Hz / 31250 Hz = 1c
//ICR1L=0x00;  //регистр захвата - верхний предел счета = 31250 Hz / 31250 Hz = 1c

OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;


Итого:
-тактовая частота ардуино (мега328) = 8.000.000 Hz
-делитель ставим на 256. Получаем: 8.000.000 Hz/256 = 31250 Hz
-задаём верхний предел счёта ICR = 31250.
-получаем частоту таймера ровно 1 герц.
:tea:
-если записать в OCR половину частоты таймера 31250/2=15625.
то получим на выходе чистый меандр частотой ровно 1 герц (и скважность 0,5).
:tea:

аналогично можно настроить таймер практически любую частоту.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 17:43:34 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
Рома, такие часы даже начинающие сейчас не делают.
Кварц плохой. Зачатую даже не кварц, а керамический резонатор. Неточный, нестабильный.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 18:17:06 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
да и я б не утверждала, что любую частоту....
Любую, но с погрешностью....
например, 987.0000 Гц со скважностью 0,5 чисто на таймере не получить....
Будет или 987.045Гц, или можно динамически играясь верхним пределом, например, в прерывании, получить среднюю частоту 987 герц, но с джиттером. И скважность там не будет 0.5
И чем выше будет требуемая частота , тем больше может быть погрешность.

_________________
Белая и Пушистая


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 18:35:50 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
ну начинается))
:?
-кварц не тот...
-ардуино не та...
-и вообще алгоритм неправильный...
:facepalm:
всё... закидали тапками))
:)))
это был самый простой вариант.

ну предлагайте свой вариант.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 21:18:45 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
допустим мне нужны часы.

Самый бюджетный вариант. Ядро от intrc, таймер 2 в асинхронном режиме с часовым кварцем.
Ну и резервное питание CR2032 через Шоттки и sleep режим при этом.
Китайцы ставят ds1302 c CR1220 и МК какой подешевле, обычно из 8051 семейства.
Но ты ещё и об индикации не забывай. Наиболее дешево обычные светодиоды. А лучше цветные. Через драйверы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 21:57:58 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 02, 2009 17:46:04
Сообщений: 287
Откуда: Крым
Рейтинг сообщения: 0
Самый бюджетный вариант. Ядро от intrc, таймер 2 в асинхронном режиме с часовым кварцем.
Ну и резервное питание CR2032 через Шоттки и sleep режим при этом.

Как дошло то до часов, изначально нужно было получить противофазный сигнал на двух выводах, для получения частоты 25300Гц. :shock: для питания ультразвукового излучателя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 22:11:26 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 889
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6194
Откуда: Minsk
Рейтинг сообщения: 0
А если меандр будет со скважностью не 2, а к примеру 1,999 - мир рухнет? :))
Если есть пара свободных пин (пинов?), то чтоб не зас@орять себе мозги хитросплетениями таймерных режимов - я бы в прерывании синхронно инвертировал бы эту пару бит путём XOR. И заняло бы у меня написание этого куска кода секунд 5.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Ср авг 06, 2025 22:53:37 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Jack_A, если МК умеет, то можно без ксора, писать единичку в PIN - оно инвертирует соответствующий бит в PORT... Причем, если писать несколько единичек - то будет атомарное изменение состояния

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 00:20:29 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 02, 2009 17:46:04
Сообщений: 287
Откуда: Крым
Рейтинг сообщения: 0
В принципе я определился со своими хотелками, точно генерить частоту получится только в СТС или Normal режиме, но получить аппаратный противофазный сигнал не получится. Можно только в режиме Normal программно передергивать выходы. Всем спасибо, кто попытался помочь :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 08:49:36 
Друг Кота

Карма: 64
Рейтинг сообщений: 1020
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4369
Откуда: Ижевск
Рейтинг сообщения: 0
Ассемблер упорно генерирует число 9d. Почему у вас заносится 4e непонятно.
LDI LOW(8000000/25300/2-1)
OUT OCR0A, R17
OUT OCR0B, R17
Для получения противофазных импульсов попробуйте подключить один из каналов к выходу битом FOC0B, который специально для этого предназначен.
LDI R17,1<<COM0A0|1<<COM0B0|1<<WGM01
OUT TCCR0A, R17
Ldl r17,1<<FOC0B|1<<CS00
OUT TCCR0B, R17


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 09:02:18 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
Как дошло то до часов, изначально нужно было получить противофазный сигнал на двух выводах, для получения частоты 25300Гц. :shock: для питания ультразвукового излучателя.

До часов - это Роман в сторону увёл.)
А если один из выходов OCxA сначала установить через Set on Compare Match (другой через Clear), а затем запустить оба в режиме Toggle, не?
Во! akl правильно заметил.

Добавлено after 5 minutes 59 seconds:
...я бы в прерывании синхронно инвертировал бы эту пару бит путём XOR. И заняло бы у меня написание этого куска кода секунд 5.

Можно и так, если в софт ничем особо не нагружен.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 11:10:03 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
и скважность 0,5

я сказал скважность...
неее... я имел ввиду заполнение 0,5
Вложение:
Screenshot_1.jpg [48.15 KiB]
Скачиваний: 19

:tea:
никого я никуда не уводил... вопрос был про таймер для ультразвука.

ещё не забываем про стабильность частоты. потому что излучатель ультразвука имеет резонанс...
Вложение:
Screenshot_2.jpg [30.21 KiB]
Скачиваний: 19

:tea:

-можно поставить в часы ds1302 но не хочется усложнять ))
-CR1220 не потянет... там нужен аккумулятор побольше))
-светодиоды не нужны... вместо них экран телефона.
СпойлерИзображение

:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 11:26:10 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1306
Рейтинг сообщения: 0
-CR1220 не потянет... там нужен аккумулятор побольше))

Скажи это китайцам. Но прежде сам почитай и посчитай.
Почему то я всё время читаю roman.кош. Для тех кто не в курсе - это название горы в Крыму.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 11:31:25 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
мы в курсе что это название горы в Крыму.
причём самой высокой в Крыму.
:tea:
следующий вопрос про стабильность.
-встроенный RС генератор нестабильный. может быть 8.000.000 Hz... а может быть 7.900.000 Hz... и т.д.
-кварц 8.000.000 Hz поставить можно. но для часов лучше часовой. на таймере 2. уже стоит)) стабильность часов заметно выше... в десятки раз. но до идеале пока не дотягивает. в телефоне стабильней.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 11:40:54 
Открыл глаза

Карма: -2
Рейтинг сообщений: -4
Зарегистрирован: Чт июл 31, 2025 20:41:39
Сообщений: 76
Рейтинг сообщения: 0
Ну, кош - это временная стоянка или жилище у наших предков. На Алтае есть поселок Кош-Агач.

Добавлено after 2 minutes 10 seconds:
Цитата:
8.000.000 Hz поставить можно. но для часов лучше часовой.

У "часового" и "высокочастотного" кварцев примерно одинаковая точность. Вернее, точность конкретно указывается в наименовании кварца. Распространенная точность ±20 ppm. Реже встречается ±10 ppm. Точность ±5 ppm и менее - уже редкость.
(1 ppm = 0,000'001 долей частоты)

Цитата:
в телефоне стабильней.

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


Последний раз редактировалось КотПротон Чт авг 07, 2025 11:49:02, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 11:48:16 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 889
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6194
Откуда: Minsk
Рейтинг сообщения: 0
Jack_A, если МК умеет, то можно без ксора, писать единичку в PIN - оно инвертирует соответствующий бит в PORT...

Вот именно - если умеет. Насколько помнит мой склероз, у старых моделей вроде АТ2313 (давно снятых с производства :) ) этой фичи нет.
Впрочем, тут речь идёт о вполне конкретной модели.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 12:11:40 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
да... мобилы синхронизируются по информации из сотовой сети...
как и компы по интернету... правда не каждый день.
но в компе всё равно часы стабильней... даже без интернета.
:roll:
да... у "часового" и "высокочастотного" кварцев примерно одинаковая точность.
но у "часового" меньше потребление. получается экономней.
:tea:
в принципе в ардуино "часовой" кварц работает сносно.
только стабильность плавает в зависимости от температуры.
может добавить коррекцию по температуре... благо датчик температуры уже подключен к ардуино.
надо подумать...
:roll:
ещё можно сделать синхронизацию по интернету... NTP...
но делать так не рекомендуется ))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 13:12:35 
Открыл глаза

Карма: -2
Рейтинг сообщений: -4
Зарегистрирован: Чт июл 31, 2025 20:41:39
Сообщений: 76
Рейтинг сообщения: 0
но в компе всё равно часы стабильней... даже без интернета.

Насколько помню, там обычный кварц с ±10 ppm, что дает менее секунды в сутки, в худшем случае, это около полуминуты за месяц.

Добавлено after 7 minutes 41 second:
Можно попробовать найти в продаже часовой кварц с ±5 ppm, что даст около 10 секунд в месяц, а это уже вполне хороший показатель.

PS. В моих наручных часах Casio Protrek PRW6000, которым уже 11 лет, стоит вероятно какой-то термостатированный кварц, потому что погрешность хода - всего лишь 15-20 секунд В ГОД! Я время на них поправляю раз в год, 31 декабря вечером.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Чт авг 07, 2025 13:32:19 
Друг Кота

Карма: -1
Рейтинг сообщений: 85
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8867
Откуда: .ru
Рейтинг сообщения: 0
да... в компе примерно так и есть.
в компе часы убегают со временем... но не сильно... полуминуты за месяц где то.
:roll:
я вытащил часовой кварц из часов.
в часах он работал стабильно. примерно как в компе.
в ардуино работает хуже. 10 секунд за сутки. и зависит от температуры в доме.
значит проблема в ардуино. наверное нужна термокомпенсация.

в старых часах типа электроника была функция подстройки частоты кварцевого генератора.
хотя я точно не знаю как там сделано... но факт в том что заходим в меню часов и подстраиваем частоту с точностью 0,1 секунда в сутки... как то так там было написано.
и да. действительно. помню поставил +0,3 секунды и часы у меня убегали на несколько секунд в месяц.
такие часы уже не выпускаются.
:tea:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 174 ]    , , , , 5, , , ,  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y