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

 
 
> SAM4L, DMA и проц
sifadin
сообщение May 22 2014, 17:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Здравствуйте!
Использую массив памяти, разбитый на две части для записи во флэш
DMА заполняет одну половину массива, а другую проц перекидывает во флэш
Потом они меняются
итд
При считывании ошибки, неясно почему.
Вот думаю
Могут ли процессор и DMA одновременно обращатся к SRAM?
Останавливается ли проц когда работает DMA?
В документации не нашел. В глаза не бросилось.
Странно такой важный пункт могли бы почетче
Подскажите плз, если кто знает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение May 31 2014, 07:10
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Да я не говорю про проблемы, я говорю про сложности.
вот типа завершение через Channel enable как раз из того раздела.

If a channel must be disabled without losing data in the FIFO, the Halt bit must be se
so that further DMA requests are ignored. The Active bit must then be polled until it
reaches 0, indicating that there is no data left in the FIFO. Finally, the Channel Enable
bit can be cleared.

ибо
A channel can be disabled by clearing the Enable bit. This causes the current AHB
transfer (if one is in progress) to complete and the channel is then disabled. Any data
in the FIFO of the relevant channel is lost. Restarting the channel by setting the
Channel Enable bit has unpredictable effects, the channel must be fully re-initialized.

Но это все для LPC на случай переключения руками. А что в этом проце фиг знает... Но я бы осцилом поглядел на SPI обмен, не возникает ли в момент переключения каких тупней, типа пропусков клоков, их дрожания и так далее... Проц в SPI слейв или мастер, не очень понятно из вводного сообщения. SPI железный или на прерываниях, есть ли у него ФИФО. То есть я бы поискал вокруг ДМА проблеммы
Go to the top of the page
 
+Quote Post
sifadin
сообщение May 31 2014, 10:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Цитата(Golikov A. @ May 31 2014, 15:20) *
SPI железный или на прерываниях, есть ли у него ФИФО. То есть я бы поискал вокруг ДМА проблеммы


SPI железный, в режиме SLAVE, фифо есть он выключен
байты группируются в кадры по 12штук, те 3три 32бит слова

между кадрами интервал 30мкс
частота spi 2мгц
проц 10мгц
DMA перегружается автоматически. У нее есть регистры перегрузки MARR, TCRR
Одновременно срабытывает прерывание и в регистры перегрузки пишеться новое значение

А проблемы не со стороны DMA а со стороны проца
Потому что есть передавать константы то проблем нет. Это значит проц считывает не с того адреса поэтоиу если все константы то результат неискажается
То же самое - если DMA остановить то последние данные считывается без ошибок
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 16:51
Рейтинг@Mail.ru


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