реклама на сайте
подробности

 
 
> STM32F103 SD -> FSMC по DMA
-Игорь-
сообщение Nov 23 2012, 06:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



Хотел прямо с sd карточки, которая подключена к sdio, данные посылать на жк дисплей, который подключен через fsmc. Не удается. Дело как я понимаю в том, что 4-х байтное слово dma отправляет на fsmc за 4 цикла. Не могу найти решения, чтоб обойти это. Если посылать через буфер в озу, то все работает. Но если так делать, то пропадает почти весь смысл использования dma.
Подскажите как обойти это ограничение.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-Игорь-
сообщение Nov 26 2012, 06:40
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



И так.
С флагом dma_m2m понятно. Он здесь не нужен.
Повторю.
Задача прямо с флешки с помощью дма заливать данные на lcd, который подключен к fsmc.
По отдельности все работает. Т.е. нормально считывается с флешки в буфер озу (используется dma2 channel4). Буфер озу успешно заливается в lcd (используется dma 1 channel3). Здесь никаких проблем не возникает. Но как только при конфигурировании дма2 вместо адреса озу задаю адрес lcd, цикл dma завершается? (виснет канал?) после примерно 50 транзакций, хотя задается 256 и больше. Все убирал из программы, оставлял только функции работы с флешкой и лсд - все равно дма отрабатывает только 50 транзакций. А вообще-то я использую канал 5 второго дма, на этот канал этот завис не отражается. Завис, это образно, я не знаю, что происходит с каналом, но цикл полностью не выполняется и флаг завершения обмена не выставляется.
Код функции запуска транзакций:
Код
static void DMA_lcd(u32 *BufferDST, u32 BufferSize)
{
  DMA_InitTypeDef DMA_InitStructure;
  DMA_ClearFlag(DMA2_FLAG_TC4 | DMA2_FLAG_TE4 | DMA2_FLAG_HT4 | DMA2_FLAG_GL4);
  /* DMA2 Channel4 disable */
  DMA_Cmd(DMA2_Channel4, DISABLE);
  /* DMA2 Channel4 Config */
  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SDIO_FIFO_Address;
  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)BufferDST;
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
  DMA_InitStructure.DMA_BufferSize = BufferSize / 4;
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
  DMA_Init(DMA2_Channel4, &DMA_InitStructure);
  DMA_Cmd(DMA2_Channel4, ENABLE);
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- -Игорь-   STM32F103 SD -> FSMC по DMA   Nov 23 2012, 06:52
- - -Игорь-   Я не прав. Оказывается пересылка идет правильно, н...   Nov 23 2012, 09:07
|- - 011119xx   Цитата(-Игорь- @ Nov 23 2012, 14...   Nov 23 2012, 09:19
|- - -Игорь-   Код для SD взят из примеров от stm. Для lcd из при...   Nov 23 2012, 09:41
- - -Игорь-   посмотрел регистры канала дма после подвиса. Во вс...   Nov 26 2012, 09:52
- - 011119xx   А вот это что задается? КодDMA_InitStructure.DMA_B...   Nov 26 2012, 09:55
|- - -Игорь-   Цитата(011119xx @ Nov 26 2012, 12:55) А в...   Nov 26 2012, 10:19
- - 011119xx   После 26 транзакций на экране дисплея адекватная к...   Nov 26 2012, 10:31
- - -Игорь-   Да. Т.е. 52 пикселя выводятся туда куда я указываю...   Nov 26 2012, 10:59
- - k000858   интерфейс подключения карты сидит случайно не на т...   Nov 28 2012, 03:36
- - -Игорь-   На разных. Я посмотрел апликуху an2598. В ней пере...   Nov 28 2012, 04:09
- - 011119xx   Смотрели в отладчике на каком участке кода происхо...   Nov 28 2012, 05:41
- - -Игорь-   Программа не зависает. Прекращается обмен по дма. ...   Nov 28 2012, 07:59
- - 011119xx   Все же хотелось бы увидеть ваш код (а так сложно г...   Nov 28 2012, 08:33
- - -Игорь-   Без fsmc это _очень_ сложно и бессмысленно. Я хочу...   Nov 28 2012, 09:24
- - 011119xx   А на sd у вас, я так понимаю, картинка в каком-то ...   Nov 29 2012, 02:18


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016