Например TDA7294

Форум РадиоКот • Просмотр темы - Функциональный генератор на базе STM32F103
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб сен 26, 2020 01:35:54

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


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



Начать новую тему Ответить на тему  [ Сообщений: 175 ]    , , , , 5, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Ср июл 31, 2019 11:31:03 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
kloker писал(а):
или вы про инициализацию и тактирование ЦАП сейчас?
Именно это. Как настроите периферию и будете выводить данные в ЦАП?

если в ардуино, то напрямую никак, только через либу, запиленую под именно эти чипы на STM. как в принципе и сделано в ихних примерах.
как можно наваять платформонезависимый софт, если железо идеологически и архитектурно разное?
у STM с HAL и LL грабля на грабле, даже между кристаллами в линейке клинит на поворотах, а тут с 8 битных чипов архитектуры 20 летней давности надо взлететь на чипах, ктотрым 8 лет еще нет, и чтобы ничего не переписывать))

это как прога в DOS под LPT программатор, для 8086 камня писаная на Win-10 c Core-i7, осталось виртуалку поднять и pci-e-LPT адаптор с чулана вынуть))))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Ср июл 31, 2019 13:23:23 
Собутыльник Кота
Аватар пользователя

Карма: 7
Рейтинг сообщений: 124
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 2987
Рейтинг сообщения: 0
kloker писал(а):
как можно наваять платформонезависимый софт, если железо идеологически и архитектурно разное?
То есть вы предлагаете отказываться от преимуществ архитектуры?
Тогда зачем вообще нужен STM32? Пишите под Arduino Uno или Nano.
По аналогии при разработке в ArduinoIDE под ESP8266 или ESP32 нужно отказаться от всего платформозависимого, т. е. от WiFi и т. д. Опять же, в таком случае пишите под Arduino Uno или Nano.
Надеюсь понимаете к чему это я?

kloker писал(а):
у STM с HAL и LL грабля на грабле
Используйте SPL. В ней давно баги устранили.

И все же вы не ответили как настроите периферию и будете выводить данные в ЦАП? Представьте что есть МК STM32 с ЦАП в который нужно вывести синус. Как вы это сделаете. Код не нужен. Просто напишите какой метод используете.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Ср июл 31, 2019 14:50:48 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
kloker писал(а):
как можно наваять платформонезависимый софт, если железо идеологически и архитектурно разное?
То есть вы предлагаете отказываться от преимуществ архитектуры?


интересное заключение, а где вы об этом прочли?


про инит ЦАП и синус ничего делать не буду, ибо опыта на Си и STM полгода от силы, и то, потому что сын в колледже Си++ проходит, вместе сидим и перевариваем)) Delphi и Visual Pascal в институте не в счет, и давно и мало.
максисмум на что пока хватает знаний, допилить чужой код, и в ардуине железку прикрутить.

как делают синхронный вывод через ЦАП есть гайды с примерами от СТМ и кучка статей, как на кубе проинить, или ручками через SPL.
по памяти там 2 счетчика юзают для синхры, и по прерыванию запись с массива в регистр ЦАП, и такт на изменение на аналоговом выходе. а вот масштабирование по временной сетке(смена частоты) уже по формуле. сложности только в делителях PLL, ибо их тоже придется менять на ходу, с выключением и реинитом шины и цап


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Ср июл 31, 2019 18:29:51 
Собутыльник Кота
Аватар пользователя

Карма: 7
Рейтинг сообщений: 124
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 2987
Рейтинг сообщения: 0
kloker писал(а):
потому что сын в колледже Си++ проходит
Для МК не обязательно писать на C++. Обычного Си, бейсика или ассемблера достаточно.

kloker писал(а):
по прерыванию запись с массива в регистр ЦАП
Не самое оптимальное решение.
Если форма сигнала не изменяется, создается массив и связкой таймер+ЦАП+DMA генерируется сигнал. При этом нет никаких прерываний и действий со стороны процессора. Периферия работает сама по себе.
Поэтому если хотите использовать все возможности МК, ардуина не самый подходящий инструмент.


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Ср июл 31, 2019 21:16:19 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
.
Поэтому если хотите использовать все возможности МК, ардуина не самый подходящий инструмент.

а кто спорит? ардуина не для того создана, если на то пошло))

меняется не форма сигнала а частота, от 0.1 гц до предельной для ЦАП, потому надо и о интерполяции задумываться на границах диапазона. с инфранизкими частотами даже сложнее задача..
если на борту есть FPU, то и массива с заготовкой формы сигнала не нужно, следующая итерация вычисляется по формуле.

два таймера не для синусоиды, а для потоковых данных, половину буфера заполнять, пока DMA второй половиной ЦАП кормит, а второй таймер следит за битрейтом.


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Чт авг 01, 2019 20:43:52 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
Прокомментирую вкратце некоторые идеи:
-К572ПА1 в качестве ЦАПа для DDS не годится, слишком медленный. Нужна скорость установления уровня не более нескольких единиц наносекунд.
-Встроенный ЦАП даже при условии разгона всё равно медленнее внешнего резисторного (~ 4,5Мсемпла/сек против ~5 Мегасемплов/сек на F103 && 72MHz)
- Кому-как, а лично мне паять корпуса с более мелким шагом чем у tqfp32 трудно физически.. и руки подводят и зрение. :cry: Так что единственный вариант покупать готовую плату. Кстати платы аля BluePill, но с F303 уже есть в продаже, видел на Али по 300р, к сожалению ссылку не сохранил :facepalm:
-шутка про ассемблерные вставки понравилась :)))


ассемблерные вставки в ардуино под AVR, IDE это позволяет. частенько попадались кстати.
на STM гуру ваяющих в ассемблере в природе не встречал, но поговаривают, что такие существуют.
К572ПА1 я для примера привел, ессно нужны более современные.
если внешняя R2R то берите готовой дип сборкой, их еще продают, только с погрешностью не больше 1 %, не хорошо когда старший бит своим разбросом перекрывает все младшие с запасом, синусоиды потом надкусанные получаются :)

Добавлено after 25 minutes 10 seconds:
кстати вот примерчик показательный:
https://habr.com/ru/post/372453/
Логический анализатор
Самый быстрый режим. Примерно 20 MSPS на каждом канале. Самый быстрый код для этого режима выглядит так:
Код:
u32 i = 0;
dataBuffer.u8[i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;
dataBuffer.u8[++i] = GPIOA->IDR;

и так далее на весь буфер.
Значение переменной i в этом случае вычисляются на этапе компиляции и в итоге из dataBuffer.u8[++i] = GPIOA->IDR; получается всего 2 операции — загрузить данные в регистр из порта и сохранить данные в память по заранее посчитанному адресу. Никакими циклами такой производительности достичь не получилось.

тем же способом можно и на R2R семплы выплевывать, если мимо тормоза с DMA .


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Чт авг 01, 2019 22:32:33 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 96
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 789
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
__asm {

LDRH rez,[#0x4001244C]
STRH rez,[addressbuffer], #2
.
.
.
.
.
}

Так еще быстрей.

Добавлено after 3 minutes 3 seconds:
Но будет джиттер.

_________________
IVL ex UA6PJ OSC_F303&F103


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 05:43:40 
Открыл глаза

Зарегистрирован: Вс мар 24, 2013 17:21:28
Сообщений: 48
Рейтинг сообщения: 0
Не самое оптимальное решение.
Если форма сигнала не изменяется, создается массив и связкой таймер+ЦАП+DMA генерируется сигнал. При этом нет никаких прерываний и действий со стороны процессора. Периферия работает сама по себе. Поэтому если хотите использовать все возможности МК, ардуина не самый подходящий инструмент.


Мурик, вы уже не в первый раз пишите про ардуино какие-то странные вещи. В чём конкретно неподходит то? В частности написать тот же вывод массива через DMA в Arduino IDE ещё быстрее и проще чем в любой другой IDE. Это буквально 5 строк.


ассемблерные вставки в ардуино под AVR, IDE это позволяет. частенько попадались кстати.


Вы про что? Я собссно как раз из тех, кто активно использует ассемблерные вставки и на AVR и на ARM :)


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 18:16:40 
Собутыльник Кота
Аватар пользователя

Карма: 7
Рейтинг сообщений: 124
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 2987
Рейтинг сообщения: 0
DimKra писал(а):
В частности написать тот же вывод массива через DMA в Arduino IDE ещё быстрее и проще чем в любой другой IDE. Это буквально 5 строк.
И что помешало выложить в теме эти 5 строк?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 19:07:12 
Открыл глаза

Зарегистрирован: Вс мар 24, 2013 17:21:28
Сообщений: 48
Рейтинг сообщения: 0
Мурик , можно и выложить :) Вот пример, выводит 8-битный синус в ЦАП через DMA . Написал, когда изучал F103ret6.
Код:
#include <libmaple/dac.h>
#include <dma_private.h>
uint8_t wave[256]; //массив синусоиды
void setup() {
for(uint16_t n=0; n<256; n++){wave[n]=255*(sin(TWO_PI*float(n)/256)+1)/2 ;}// синус
dac_init(DAC,DAC_CH1);
DAC->regs->CR =  DAC_CR_EN1 | DAC_CR_BOFF1 | DAC_CR_TEN1 | (1<<5) | DAC_CR_DMAEN1;
TIMER2_BASE->CR2= 1<<5; TIMER2_BASE->ARR=1;
TIMER2_BASE->CR1=1;

dma_init(DMA2);
dma_setup_transfer(DMA2,DMA_CH3,&DAC->regs->DHR8R1,DMA_SIZE_8BITS, (uint8_t*)wave, DMA_SIZE_8BITS, (DMA_FROM_MEM|DMA_MINC_MODE|DMA_CIRC_MODE) );
dma_set_num_transfers(DMA2, DMA_CH3, 255);
dma_enable(DMA2, DMA_CH3);

}

void loop() {  }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 20:16:26 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
готового решения из всех теоретических изысканий и взаимных замеров IQ, я так понимаю, не предвидится..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 20:25:05 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 96
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 789
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
А это http://arduino.ru/forum/proekty/generat ... ent-457249 что не готовое ?

_________________
IVL ex UA6PJ OSC_F303&F103


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 20:50:44 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
А это http://arduino.ru/forum/proekty/generat ... ent-457249 что не готовое ?

я про бой двух интеллектов))
ветку по ссылке я в первую очередь пересмотрел, и буду пробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 21:04:15 
Открыл глаза

Зарегистрирован: Вс мар 24, 2013 17:21:28
Сообщений: 48
Рейтинг сообщения: 0
К сентябрю будет версия 3.5 :) В частотометре можно будет вкл/откл делитель на 8. и ещё планирую новый режим - одновибратор. По нажатию кнопки будет генерировать импульс длительностью от одного такта мк (~13,8nS) и длиннее. А пока в отпуск собираюсь.. :music:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 22:07:46 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 96
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 789
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Ну да, ssss же сказал что все это " ерунда получается" :))). Хорошо отдохнуть!

_________________
IVL ex UA6PJ OSC_F303&F103


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 22:48:52 
Собутыльник Кота
Аватар пользователя

Карма: 7
Рейтинг сообщений: 124
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 2987
Рейтинг сообщения: 0
DimKra писал(а):
В частности написать тот же вывод массива через DMA в Arduino IDE ещё быстрее и проще чем в любой другой IDE.
DimKra писал(а):
Вот пример, выводит 8-битный синус в ЦАП через DMA.
Во первых, строк больше чем 5.
Во вторых, с таким подходом можно написать в другой IDE и отладить, что в ArduinoIDE недоступно.
ArduinoIDE ничего не упрощает. Код платформозависимый. Пока что одни недостатки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пт авг 02, 2019 23:17:26 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
Спасибо за конструктив, и приятно отдохнуть!))

Добавлено after 8 minutes 16 seconds:
И да, одновибратор это полезная штука.
Хорошо бы еще счетчик импульсов с компаратором на входе прикрутить, чтобы возможность отлова тех самых иголок в постоянке появилась.
Дебажить аппаратные глюки без таких ловушек сложновато, вч осцилом даже поймать сложно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пн авг 05, 2019 18:59:44 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 28
Зарегистрирован: Вс янв 20, 2013 12:45:25
Сообщений: 347
Откуда: Астана, Казахстан
Рейтинг сообщения: 0
Да! Теоретические изыскания пока ни как не сказываются на практическом конструктиве в ЛУТ исполнении из рассыпных деталей.
Видать придется самому печать рисовать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Пн авг 05, 2019 21:44:04 
Вымогатель припоя

Зарегистрирован: Ср сен 09, 2015 13:09:15
Сообщений: 547
Рейтинг сообщения: 0
софт и схема есть, уже половина работы выполнена, осталось под свою комплектуху плату нарисовать.
ну или в архиве яндекс диска у пользователя 240265 нужное поискать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Функциональный генератор на базе STM32F103
СообщениеДобавлено: Вт авг 06, 2019 05:02:35 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 96
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 789
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Там нету.

_________________
IVL ex UA6PJ OSC_F303&F103


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y