Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 03, 2017 22:11:37

Генератор на 2 аналоговых DDS-канала (синус/треугольник/пила/меандр/ШИМ/DC/шум) + 2x3 цифровых ШИМа.

Собран на дешевом модуле https://ru.aliexpress.com/item/1pcs-STM ... 60323.html , в комплектном контроллере нет ЦАПов, заменен на 32F100C4.

Распиновка:
LCD 8x2 / 16x2: [RS,E,D4..D6] - [B9,B8,B7..B4];
энкодер: [A,B,кнопка] - [A15,A12,A11];
ЦАПы 1,2: [A4,A5];
ШИМы 1.1-1.3, 2.1-2.3: [A0,A1,A2,A6,A7,B0].

В верхней строке - целая часть частоты (0..999999Гц), в нижней - дробная часть (.000 - .999Гц) и название параметра.

Поворот энкодера - выбор параметра:

af1 - частота DDS1,
ap1 - фаза DDS1 (0..359.999град),
ad1 - коэф.заполнения ШИМа или уровень DC DDS1 (0..100.000%),
af2 - частота DDS2,
ap2 - фаза DDS2,
ad2 - коэф.заполнения ШИМа / DC DDS2,
df1 - частота ШИМов 1.2-1.3,
d11..d13 - коэф.заполнения ШИМов 1.1-1.3 (0..100.000%),
df2 - частота ШИМов 2.1-2.3,
d21..d23 - коэф.заполнения ШИМов 2.1-2.3.

Короткое нажатие - редактирование/выбор разряда, длительное 3сек - выход, 6сек - вход в настройки:

00.DDS1form - форма DDS1: 0-синус, 1-треугол., 2-пила, 3-меандр, 4-ШИМ, 5-DC (уровень задается параметром ad1), 6-шум
01.DDS2form - форма DDS2
02.DDS1 buf - вкл.буфера ЦАП1
03.DDS2 buf - вкл.буфера ЦАП2

Поворот - выбор параметра, кор.нажатие - редактирование, длительное - выход.

Прошивка:
Вложения
gen_f100-01.hex
(33.27 KiB) Скачиваний: 347
Последний раз редактировалось ncp1400 Вт июл 04, 2017 19:18:43, всего редактировалось 9 раз(а).

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вт июл 04, 2017 17:58:50

А с чего 32F103CB заработает ? У него ЦАПов тоже нету.

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вт июл 04, 2017 18:41:48

значит не заработает. DAC есть у RC и выше

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Чт июл 06, 2017 21:19:13

в китайских клонах есть: http://www.gigadevice.com/product-category/11.html
https://ru.aliexpress.com/item/2pcs-lot ... 04660.html

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Чт июл 06, 2017 22:24:05

ncp1400 писал(а):в китайских клонах есть
ЦАП есть в GD32F103C8T6?
Если открыть Reference manual на STM32F103 то там тоже будет упоминание про ЦАП, но это не значит что он есть в STM32F103C8T6.

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пт июл 07, 2017 08:12:04

Нету их и в китайских С8Т6 , даташиит почитай.

Добавлено after 1 minute 17 seconds:
Они еще и дорогие ко всему.

Добавлено after 1 minute 17 seconds:
значит не заработает. DAC есть у RC и выше

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Сб июл 08, 2017 23:59:06

добавлена поддержка I2C OLED (SCL=B9, SDA=B8), синхронизация каналов (нулем по входу A3 / параметром "DDS sync"), и синхронное задание частоты по первому каналу ("DDS one")
Вложения
gen_f100-01.hex
(43.7 KiB) Скачиваний: 575

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 06:02:35

Лучше бы схему приложили. Потому что синус надо фильтровать. И еще неизвестно, сколько ступенек он содержит в вашем DDS при таком диапазоне перестройки частоты, и черт знает какой размер таблицы синусов и какие методы вы применяли.

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 06:19:35

таблица формы на 512 точек
схемы фильтров за вас поискать или сами найдете ?

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 07:20:20

512 точек? курам на смех с этими вашими 512 точками. Осциллограф и анализатор спектра вам прислать или сами найдете?

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 10:23:49

мне пока хватает. А для точных измерений есть 24-битные звуковые карты

Добавлено after 16 minutes 30 seconds:
можно перегнать таблицы во Flash - будет по 4..8К точек на форму...

Добавлено after 2 hours 6 minutes 20 seconds:
вот на 8К точек, синус/треугольник/пила, частота DAC 1.6M
Вложения
gen_f100-01.hex
(174.01 KiB) Скачиваний: 560

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 11:10:32

Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? Гкхмм... Скажите, что еще и генерите её "на лету".

...То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка, и не более, чем на низких звуковых частотах. Потому и думаете, что у вас чистая синусоида из крохотной таблички выходит. На низкой частоте - да, близко. А на в 20 раз большей - нифига уже.

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 11:26:22

синус конечно хранится во Flash, а для сигнала произвольной формы waveform-буфер удобнее в ОЗУ и загружать из Flash/генерировать программно по потребности
То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка
аудиофилы с 24/32-битными 192кГц-картами не согласятся

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 11:58:46

частота ЦАПа 1.6МГц, количество семплов функции на период 512 или 8192, про 1МГц на выходе никто не заявлял - понятно что без фильтрации ничего хорошего не будет. Все остальное про то что кто думает - ваши домыслы...

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Вс июл 09, 2017 12:31:25

есть и такой документик: http://www.st.com/content/ccc/resource/ ... 129215.pdf

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 10, 2017 12:30:40

для более-менее точного синуса нужно минимум 5..10 точек на период - т.е. на частоту 150..300К можно рассчитывать
а фильтры , усилители, аттеннюаторы
у меня пока на выходах простые RC фильтры + повторители на MCP6022

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 10, 2017 15:28:57

Вот здесь http://arduino.ru/forum/proekty/generat ... ino?page=3 ДДС реализован без внутреннего ЦАПа если перегнать в STM32F103C8T6 может неплохо получиться.

Добавлено after 14 minutes 30 seconds:
А здесь ДДС реализован с помощью встроенного ШИМа http://srukami.inf.ua/pultoscop_v25110.html

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 10, 2017 15:34:35

можно, если приемник DMA перенаправить на GPIO вместо ЦАПа. GD32F103 гонится до 120МГц, вроде бы даже с нулевой задержкой Flash - т.е. реально 10..15МГц на внешнем ЦАПе... хотя на ВЧ произвольная форма не сильно нужна - хватает синуса и меандра - для этого есть AD98xx,99xx



Почистил тему от оффтопа.
aen

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 10, 2017 18:56:15

Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? .


Научи нас, господин не единожды обосрамши, хранить что либо в ОЗУ. Быдлокодерам от ПЦ не известно что массив в RAM одиг хрен хранится в ROM? А уж вброс про про генерацию на лету, весьма доставил- чем он тебе жертва ПЦ,, не угодил?Поведуйсекретной писанине в столбик.

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

Re: Генератор 2xDDS + 6xШИМ на STM32F100

Пн июл 10, 2017 19:18:01

А он ещё просто не в курсе, что в СТМ32 выборка из ОЗУ происходит быстрее чем из флэш. Недочитал он! А для критических секций и выжимания по максимуму это может играть роль.
Ответить