Например TDA7294

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

Текущее время: Вт фев 24, 2026 07:17:09

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2383 ]     ... , , , 67, , , ...  
Автор Сообщение
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 11:29:09 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 4
Только вот чегой-то мне не особо верится, что шаг в 1 Герц возможен для всего диапазона...

исходник либы tone если посмотреть - используется режим таймера CTC - шаг в 1Гц имхо не получится.

Оказывается есть STM8 ардуины -sduino
https://github.com/roybaer/sduino_uno
стандартная ардуино IDE поддерживает - хитрО используется SDCC (он без C++)
Изображение
к стати ардуино IDE можно сделать темной (очень легко) и трудиться становиться веселей и приятней для глаз :)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 13:25:40 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Относительно точности до герца в низкочастотной части все же соответствие, а вот где-то от 10 килогерц и более есть смысл помудрствовать...
Да и не СТС, а что-то вроде быстрого ШИМ с потерей 50% скважности на +/- 1-2 периода тактовой частоты...
:roll:

STM8 я видел, но как-то.... не в таком виде -
больше вот такие:
https://vk.com/market-79970674?section= ... 19%2Fquery
:dont_know:

Ну то кому как приятнее/привычнее - светлый или темный фон...
:wink:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 14:31:37 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Да и не СТС, а что-то вроде быстрого ШИМ с потерей 50% скважности на +/- 1-2 периода тактовой частоты...

откуда дровишки? Вижу исходник - там явно CTC
https://github.com/arduino/ArduinoCore- ... o/Tone.cpp
Код:
if (_timer != -1)
  {
    // Set timer specific stuff
    // All timers in CTC mode
    // 8 bit timers will require changing prescalar values,
    // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar
    switch (_timer)
    {
      #if defined(TCCR0A) && defined(TCCR0B) && defined(WGM01)
      case 0:
        // 8 bit timer
        TCCR0A = 0;
        TCCR0B = 0;
        bitWrite(TCCR0A, WGM01, 1);
        bitWrite(TCCR0B, CS00, 1);
        timer0_pin_port = portOutputRegister(digitalPinToPort(_pin));
        timer0_pin_mask = digitalPinToBitMask(_pin);
        break;
      #endif
.............................


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 15:45:46 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Это адуринка как "задачник вопроса" проявилась...
8)
А вот далее....
У меня идейка вытрясти из AVRкина Т1 максимум возможного в смысле генерации последовательности частот с минимальным шагом между ними...
Просто из интереса - "а чего таки можно вытянуть"?
Понятно, что там таки будет в некоторых случаях более 1 Гц/на добавленную единицу счетного импульса, но вот количество тех градаций, да варианты управления счетчиком...
Не теоретически расчетом, а на реальной пищалке и осциллограммке полюбоваться....
Ежли "по примитиву" - один период результата равен двум переполнениям таймера (скважность сигнала 50%).
Т.е. минимальный интервал - 2 периода счетного сигнала (генератора МК)...
А ежли "быстрый ШИМ" - там только 1 период счетного интервала критичен - ессно и градаций при всем том же в два раза больше...

:roll:
Ну и возможные программные "умножайкины трюки" - совместное использование аппаратного и программного счетчиков для расширения диапазона "мягких лапок"...
8)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 16:44:28 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2121
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18474
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
DDS-ом генерируют синус до 20 кГц с шагом в 1Гц (а особо гениальные и с 0,1 Гц), так что меандр и подавно можно сделать.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 18:49:10 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
у Л.И. есть генератор - диапазон генерируемых частот 1…50000 Гц, минимальный шаг установки частоты 0.01 Гц
Цитата:
DDS реализован программно на микроконтроллере ATmega8 фирмы "Atmel". Быстродействие этого контроллера является достаточным, чтобы при тактовой частоте 16 МГц реализовать 34-разрядный накопитель фазы, работающий на частоте 216 кГц. Такой накопитель фазы обеспечивает шаг перестройки частоты примерно 0.00001 Гц. Реально используется шаг сетки 0.01 Гц,

http://www.leoniv.diod.club/projects/me ... g-530.html


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 18:54:16 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 133
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1355
Рейтинг сообщения: 0
DDS - это слишком жирно. Там ведь и другие задачи при звучащем тоне.
При CTC никакого 1 гц шага. Как обычно кто то бредит.)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 20:23:02 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
OKF писал(а):
DDS - это слишком жирно. ...

Воть... оставим тот DDS "на остаточное" - а для начала чего таки можно из простого подручного материала выжать.
Насчет 1Гц/на шаг - это уже зависит от диапазона частот.
В "низкочастотной" части вполне себе возможно, а вот "повыше" пока интерес как можно меньший шаг обеспечить.
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 21:37:08 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
тут кроме основной задачи DDS в прерывании от таймера T1 кнопки опрашиваются, еще и индикатор есть
https://radiokot.ru/circuit/digital/measure/20/
насчет
Цитата:
вытрясти из AVRкина Т1 максимум возможного в смысле генерации последовательности частот с минимальным шагом между ними...

имхо как не крути - все равно через OCR, на высоких частотах шаг больше 1Гц получится.
Простенький расчет на любимом ардуинщиками Processing
Код:
 int ocr;
     for (int freq = 7900; freq < 8000 ; freq++) {
        ocr = 8000000/freq - 1;
        freq = 8000000/(ocr+1);
        println("ocr= " + ocr);
        println("freq= " + freq);
    } 

