Генератор 2xDDS + 6xШИМ на STM32F100
Генератор 2xDDS + 6xШИМ на STM32F100
Генератор на 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
Поворот - выбор параметра, кор.нажатие - редактирование, длительное - выход.
Прошивка:
Собран на дешевом модуле 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
А с чего 32F103CB заработает ? У него ЦАПов тоже нету.
IVL ex UA6PJ
Re: Генератор 2xDDS + 6xШИМ на STM32F100
значит не заработает. DAC есть у RC и выше
Re: Генератор 2xDDS + 6xШИМ на STM32F100
ЦАП есть в GD32F103C8T6?ncp1400 писал(а):в китайских клонах есть
Если открыть Reference manual на STM32F103 то там тоже будет упоминание про ЦАП, но это не значит что он есть в STM32F103C8T6.
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Нету их и в китайских С8Т6 , даташиит почитай.
Добавлено after 1 minute 17 seconds:
Они еще и дорогие ко всему.
Добавлено after 1 minute 17 seconds:
Добавлено after 1 minute 17 seconds:
Они еще и дорогие ко всему.
Добавлено after 1 minute 17 seconds:
значит не заработает. DAC есть у RC и выше
IVL ex UA6PJ
Re: Генератор 2xDDS + 6xШИМ на STM32F100
добавлена поддержка I2C OLED (SCL=B9, SDA=B8), синхронизация каналов (нулем по входу A3 / параметром "DDS sync"), и синхронное задание частоты по первому каналу ("DDS one")
- Вложения
-
- gen_f100-01.hex
- (43.7 КБ) 759 скачиваний
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Лучше бы схему приложили. Потому что синус надо фильтровать. И еще неизвестно, сколько ступенек он содержит в вашем DDS при таком диапазоне перестройки частоты, и черт знает какой размер таблицы синусов и какие методы вы применяли.
Ёшкин кот обормот
Re: Генератор 2xDDS + 6xШИМ на STM32F100
таблица формы на 512 точек
схемы фильтров за вас поискать или сами найдете ?
схемы фильтров за вас поискать или сами найдете ?
Re: Генератор 2xDDS + 6xШИМ на STM32F100
512 точек? курам на смех с этими вашими 512 точками. Осциллограф и анализатор спектра вам прислать или сами найдете?
Ёшкин кот обормот
Re: Генератор 2xDDS + 6xШИМ на STM32F100
мне пока хватает. А для точных измерений есть 24-битные звуковые карты
Добавлено after 16 minutes 30 seconds:
можно перегнать таблицы во Flash - будет по 4..8К точек на форму...
Добавлено after 2 hours 6 minutes 20 seconds:
вот на 8К точек, синус/треугольник/пила, частота DAC 1.6M
Добавлено 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 скачивание
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? Гкхмм... Скажите, что еще и генерите её "на лету".
...То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка, и не более, чем на низких звуковых частотах. Потому и думаете, что у вас чистая синусоида из крохотной таблички выходит. На низкой частоте - да, близко. А на в 20 раз большей - нифига уже.
...То, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка, и не более, чем на низких звуковых частотах. Потому и думаете, что у вас чистая синусоида из крохотной таблички выходит. На низкой частоте - да, близко. А на в 20 раз большей - нифига уже.
Ёшкин кот обормот
Re: Генератор 2xDDS + 6xШИМ на STM32F100
синус конечно хранится во Flash, а для сигнала произвольной формы waveform-буфер удобнее в ОЗУ и загружать из Flash/генерировать программно по потребности
аудиофилы с 24/32-битными 192кГц-картами не согласятсяТо, что вам намеряет звуковая карта вместо осциллографа, это на 75% подделка
Re: Генератор 2xDDS + 6xШИМ на STM32F100
частота ЦАПа 1.6МГц, количество семплов функции на период 512 или 8192, про 1МГц на выходе никто не заявлял - понятно что без фильтрации ничего хорошего не будет. Все остальное про то что кто думает - ваши домыслы...
Re: Генератор 2xDDS + 6xШИМ на STM32F100
есть и такой документик: http://www.st.com/content/ccc/resource/ ... 129215.pdf
Re: Генератор 2xDDS + 6xШИМ на STM32F100
для более-менее точного синуса нужно минимум 5..10 точек на период - т.е. на частоту 150..300К можно рассчитывать
у меня пока на выходах простые RC фильтры + повторители на MCP6022а фильтры , усилители, аттеннюаторы
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Вот здесь http://arduino.ru/forum/proekty/generat ... ino?page=3 ДДС реализован без внутреннего ЦАПа если перегнать в STM32F103C8T6 может неплохо получиться.
Добавлено after 14 minutes 30 seconds:
А здесь ДДС реализован с помощью встроенного ШИМа http://srukami.inf.ua/pultoscop_v25110.html
Добавлено after 14 minutes 30 seconds:
А здесь ДДС реализован с помощью встроенного ШИМа http://srukami.inf.ua/pultoscop_v25110.html
IVL ex UA6PJ
Re: Генератор 2xDDS + 6xШИМ на STM32F100
можно, если приемник DMA перенаправить на GPIO вместо ЦАПа. GD32F103 гонится до 120МГц, вроде бы даже с нулевой задержкой Flash - т.е. реально 10..15МГц на внешнем ЦАПе... хотя на ВЧ произвольная форма не сильно нужна - хватает синуса и меандра - для этого есть AD98xx,99xx
Почистил тему от оффтопа.
aen
Почистил тему от оффтопа.
aen
Re: Генератор 2xDDS + 6xШИМ на STM32F100
Пардон, так вы еще и таблицу синуса храните в ОЗУ, а не во флеше? .
Научи нас, господин не единожды обосрамши, хранить что либо в ОЗУ. Быдлокодерам от ПЦ не известно что массив в RAM одиг хрен хранится в ROM? А уж вброс про про генерацию на лету, весьма доставил- чем он тебе жертва ПЦ,, не угодил?Поведуйсекретной писанине в столбик.
Вот мля в любой бочки затычка, невежда ,и ещё других пытается учить.
Re: Генератор 2xDDS + 6xШИМ на STM32F100
А он ещё просто не в курсе, что в СТМ32 выборка из ОЗУ происходит быстрее чем из флэш. Недочитал он! А для критических секций и выжимания по максимуму это может играть роль.