Страница 1 из 2
Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пн июл 03, 2017 22:11:37
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
Поворот - выбор параметра, кор.нажатие - редактирование, длительное - выход.
Прошивка:
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вт июл 04, 2017 17:58:50
240265
А с чего 32F103CB заработает ? У него ЦАПов тоже нету.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вт июл 04, 2017 18:41:48
ncp1400
значит не заработает. DAC есть у RC и выше
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Чт июл 06, 2017 21:19:13
ncp1400
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Чт июл 06, 2017 22:24:05
Мурик
ncp1400 писал(а):в китайских клонах есть
ЦАП есть в GD32F103
C8T6?
Если открыть Reference manual на STM32F103 то там тоже будет упоминание про ЦАП, но это не значит что он есть в STM32F103
C8T6.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пт июл 07, 2017 08:12:04
240265
Нету их и в китайских С8Т6 , даташиит почитай.
Добавлено after 1 minute 17 seconds:
Они еще и дорогие ко всему.
Добавлено after 1 minute 17 seconds:
[uquote="ncp1400",url="/forum/viewtopic.php?p=3138503#p3138503"]значит не заработает. DAC есть у RC и выше[/uquote]
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Сб июл 08, 2017 23:59:06
ncp1400
добавлена поддержка I2C OLED (SCL=B9, SDA=B8), синхронизация каналов (нулем по входу A3 / параметром "DDS sync"), и синхронное задание частоты по первому каналу ("DDS one")
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 06:02:35
Зурбаган
Лучше бы схему приложили. Потому что синус надо фильтровать. И еще неизвестно, сколько ступенек он содержит в вашем DDS при таком диапазоне перестройки частоты, и черт знает какой размер таблицы синусов и какие методы вы применяли.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 06:19:35
ncp1400
таблица формы на 512 точек
схемы фильтров за вас поискать или сами найдете ?
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 07:20:20
Зурбаган
512 точек? курам на смех с этими вашими 512 точками. Осциллограф и анализатор спектра вам прислать или сами найдете?
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 10:23:49
ncp1400
мне пока хватает. А для точных измерений есть 24-битные звуковые карты
Добавлено after 16 minutes 30 seconds:
можно перегнать таблицы во Flash - будет по 4..8К точек на форму...
Добавлено after 2 hours 6 minutes 20 seconds:
вот на 8К точек, синус/треугольник/пила, частота DAC 1.6M
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 11:10:32
Зурбаган
Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? Гкхмм... Скажите, что еще и генерите её "на лету".
...То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка, и не более, чем на низких звуковых частотах. Потому и думаете, что у вас чистая синусоида из крохотной таблички выходит. На низкой частоте - да, близко. А на в 20 раз большей - нифига уже.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 11:26:22
ncp1400
синус конечно хранится во Flash, а для сигнала произвольной формы waveform-буфер удобнее в ОЗУ и загружать из Flash/генерировать программно по потребности
То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка
аудиофилы с 24/32-битными 192кГц-картами не согласятся
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 11:58:46
ncp1400
частота ЦАПа 1.6МГц, количество семплов функции на период 512 или 8192, про 1МГц на выходе никто не заявлял - понятно что без фильтрации ничего хорошего не будет. Все остальное про то что кто думает - ваши домыслы...
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Вс июл 09, 2017 12:31:25
ncp1400
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пн июл 10, 2017 12:30:40
ncp1400
для более-менее точного синуса нужно минимум 5..10 точек на период - т.е. на частоту 150..300К можно рассчитывать
а фильтры , усилители, аттеннюаторы
у меня пока на выходах простые RC фильтры + повторители на MCP6022
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пн июл 10, 2017 15:28:57
240265
Вот здесь
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
ncp1400
можно, если приемник DMA перенаправить на GPIO вместо ЦАПа. GD32F103 гонится до 120МГц, вроде бы даже с нулевой задержкой Flash - т.е. реально 10..15МГц на внешнем ЦАПе... хотя на ВЧ произвольная форма не сильно нужна - хватает синуса и меандра - для этого есть AD98xx,99xx
Почистил тему от оффтопа.
aen
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пн июл 10, 2017 18:56:15
dosikus
[uquote="Зурбаган",url="/forum/viewtopic.php?p=3141726#p3141726"]Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? .[/uquote]
Научи нас, господин не единожды обосрамши, хранить что либо в ОЗУ. Быдлокодерам от ПЦ не известно что массив в RAM одиг хрен хранится в ROM? А уж вброс про про генерацию на лету, весьма доставил- чем он тебе жертва ПЦ,, не угодил?Поведуйсекретной писанине в столбик.
Вот мля в любой бочки затычка, невежда ,и ещё других пытается учить.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Добавлено: Пн июл 10, 2017 19:18:01
scorpi_0n
А он ещё просто не в курсе, что в СТМ32 выборка из ОЗУ происходит быстрее чем из флэш. Недочитал он! А для критических секций и выжимания по максимуму это может играть роль.