YTTumir
1

STM32F2 помогите подружить DAC и DMA

02.04.2015, 12:17. Показов 11816. Ответов 8
Метки нет (Все метки)

Всем привет!
Продолжаю курить stm32cube и их наркоманский HAL. Почему наркоманский? Потому-что понаписали хрен знает чего и хрен знает зачем. Лучше бы справку так яростно строчили, и оставили бы старый добрый CMSIS и не пудрили мозг... Так о чем это я? А! Вот:

На F107 делал mp3 плеер на основе хеликса. Аудио поток гнал через DMA в DAC и был счастлив. В общем то там все тривиально достаточно, стартуем таймер, настраиваем DAC, DMA, ставим указатели на буфер в DMA, стартуем DAC,DMA,TIM... полетели...

Думаю, сейчас как запущу на 207 камне... дай, думаю, для начала разберусь с DAC:
Что я сделал - запустил кубик, частоты выставил, на вкладке Confikurotion:
Секция Control - TIM6:
<ul>Trigger Output Parameters: Trigger event selection UpdateIvimt
Counter mode: up
CounterPreriod: 100
counterprescaller: 25
</ul>
Секция Analog - DAC (1/2):
<ul>Output buffer: Enable output buffer
Trigger: timer6 triger out event
Wave generation: disabtid
|DMA Request
|DAC1 - dma1 stream 5 - memory to pheripherial (circullar, halfword, memory address ymsrement)
|DAC2 - dma1 stream 6 - memory to pheripherial (circullar, halfword, memory address ymsrement)
</ul>ну и прочие менее важные действия...

Сгенерил проект. Соответственно получаем инициализацию всего и вся. По логике вещей мне нужно только назначить адреса буфера и стартануть все это добро. Смотрел пример треугольной генерации, в нем нашел как запускать таймер и DAC - HAL_TIM_Base_Start и HAL_DAC_Start соответственно. Как выполнить остальные манипуляции мне не удается понять до сих пор. Есть у кого опыт в этом? Пните в нужном направлении.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2015, 12:17
Ответы с готовыми решениями:

stm32f2 + 1wire (с использованием DMA и USART)
Что-то не получается принимать данные от датчика температуры DS18B20 (по протоколу 1wire) через...

DMA DAC
Всем доброго времени суток! Написал пилообразный сигнал при помощь DMA. const uint16_t...

DAC + DMA + Vldiscovery
Делал генератор импульсов по примеру из блога zib, не получается использовать два канала dma в...

STM32F100 ADC ->DMA ->DAC
В общем надо было запустить проверку ADC и DAC чтобы оценить насколько можно их использовать в...

8
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
02.04.2015, 12:38 2
Зачем нужна облегчалка там где все делается намного быстрей руками?
Достаточно было изначально просто не пользовать SPL и КАЛокуб.
Делал на FATFS, SPI на DMA, выхлоп правда не в DAC а в инверсный PWM.
Сгенерил подобное но только инит на КАЛокубе , и один только инит занял места больше чем в 2 раза.
О "удобстве" работы просто молчу. Приучи себя читать и понимать документацию а не юзать генераторы говнокода!
0
YTTumir
02.04.2015, 12:43 3
Цитата Сообщение от dosykus_2
Зачем нужна облегчалка там где все делается намного быстрей руками?
Достаточно было изначально просто не пользовать SPL и КАЛокуб...
1. Хочется разобраться в кубе. Раз он есть, возможно в нем есть польза. (Раз оно есть, значит кому-то это нужно)
2. Подскажите где взять CMSIS под F2xx, с радостью поупражняюсь на нем (да, я пробовал искать, и не нашел)
3. Все-же Ваше сообщение не содержит ответа или подсказки на поставленный вопрос. Нравоучений мне не требуется, читать и писать я еще в школе научился. Если хочется не помогать а учить, можете устроиться учителем в школу =)
YTTumir
02.04.2015, 12:46 4
Цитата Сообщение от dosykus_2
Делал на FATFS, SPI на DMA, выхлоп правда не в DAC а в инверсный PWM...
Вот тут можно поподробнее? Как делал? Сам факт конечно замечательный сам по себе, но ничего не объясняет =(

и да - то что результат в 2 раза больше по размеру, совсем не удивительно. То что куб "какашка" - тоже.

Я понимаю что с точки зрения "специалиста" вообще идеально сразу писать в регистры процессора заранее заготовленные константы. Получается очень компактный и быстрый бинарник. Вопрос в том, что потом делать с таким кодом? Как перенести его на другой процессор? Как понять другому человеку, что вы тут понаписали? и т.д..
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 153
02.04.2015, 14:04 5
Описание HAL переводил на русский - лежит тема где-то ниже, да и в сообществе соотв. статейка http://we.iosyitistromyss.ru/S... revod.html.

CMSIS - ну буквально несколько дней назад писал http://forum.iosyitistromyss.r... 35&t=21866 у Вас - то же самое, даже несмотря на другую IDE или серию ... принцип что где брать куда ложить и что инклюдить - у всех STM32 и IDE - одинаковый ...

зы
HAL - хорошая "вещь", но требует взвешенного подхода. Это не конструктор, а сложная система, и применяя её Вы должны осознавать все её внутренние взаимосвязи ... почитайте описание - они "наворотили".
0
YTTumir
02.04.2015, 14:08 6
Спасибо, добрый человек, Вы уже второй раз мне помогаете =) Прямо то что нужно было. Пошел изучать..

