Отговори на тема  [ 6 мнения ] 
STM32 I2C + DMA 
Автор Съобщение
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение STM32 I2C + DMA
Е не можах да накарам I2C-то да работи с ДМА и това е. (Само с интеръпти си работи отлично). Става дума за master mode, за слейв имам един еепром.

Ето какво се случва:
0. Клоци имат всички.
1.1 Инизиализирам И2Ц-то - ОК.
1.2 Вдигам CR2->DMAEN на И2Ц-то, щото така пише по менюалите.
1.3 IRQ-та за ДМА и И2Ц: конфигурирани и разрешени.

2. Инициализирам си ДМА канал (+ TCIE интеръпти) и го пускам. Разрешавам event interrupts от И2Ц-то.
3. Започвам трансфер - START condition.
4. Интеръпт след START condition - OK. Зареждам слейв адреса.
5. Интеръпт след ADDR. Забранявам event interrupts от И2Ц-то - вече не ни трябват, щото минаваме на ДМА, уж. TxE флага се вижда, че е вдигнат, изчиствам ADDR интеръпта с четене на SR1 и SR2, обаче ДМА трансфери не започват. CNDTR регистъра си стои с първоначално заредената дължина за трансфер и не мърда. Аз наивно си мисля, че щом има TxE флаг, значи трябва трансфера да захапе, обаче - не.

Пробвах да местя инициализацията на ДМА-то къде ли не, не работи и това е.
Да не би да има някаква магия, дето съм изпуснал да приложа? (контролера е STM32L152VBT6).


Вто Мар 11, 2014 12:24 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: STM32 I2C + DMA
преди време имах проблем с нетръгващо ДМА... оказа че бях забравил flow контрола, демек дали ДМА-то е мастер или периферията прави заявки.
В твоя случай ако следваме логиката на ST на периферията трябва да й кажеш да прави заявки към ДМА-то, а то да е слейв...


Вто Мар 11, 2014 11:06 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение Re: STM32 I2C + DMA
То точно това е целта на тоя бит DMAEN (в И2Ц-то) в комбинация с DIR бита в ДМА-то, но аз си ги сетвам както трябва.
Аз сега гледам какви ли не примери по темата и ми прави впечатление, че всички ползват отделни ДМА канали за Rx и Tx. И се питам защо, след като бъса е half-duplex? Опитвам се да ползвам само един ДМА канал за И2Ц канал, може в това да е проблема (но в момента нямам таргет да пробвам).


Вто Мар 11, 2014 11:31 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: STM32 I2C + DMA
Поне при Ф2 ДМА канала не е въпрос на свободен избор. Имаш определен брой възможности за ползване...

Миро, по отношение на флоъ контрола СДИО-то не беше ли единствената различна периферия?


Вто Мар 11, 2014 11:40 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: STM32 I2C + DMA
Значи аз говоря за DMA_SxCR_PFCTRL флага, при теб вероятно е дефиниран по друг начин... аз ползвам конвенцията ПЕРИФЕРИЯ–РЕГИСТЪР–СТОЙНОСТ

Това е независимо от другите настройки. Проблемът е че това има едно описание, а както казва Веско комбинациите не са свободни.

В случая с тоя флаг се настройва ДМА-то да прави трансфер само при заявка от периферият. В обратния случай не би трябвало да се съобразява с периферията и да прави трансфер веднага като го разрешиш. Да, ама не. Поне при SDIO дето борих не правеше трансфери въпреки че е разрешен и всичко останало....


Вто Мар 11, 2014 11:47 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение Re: STM32 I2C + DMA
@Vesko, благодаря, това е проблема.

За форума:
Извод №0: Менюала не трябва да се чете избирателно :)
Извод №1: Не всеки ДМА канал може да се ползва с всяка периферия.
Извод №2: При работа с определена периферия, даден ДМА канал си има посока.


Вто Мар 11, 2014 12:10 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни