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

Кто любит RISC в жизни, заходим, не стесняемся.
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

Генератор на 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 КБ) 583 скачивания
Последний раз редактировалось ncp1400 Вт июл 04, 2017 19:18:43, всего редактировалось 9 раз.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

А с чего 32F103CB заработает ? У него ЦАПов тоже нету.
IVL ex UA6PJ
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

значит не заработает. DAC есть у RC и выше
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

ncp1400 писал(а):в китайских клонах есть
ЦАП есть в GD32F103C8T6?
Если открыть Reference manual на STM32F103 то там тоже будет упоминание про ЦАП, но это не значит что он есть в STM32F103C8T6.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

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

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

Добавлено after 1 minute 17 seconds:
значит не заработает. DAC есть у RC и выше
IVL ex UA6PJ
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

добавлена поддержка I2C OLED (SCL=B9, SDA=B8), синхронизация каналов (нулем по входу A3 / параметром "DDS sync"), и синхронное задание частоты по первому каналу ("DDS one")
Вложения
gen_f100-01.hex
(43.7 КБ) 759 скачиваний
Зурбаган
Открыл глаза
Сообщения: 76
Зарегистрирован: Вс июн 18, 2017 08:12:41

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

Сообщение Зурбаган »

Лучше бы схему приложили. Потому что синус надо фильтровать. И еще неизвестно, сколько ступенек он содержит в вашем DDS при таком диапазоне перестройки частоты, и черт знает какой размер таблицы синусов и какие методы вы применяли.
Ёшкин кот обормот
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

таблица формы на 512 точек
схемы фильтров за вас поискать или сами найдете ?
Зурбаган
Открыл глаза
Сообщения: 76
Зарегистрирован: Вс июн 18, 2017 08:12:41

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

Сообщение Зурбаган »

512 точек? курам на смех с этими вашими 512 точками. Осциллограф и анализатор спектра вам прислать или сами найдете?
Ёшкин кот обормот
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

мне пока хватает. А для точных измерений есть 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 КБ) 761 скачивание
Зурбаган
Открыл глаза
Сообщения: 76
Зарегистрирован: Вс июн 18, 2017 08:12:41

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

Сообщение Зурбаган »

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

...То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка, и не более, чем на низких звуковых частотах. Потому и думаете, что у вас чистая синусоида из крохотной таблички выходит. На низкой частоте - да, близко. А на в 20 раз большей - нифига уже.
Ёшкин кот обормот
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

синус конечно хранится во Flash, а для сигнала произвольной формы waveform-буфер удобнее в ОЗУ и загружать из Flash/генерировать программно по потребности
То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка
аудиофилы с 24/32-битными 192кГц-картами не согласятся
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

частота ЦАПа 1.6МГц, количество семплов функции на период 512 или 8192, про 1МГц на выходе никто не заявлял - понятно что без фильтрации ничего хорошего не будет. Все остальное про то что кто думает - ваши домыслы...
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

есть и такой документик: http://www.st.com/content/ccc/resource/ ... 129215.pdf
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

для более-менее точного синуса нужно минимум 5..10 точек на период - т.е. на частоту 150..300К можно рассчитывать
а фильтры , усилители, аттеннюаторы
у меня пока на выходах простые RC фильтры + повторители на MCP6022
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

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

Добавлено after 14 minutes 30 seconds:
А здесь ДДС реализован с помощью встроенного ШИМа http://srukami.inf.ua/pultoscop_v25110.html
IVL ex UA6PJ
ncp1400
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт янв 08, 2015 00:58:11

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

Сообщение ncp1400 »

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



Почистил тему от оффтопа.
aen
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

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


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

Вот мля в любой бочки затычка, невежда ,и ещё других пытается учить.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

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

Вернуться в «ARM»