Например TDA7294

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





Текущее время: Вс июл 06, 2025 03:02:16

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2242 ]     ... , , , 69, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 08, 2021 15:41:34 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
СБИС в смысле специализированных больших микросхем.
А сколько там транзисторов - как в МП/МК или чуток поменьше - лишь бы больше, чем в "средней рассыпухе" было.
8)
Я исходил из простейшего варианта генератора меандра, без дополнительных супертаблиц.
Так что там в принципе совсем мало надо.
8)
Единственно стабильность у DDS таки пониже, чем у счетчика...
То уж выбираем чего нам удобнее - или примитив с высокой стабильностью и "грубым" шагом или навороченный "мягколапый" вариант с дополнительными фильтрами.
Или уж совсем навороченный специализированный кристалл...
:roll:


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
Он совсем крошечный – около 3мм х 3мм.

Изображение


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

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Код:
void interrupt Timer2_ISR(void)
{
    if (TMR2IF)
    {
        ++gDutycount;                                 // Increment the counter variable by 1
        if(gDutycount == 39)
        {
            gDutycount = 0;
        }
        PWM1DCH = SINETABLE[gDutycount]; // Load the duty cycle register according to the sine table
        TMR2IF = 0;
    }
}

Вместо 39 должно быть 40. Иначе последний элемент массива теряется.
Либо загрузку в ШИМ переместить до проверки.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Последний раз редактировалось Zhuk72 Пн фев 08, 2021 16:43:13, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 08, 2021 16:34:17 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
синус в принципе не сложно см. AN1523

Не сложно, но медленно. Прикинь сколько времени будет выполняться обработчик прерывания на PIC учитывая, что CPU относительно STM32G0 медленнее в 8 раз только по тактовой... При этом для STM32 подобная работа по прерываниям будет раза в 3 медленнее, чем с DMA, т.к. дополнительно ~30 тактов тратятся на каждый вызов, а полезной работы в обработчике тактов на 10-15. Итого STM32 без NCO на генерации синуса будет в 5-10 раз быстрее PIC с NCO, что не так и удивительно.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 08, 2021 16:59:36 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Не спорю на STM32 можно и 3-х канальный DDS - японский Чен делал на STM32F3 с интерполяцией
Цитата:
Коэффициент загрузки обработки функции DDS, сколько процессорного времени занимает служба прерывания DMA, составил всего 45% при частоте процессора 72 МГц, частоте дискретизации 1Msa/sec и одноканальной конфигурации. Двухканальная конфигурация потребляет 85% мощности ЦП, а в трехканальной конфигурации необходимо снизить частоту дискретизации до 720ksa/sec. Это неплохо, если учесть, что максимальная частота дискретизации ЦАП составляет 1Msa/sec. Поскольку большинство программных проектов DDS реализуются на 8-битном микроконтроллере с низкой вычислительной мощностью, форма волны синтезируется без какой-либо интерполяции данных LUT (дробная часть значения фазы просто округляется). В этом проекте DDS реализован на мощном 32-битном микроконтроллере, так что он может получить плавную форму волны за счет использования интерполяции даже с короткой (грубая выборка) волновой таблицей.

http://elm-chan.org/junk/mdds_ipol/report.html


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

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Для генерации меандра с помощью DDS таблица в принципе не требуется.
Достаточно инверсии выхода ири переполнении на удвоенной частоте или "виртуальной таблицы" из 0 и 1, возможно в ОЗУ.
А это значительно снижает нагрузку на программу и ее размер.
:roll:


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 08, 2021 20:42:50 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
из википедии
Цитата:
Цифровой вычислительный синтезатор (ЦВС), известный еще как схема прямого цифрового синтеза (DDS) — электронный прибор, предназначенный для синтеза сигналов произвольной формы и частоты из единственной опорной частоты, поставляемой генератором тактовых импульсов. Характерной особенностью ЦВС является то, что отсчеты синтезируемого сигнала вычисляются цифровыми методами, после чего передаются на цифро-аналоговый преобразователь (ЦАП), где и происходит их преобразование в аналоговую форму (напряжение или ток).

т.е. без ЦАП будет не совсем DDS. А на ЦАП проще имхо из таблички во флэше. В ОЗУ сформировать еще надо, это хоть и не значительно, но повышает нагрузку на программу и ее размер


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн фев 08, 2021 20:57:02 
Мучитель микросхем

