Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

STM32F103, непонятки с DMA

Непрочитано 29.10.2014, 15:25  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от dosikus Посмотреть сообщение
dma_set_peripheral_size(DMA1, DMA_CHANNEL7, DMA_CCR_PSIZE_16BIT);
dma_set_memory_size(DMA1, DMA_CHANNEL7, DMA_CCR_MSIZE_32BIT);
Изумительно , а мы гадаем ....
Ну так tim2_buff имеет тип uint32_t! До этого делал uint16_t, получалась хрень какая-то. Хотя, можно попробовать отключить выравнивание...

Сделал массив восьмибитным, сменив размер на DMA_CCR_MSIZE_8BIT - та же история: сначала 2 последних байта, потом первые.

Прикола ради забульбенил вот это:
Код:
uint8_t tim2_buff[8] = {30,40,50,60,70,80,10,20};
Показывает по порядку: 10, 20... Мде...
Реклама:
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 29.10.2014 в 15:34.
eddy вне форума  
Непрочитано 29.10.2014, 15:50  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сколько бы байт я не передавал, сначала передаются два последних, а потом уже с начала массива...
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.10.2014, 16:26  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Вот блин!
Пошла лесом моя идея ☹
Для того, чтобы через DMA делать захват, мне нужно подключать связанный с четвертым каналом таймера 2 канал 3. А он висит на канале 1 DMA, который уже занят АЦП ☹

Вот что за [censored]?! Почему так мало DMA в STM32? Могли бы на каждую хрень свой канал выделить... А так получается, что приходится выбирать. И если надо, скажем, SPI и USART делать через DMA, придется следить, чтобы это не были, скажем, SPI1 и USART3, висящие на одном канале DMA!

Вот же срака!!!

А кто-то мне хвастался на изиэлектрониксе, что реализовал аппаратный 1-wire ... Видимо, у него не было такой нехватки каналов DMA. Или ног было много свободных, чтобы захват делать другим таймером.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.10.2014, 20:37  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Решил чередовать работу с АЦП и 1-wire (т.е. нужный канал ПДП подключать туда-сюда). Захват с горем пополам настроил.
Вот же чертовщина! DMA по захвату практически идеально соответствует картинке на осциллограмме.
А вот выхлоп — хрена с два! Первый вообще интересный: 0 10 20 30 40 50 60 70. Далее 70 80 10 20 30 40 50 60, но бывают и 63 70 80 80 80 80 80 80 (изредка).
И упорно не хочет выход устанавливаться в единицу по окончанию работы.
Вот же япона мать!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.10.2014, 20:40  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Да скачай игровую прошивку, поставь её на свой модем и посмотри в ней отладчиком, что творится в чипе... 10 минут на всё... В Виндах дебаггер прекрасно работает... К чему эти Линукс-понты и мужественное сражение с ветряными мельницами
niXto вне форума  
Непрочитано 29.10.2014, 20:57  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

eddy, А обработчик NVIC_TIM2_IRQ где ?
И где приоритеты ?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.10.2014, 21:05  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от dosikus Посмотреть сообщение
А обработчик NVIC_TIM2_IRQ где ?
Этого прерывания нет, т.к. оно не нужно.
Прерывание DMA1_7 просто отрубает DMA (это передача из буфера в CCR4), а прерывание DMA1_1 отрубает этот канал ПДП + вырубает таймер + устанавливает на выходе высокий уровень (но что-то он не устанавливается).

Позже могу весь код выложить. Я просто пока не делаю коммит, т.к. нихрена не работает.

А приоритеты им разве нужны? Не пофиг ли?
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.10.2014, 21:06  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

niXto, в линуксе тоже gdb отлично работает. Я им просто не умею пользоваться. И не собираюсь учиться. И так дохрена времени на всякую фигню тратить приходится. Скоро, вот, выучу уже наизусть даташит на STM32F103 ☹
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.10.2014, 21:11  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от eddy Посмотреть сообщение
Этого прерывания нет, т.к. оно не нужно.
А зачем тогда разрешаешь и включаешь?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.10.2014, 21:38  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32F103, непонятки с DMA

Сообщение от dosikus Посмотреть сообщение
А зачем тогда разрешаешь и включаешь?
А и правда. Включил зачем-то. Видимо, решил, что без этого не сработает пинание DMA.

Буду завтра разбираться. Наверняка, что-нибудь пропустил. Следует более вдумчиво прочесть даташит. Хотя, вроде бы, первый канал ПДП инициализируется почти так же, но работает правильно. А этот хрень какую-то делает. Такое впечатление, что DMA не всегда срабатывает (особенно когда было несколько байт подряд с одним и тем же значением, а прерывание с ошибкой так и не сгенерировалось).

Но аппаратный 1-wire очень хочется сделать.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32 - Tips 'N Tricks nahimovv ARM 28 14.10.2024 06:42
STM32F103 ADC+DMA Nik_UFO Микроконтроллеры, АЦП, память и т.д 11 24.08.2016 11:57
Tim19 -> DMA -> значение ADC в memory kvark85 ARM 6 03.06.2014 15:00
STM32 Повторный запуск DMA Nik_UFO Микроконтроллеры, АЦП, память и т.д 2 07.03.2012 17:38
DMA в ATxmega vav618 Микроконтроллеры, АЦП, память и т.д 1 03.04.2010 10:57


Часовой пояс GMT +4, время: 12:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.