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

 
 
 
Reply to this topicStart new topic
> LPC1778 SPI DMA
Axel
сообщение Sep 29 2012, 19:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Понадобилось организовать периодическое чтение из SPI через DMA - по 19 байт за один сеанс. Получилось, но как-то криво:
1. Понадобилось два канала DMA - один ессно на прием, другой на передачу - чтобы клоки гнать. Иначе никак...
2. После каждой транзакции приходится очищать FIFO - там почему-то оказываются лишние пять байт (нулевые). На внешних линиях никаких лишних пересылок не отмечено (смотрел осциллографом). Оно бы ничего, но лишний код в прерываниях...
Если кто знает, как сделать лучше - научите...
Go to the top of the page
 
+Quote Post
SII
сообщение Sep 29 2012, 23:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



А Вы учитываете, что, когда выполняется передача от МК к внешнему устройству, параллельно производится приём, даже если принимаемые значения не имеют никакого смысла? Ведь по SPI в принципе невозможно организовать только чтение или только запись -- обе эти операции всегда выполняются одновременно и используют одинаковое число "символов" (обмен не обязательно идёт именно байтами).
Go to the top of the page
 
+Quote Post
Axel
сообщение Sep 30 2012, 03:34
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(SII @ Sep 30 2012, 02:05) *
Ведь по SPI в принципе невозможно организовать только чтение или только запись

В принципе - сколько угодно: оторвать MISO и будет Вам только передача. Ну и наоборот... biggrin.gif Все это понятно, но некрасиво...
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 30 2012, 18:44
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Axel @ Sep 30 2012, 07:34) *
В принципе - сколько угодно: оторвать MISO и будет Вам только передача.

Не будет - просто входные биты не будут с ноги получаться! Все флаги и данные можно будет из регистров прочитать.
Go to the top of the page
 
+Quote Post
Axel
сообщение Oct 1 2012, 06:40
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(KRS @ Sep 30 2012, 22:44) *
Все флаги и данные можно будет из регистров прочитать.

А можно и не читать biggrin.gif Но я вобщем не об этом... С DMA понятно. Просто я поначалу надеялся, что он поумнее будет и сможет организовать это одним каналом. А вот с очисткой FIFO - похоже что DMA не обнуляет его указатель. Это правда только первое впечатление, более детально проверю, когда время будет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:52
Рейтинг@Mail.ru


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