Карма: 5
Рейтинг сообщений: 50
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 408
Откуда: Алчевск
Рейтинг сообщения: 0
В STM большой расход времени на вход/выход в прерывание. Можно попробовать крутить DDS в основном цикле синхронизируясь с каким нибудь таймером, следить за битом UIF например. В прерывании обрабатывать уставки. Естественно в этот момент генерация будет срываться. Может получится и более 2Мсемпл/сек (менее 36 тактов на круг). На AVR c прерываниями у меня уходило 38 тактов. Таблица в ОЗУ. Пробовать нужно.


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
у Чена DDS на STM32F3, 72Мгц тактовая - успевает в прерывании еще и синтезировать форму сигнала
Цитата:
ЦА преобразование запускается выходом таймера и дает выходной сигнал без дрожания. DAC может генерировать прерывание или запрос DMA при каждом преобразовании, чтобы получить следующие данные для вывода. Поскольку скорость преобразования ЦАП до 1 Msa/sec (72 такта ЦП на передачу) слишком высока для обработки прерывания, в этом проекте данные ЦАП передаются с помощью контроллера DMA. Контроллер DMA выбирает значение выборки из буферной памяти и записывает его в регистр DAC при каждом запросе DMA. Контроллер DMA настроен в циклическом режиме для перезапуска передачи данных с вершины буфера, когда он достигает конца буфера. Он также генерирует прерывание на половину передачи и последнюю передачу. Подпрограмма обслуживания прерывания DMA синтезирует форму волны и каждый раз заполняет половину буфера DMA. Таким образом, контроллер DMA используется в качестве буфера FIFO для потоковой передачи данных формы волны в ЦАП.


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

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так мне ж и меандра достаточно.
8)
Собственно сам принцип "наращивания" для малоразрядного таймера берем из DDS,
только "расширения" табличного не делаем.
И запускаем два генератора - один на Т1 (классика), второй на Т0 (извращенный DDS)...
Воть попробую чего нашкарябать для тиньки2313 из интереса...
:write:


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
лайфак - простейшая псевдоDDS, для одной ноги (меандра) :)
Код:
loop:
 sbi PINB, 5
 nop
 nop
 ....
 jmp loop

частота регулируется количеством nop


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

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ага!
И больше нихрена с того МК не плучить - основной цикл единственный (если охота хоть чуток стабильности).
А прерывание и приклеенные к ним прожки будут "портить картинку".
:))


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

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Так мне ж и меандра достаточно.

Для меандра как раз один только NCO без проблем выдаст частоту переполнения своего аккумулятора вплоть до задающей, например 32МГц от внутреннего генератора, с независимым от ядра дерганьем вывода порта каждое переполнение, выдавая 16МГц меандр. Также вместо меандра можно выдавать импульсы.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


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

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

дык так и сделаны DDSы на AVR (примеры выше были) - установка новой частоты кнопкой или по юарт в прерывании это джиттер, потом устаканивается. На слух, если это tone, этот джиттер можно и не услышать. Надо круче - используйте типа RTOS или спец. микроконтроллеры или внешние, так называемые СБИС.


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

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Достаточно обычной фоновой обработки пары таймеров.
8)


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

Карма: 5
Рейтинг сообщений: 50
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 408
Откуда: Алчевск
Рейтинг сообщения: 0
Вот например в G030 я не смог обычную фоновую обработку с DMA для выдачи сигнала подружить с АЦП для обработки захвата. Вешался модуль АЦП. Пока отложил.


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

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15061
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так речь не о полноценном DDS, а о варианте с всего-то генератором меандра с минимизированным шагом перестройки частоты.
Вообще-то весьма интересное решение напрашивается - НО... требует проверки...
Так что пока отвлекусь на "тест нашкрябать"...
:roll:
:write:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 10, 2021 10:28:42 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18400
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
подкину идейку:
Код:
LOOP:
  IJMP
TBL:
  NOP
  NOP
  ... ; еще куча NOP-ов
  SBI PINB, 1
  JMP LOOP
занесли в Z адрес TBL+T (где Т - величина, определяющая длительность полупериода), вычисленный по нужному значению ПОЛУПЕРИОДА требуемого меандра, и переходим на LOOP, начинается генерация меандра на PORTB1. теперь в прерываниях перерасcчитываем Z - и период меняется. максимальная частота будет F_CPU/12, шаг изменения периода 2/F_CPU, минимальная частота зависит только от количества памяти, занятой NOP-ами :)

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 10, 2021 10:55:03 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
теперь в прерываниях перерасcчитываем Z - и период меняется. максимальная частота будет F_CPU/12

Как в такую схему вписываются хотя бы пара кнопок(шаг вперед/назад)? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср фев 10, 2021 11:33:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 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