..........
ocr= 1003
freq= 7968
ocr= 1002
freq= 7976
ocr= 1001
freq= 7984
ocr= 1000
freq= 7992
ocr= 999
freq= 8000


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 01, 2021 22:31:03 
Мучитель микросхем

Карма: 5
Рейтинг сообщений: 50
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 411
Откуда: Алчевск
Рейтинг сообщения: 0
Проще посчитать корень из тактовой таймера. Все что выше - шаг больше 1 Гц,ниже - меньше 1 Гц.
Делал DDS на 2313 с тактовой 19,5 МГц. Опрос 500 кГц с шагом 1 Гц. Автоматический перестраиваемый фильтр НЧ. Выше 20 кГц не пробовал,не нужно было.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт фев 02, 2021 11:17:07 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
значит чем выше тактовая таймера, тем лучше. Можно взять 8 ног STM32G031J6M6 - там 16-ти разрядный TIM1 можно 128МГц тактировать. Есть 32-ти разрядный TIM2 64МГц. В киосках в продаже есть такой - имхо вытрясти из такого максимум возможного поинтереснее будет. 8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт фев 02, 2021 11:54:13 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
При "простом делителе" важна не только тактовая частота, но и разрядность самого делителя.
Но в то же время не "переусердствовать" - собственно из-за простенькой задачи ставить DDS или осваивать новое семейство МК на уровне аппаратной начинки...
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт фев 02, 2021 12:17:41 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
пределитель там 16-ти разрядный - любое значение в диапазоне 0...65535, а если цель "вытрясти" - можно мышкой натыкать без особого осваивания
Изображение


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт фев 02, 2021 15:10:16 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Предделитель особо не котируется - это всего лишь "размер единицы отсчета".
Без дополнительного байтика в счетчике и в регистре цифрового сравнения собо и не важен...
:roll:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт фев 02, 2021 17:05:07 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
тю, а кто написал
Цитата:
При "простом делителе" важна не только тактовая частота, но и разрядность самого делителя.

а как же без пределителя низкие частоты делать. Вот примерчик формировать ноты
http://avr-start.ru/?p=3876
там таймер4 сидит на шине APB1, далее обычные расчеты (выше подобные уже были)
Цитата:
Допустим, нужно посчитать сколько нужно тиков, чтобы сформировать частоту, например нота До 1 октавы 261Гц. Для этого исходные 4 000 000 таймера делим на предделитель 50. Предделитель просто позволяет сделать величины нот в разумными, т.е. в пределах uint16_t.
4000 000/50= 80 000 это рабочая частота после всех делителей.

Теперь нужно найти число, которое нужно положить в ARR, чтобы из исходных 80 000 получить нужные нам 261Гц.
(80 000/(261*2))-1= 152

Почему тут умножаем на 2, потому что при достижении таймером регистра ARR, ножка инвертирует свое состояние, а нам нужно чтобы она успела включиться и выключиться.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 03, 2021 10:24:22 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Для низких - то как раз вопрос и не стоит.
Тот же Т1 АВРки с досчетом до 30651 при 8 Мгц на входе даст 261,0029 Гц...
Это более для частот за 5 КГц актуально.
:roll:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 03, 2021 10:42:54 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
дык тратить драгоценный авркин T1 на тон, уж лучше T0, T2 делителем (имхо), чего изначально в ардуино по умняку и сделано
Код:
#define USE_TIMER2


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 03, 2021 11:54:22 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15482
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Там вполне себе и программный DDS на базе T2 может уместиться...
:roll:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 03, 2021 12:27:39 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
ну у них не было задачи "вытрясти максимум возможного", а так да, там DDSа того - 6 строк ассемблера
Код:
; Output frequency (using 24 bit accumulator) :
;
;   f = deltaPhase * fClock/2^24
;
;   fClock is in this case the CPU clock divided by the
;   number of cycles to output the data ( 9 cycles )
;
;   f = r24/r25/r26 * (11059200/9)/16777216
;
;   f = r24/r25/r26 * 0.073242188
;
;   fMax (theoretical) = 0.5 * fClock
......
; main loop
;
;   r28,r29,ZL is the phase accumulator
;     r24,r25,r26 is the adder value determining frequency
;
;    add value to accumulator
;   load byte from current table in ROM
;   output byte to port
;   repeat
LOOP1:
      add      r28,r24         ; 1
      adc      r29,r25         ; 1
      adc      ZL,r26         ; 1
; note: LPM will read (ZH, ZL). r30 is constantly changing (MSB, but LSB of ZH)
      lpm                  ; 3
      out      PORTB,r0      ; 1
      rjmp   LOOP1         ; 2 => 9 cycles


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт фев 05, 2021 14:18:55 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 4
глянул - появились у нас в базарном киоске soic8 ATtiny212 ATtiny202, чуть дороже ATtiny13 - а там навалили таймеров для генерации тона
– One 16-bit Timer/Counter Type A with Dedicated Period Register, Three Compare Channels
(TCA)
– One 16-bit Timer/Counter type B with Input Capture (TCB)
– One 12-bit Timer/Counter type D Optimized for Control Applications (TCD)
– One 16-bit Real Time Counter (RTC) Running from External Crystal or Internal RC Oscillator
еще и ЦАПчик есть синусы генерить
– 8-bit Digital to Analog Converter (DAC)
еще и это может к делу приобщить
– Configurable Custom Logic (CCL) with Two Programmable Lookup Tables (LUT)

Ардуинщики на высоте, поддерживают, есть ядро, программатор на обычной ардуине делается
https://github.com/SpenceKonde/megaTinyCore


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

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


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

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


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