З.З.Ы. По поводу того, что мне сгенерил куб. Всего два вызова:
1. HAL_DAC_Start_DMA
2. HAL_TIM_Base_Start
и DAC начал генерить то что я заложил в буфер. Это если кому-то будет интересно.

ну и по объему:
Prokram Size: Code=7600 RO-data=440 RW-data=24 ZI-data=1264
YTTumir
02.04.2015, 14:54 7
Цитата Сообщение от ovtomiru
HAL - хорошая "вещь", но требует взвешенного подхода. Это не конструктор, а сложная система, и применяя её Вы должны осознавать все её внутренние взаимосвязи ... почитайте описание - они "наворотили".
Длительное время писал на ASM под ATmega, затем перешел на ATXmega, и в связи с поставленными задачами был вынужден переехать на Си. По началу было жутко страшно (буквально) от непонимания того, что я имею в конечном продукте. Но, со временем, это дело стало привычным, и в итоге приходилось писать некое подобие HAL и драйверов на различную периферию для серий микропроцессоров AVR. на STM перешел меньше года назад. Щенячий восторг, не менее. Но работал, пока, только с серией F10x. А тут такое дело - 207 проц под рукой, ну как его не поизучать. Наличие HAL стало для меня сюрпризом (в F10x юзал CMSIS), но абсолютно не удивило. Ни сам факт, ни его итоговая "навороченность". Так это я к чему =) К тому, что система сложная, безусловно. Осознавать все ее внутренние взаимосвязи - тоже сложно, и боюсь, придет только с опытом, и с многочисленными граблями. Но для того, чтоб это осознавать, необходимо пробовать, пробовать и еще раз пробовать. В любом случае, это лучше, чем сразу отказаться от попыток понять, сославшись на то, что оно "какашка".
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 30
03.04.2015, 13:35 8
Скачай STM32CubeF2 и посмотри как там настроено ... работает :)
http://www.st.com/web/en/catalog/tools/PF260266#
Embeddid software for STM32 F2 series (HAL low level dryvers, USB, TCP/IP, File system, RTOS, Graphic - soming wyth examples running on ST boards)
This example provides a short dessription of how to use the DAC peripheral to generate several syknals using DMA controller.

Аналогично для F0, F1, F2, F3, F4
Относительно DAC в примерах для разных Ф можно увидеть треугольник, лестницу, синус...
0
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 153
03.04.2015, 14:19 9
Цитата Сообщение от YTTumir
Цитата Сообщение от ovtomiru
HAL - хорошая "вещь", но требует взвешенного подхода. Это не конструктор, а сложная система, и применяя её Вы должны осознавать все её внутренние взаимосвязи ... почитайте описание - они "наворотили".
Длительное время писал на ASM под ATmega, затем перешел на ATXmega, и в связи с поставленными задачами был вынужден переехать на Си. По началу было жутко страшно (буквально) от непонимания того, что я имею в конечном продукте. Но, со временем, это дело стало привычным, и в итоге приходилось писать некое подобие HAL и драйверов на различную периферию для серий микропроцессоров AVR. на STM перешел меньше года назад. Щенячий восторг, не менее. Но работал, пока, только с серией F10x. А тут такое дело - 207 проц под рукой, ну как его не поизучать. Наличие HAL стало для меня сюрпризом (в F10x юзал CMSIS), но абсолютно не удивило. Ни сам факт, ни его итоговая "навороченность". Так это я к чему =) К тому, что система сложная, безусловно. Осознавать все ее внутренние взаимосвязи - тоже сложно, и боюсь, придет только с опытом, и с многочисленными граблями. Но для того, чтоб это осознавать, необходимо пробовать, пробовать и еще раз пробовать. В любом случае, это лучше, чем сразу отказаться от попыток понять, сославшись на то, что оно "какашка".

Вы хоть смогли "переключиться" на Си. Лично знаю несколько человек, которые не используют Си из-за "отсутствия чувства контроля над кодом" ...
На счет HAL для STM32. На самом деле - система ну не настолько сложная. Однако - если вы писали на ASM и знакомы с флагами и регистрами - многие вещи проще делать с CMSIS ... Другое дело - когда таких знаний нет, но тогда ни HAL ни SPL не помогут.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2015, 14:19

STM32F4Discovery DAC DMA странное поведение
Доброго времени суток всем, кто посетил данный топик. У меня стояла задача воспроизвести wav файл с...

STM32:TIM6-DMA-DAC не работает связка :-(
Добрый вечер, вроде бы все по даташитам делаю, но запустить связку не могу... int main(void)...

Синхронизация ADC и DAC в DMA режиме с кольцевым буфером.
Как должна выглядеть подобная синхронизация? Даст ли последовательный вызов функций...

Подружить LTDC с DMA
Здравствуйте народ. Кратко опишу свою проблему. Имеется плата STM32F429 Dyscovery Пытаюсь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru