Tap to unmute

STM32 #10. DAC делаем Синус

  Рет қаралды 6,066

NR.electronics

NR.electronics

Күн бұрын

Пікірлер
@ИгорьРубацкий-ч1о
@ИгорьРубацкий-ч1о 2 жыл бұрын
Спасибо за Ваш труд и уроки. Всех Вам благ.
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо Вам большое за тёплые слова
@TDMLab
@TDMLab 2 жыл бұрын
👍Чтобы выходной сигнал не искажался около нуля, необходимо отключить встроенный буфер. Для тестов на осциллограф можно напрямую, а в схемах имеет смысл поставить внешний буфер на ОУ с двуполярным питанием. Где-то на середине синуса наблюдается странный излом, да и в целом похоже, что форма искажена. Я бы использовал внешнюю табличную генерацию точек. Должно быть все красиво.
@NRelectronics
@NRelectronics 2 жыл бұрын
Возможно действительно встроенный буфер сделал своё дело. Форма норм, а на середине есть небольшой действительно переход.
@ElliottGrosvenor
@ElliottGrosvenor 2 жыл бұрын
Я тоже не понял, зачем в цикле все точки пересчитывать снова и снова.
@NRelectronics
@NRelectronics 2 жыл бұрын
Ну вы даёте. Чтобы синус был непрерывный во времени.
@NRelectronics
@NRelectronics 2 жыл бұрын
Проверил с выключенным все же буфером, излом сохранился, дело точно не в нем. Буфер как бы и не должен влиять на форму, на то он и буфер...
@oldbrowze3678
@oldbrowze3678 2 жыл бұрын
@@NRelectronics имеется ввиду, что достаточно один раз создать массив значений, а уже в цикле подставлять из массива
@Сергеймиролюбов-э6г
@Сергеймиролюбов-э6г 2 жыл бұрын
Благодарю за информацию, интерестно
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста, заходите ещё.
@ewfreg5nythyhtewt4w
@ewfreg5nythyhtewt4w 8 ай бұрын
число PI чуть чуть неточное в коде :D
@NRelectronics
@NRelectronics 8 ай бұрын
Чуть чуть можно 😀👍
@makhsumbairamov939
@makhsumbairamov939 Жыл бұрын
можете обьяснить как вы код подключили в синусу в этой программе amcap
@NRelectronics
@NRelectronics Жыл бұрын
Не совсем понял вопрос. Как я подключил синус или программу amcap?
@antonGoldinov
@antonGoldinov Жыл бұрын
Как Вы это все поняли) моё увожения
@NRelectronics
@NRelectronics Жыл бұрын
Сам до сих пор не понимаю как я это понял)) спасибо Вам!
@toshibamaster2210
@toshibamaster2210 3 ай бұрын
как сделать синусоиду симетричную относительно нуля и чтобы во время инициализации котролера не было выброса ?
@NRelectronics
@NRelectronics 3 ай бұрын
Запрограммировать)
@toshibamaster2210
@toshibamaster2210 3 ай бұрын
@@NRelectronics цап и шим однополярные если делать смещение 3.3 / 2 на буферном ОУ то до инициализации МК выходное напряжение уйдет в минус. при чем зесь программирование ??
@NRelectronics
@NRelectronics 3 ай бұрын
Программирование всегда необходимо. В минус не уйдет при одноподярном питании. Значит синус схемотехникой надо "смещать" вниз.
@denisgluk431
@denisgluk431 Жыл бұрын
Давно хочу, если руки дойдут, ЖКИ индикатор попробовать через эту штуку подключить, там какой-то хитрый аналоговый сигнал для управления надо.. Бывает конечно встроенный контроль, но это для больших индикаторов и сам контроллер километрового размера надо брать...
@NRelectronics
@NRelectronics Жыл бұрын
Даведите руки до этого.
@kalobyte
@kalobyte 2 жыл бұрын
не совсем понял, зачем ты создал массив sine_value, если ты только одно значение там храниш и оно у тебя выводится сразу же в цап
@NRelectronics
@NRelectronics 2 жыл бұрын
Это с первого примера остаток, когда просто числа были.
@Mishukan404
@Mishukan404 Жыл бұрын
Не получается получить контролируемые значения частоты синуса через прерывания TIM6_DAC_IRQHandler(). :( Хотябы 1 МГц. Юзаю G431.Запихиваю в обработчик функцию HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, sin_table[i++]); само собой обнуляя i при достижении 256. i берется из табличных значений, что быстрее чем по формуле. Все равно в лучшем случае какие-то жалкие сотни герц. Счет TIM6 до 1, прескейлер 0. Частота мк 150МГц. Не ужели изза тормознутости функции? или я туплю?
@NRelectronics
@NRelectronics Жыл бұрын
возможна где-то ошибка у вас, ибо звук выводят довольно не убого качества. По таблице да, быстрее выводить.
@Mishukan404
@Mishukan404 Жыл бұрын
@@NRelectronics Да понять бы где :( Голоу уже сломал :( Вот содержимое обработчика и настройки таймера. Вроде всё правильно. А на выходе имею 1.7 кГц при частоте мк 150мГц. Массив со значениями sin_table взял из комментов ниже void TIM6_DAC_IRQHandler(void) { HAL_TIM_IRQHandler(&htim6); HAL_DAC_IRQHandler(&hdac1); static uint32_t i = 0; HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, sin_table[i++]); if (i > 255) i = 0; } htim6.Instance = TIM6; htim6.Init.Prescaler = 0; htim6.Init.CounterMode = TIM_COUNTERMODE_UP; htim6.Init.Period = 1; htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
@NRelectronics
@NRelectronics Жыл бұрын
В обработчике не вижу что отсутствует сброс какого либо флага по попаданию в него. Это общий момент работы обработчиков.
@odissey2
@odissey2 4 ай бұрын
Синус,однако, получился весьма условный. В чём причина? Ведь DAC весьма неплохой.
@NRelectronics
@NRelectronics 4 ай бұрын
мало точек видимо ...
@odissey2
@odissey2 4 ай бұрын
@@NRelectronics для 256 точек странная форма. Может нужен выходной буффер?
@NRelectronics
@NRelectronics 4 ай бұрын
думаю нет, не перегружен выход
@alex225559
@alex225559 Жыл бұрын
Как то стнус больше на треугольник похож со скруглёнными вершинами
@NRelectronics
@NRelectronics Жыл бұрын
Так и получается синус))
@alex225559
@alex225559 Жыл бұрын
@@NRelectronics я часто вижу синус/косинус с преобразователей , как то немного по другому выглядит , или в STM линейность DAC не совсем линейная .
@by0uki
@by0uki Жыл бұрын
@@alex225559как будто цикл отрабатывает напрямую без таймера, и синус кривой из-за того что расчет разных значений синуса происходит за разное количество тактов
@marina16350
@marina16350 10 ай бұрын
Для второго примера синтеза синуса по 256 отсчетам через 12р DAC. Сначала в инициализационной части, перед вечным циклом должна быть рассчитана таблица отсчетов sin_value[256] по правильной формуле: for (unsigned int i=0; i
@IgorChudakov
@IgorChudakov Жыл бұрын
0xFFF != 4096 😏
@NRelectronics
@NRelectronics Жыл бұрын
Где такое, было? Допускаю что оговорка, подскажите где?
STM32 #9. DAC лучше и удобнее чем PWM
18:48
NR.electronics
Рет қаралды 4,8 М.
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
STM32G4 ЦАП Скорость, буферизация
8:23
Linux для Программистов: Зачем и Кому Он Нужен? 🤔
25:18
Александр Савченко
Рет қаралды 4,4 М.
STM32. Урок 13. USART. Теория. Часть 1
45:45
NR.electronics
Рет қаралды 10 М.
STM32. CMSIS #10. Работа USART через DMA в circular mode
33:24
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН