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

 
 
> Один SPI на два дивайса
Oleg_IT
сообщение Nov 23 2015, 07:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



STM32F417. Есть два дивайса, датчик температуры и управляемый резистор, из первого нужно только читать данные, во второй только писать, выводы MOSI, MISO развожу по соответствующим девайсам, CS понятно разные. SPI2 назначать как Full-Duplex Master?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Obam
сообщение Dec 11 2015, 14:19
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Вот тут-то и парадокс: когда знаешь что и где "кубы" без надобности.

Так почему DMA, не приняв последний байт, отваливался?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Dec 11 2015, 14:40
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(Obam @ Dec 11 2015, 18:19) *
Вот тут-то и парадокс: когда знаешь что и где "кубы" без надобности.

Так почему DMA, не приняв последний байт, отваливался?

Да ни какого парадокса, просто экономия времени и можно посмотреть как люди программы пишут, если опыта мало.

А с DMA пока не пойму. в прерывания он входит только с HAL_DMA_STATE_READY_MEM0, сконфигурил я его так. Я вот думаю, может в SPI флаг окончания приёма контролировать, в основном цикле и когда прерывание от DMA пришло. Кривовато это как-то.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 12 2015, 01:07
Сообщение #4


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Oleg_IT @ Dec 11 2015, 17:40) *
Да ни какого парадокса, просто экономия времени и можно посмотреть как люди программы пишут, если опыта мало.

А с DMA пока не пойму. в прерывания он входит только с HAL_DMA_STATE_READY_MEM0, сконфигурил я его так. Я вот думаю, может в SPI флаг окончания приёма контролировать, в основном цикле и когда прерывание от DMA пришло. Кривовато это как-то.


Контролировать в цикле неправильно.
Во первых есть аппаратный CS, который праввильно поведет себя.
Если совсем нет выбора, а надо подключить несколько SPI устройств, то можно включить их последовательно. Поищите по ключевым словам daisy chain.
SPI устройство это регистр сдвига, который защелкивает информацию по положительному фронту CS. Для записи в устройство в конце цепочки вам придется формировать посылку из нескольких слов, чтобы нужное дошло.
Ну вот например так как здесь описано:
https://en.wikipedia.org/wiki/Serial_Periph...l_Interface_Bus

Есть и другие способы, но это уже если устройство их поддерживает.

А куб мне пока нравится.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Dec 14 2015, 06:41
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(Tarbal @ Dec 12 2015, 05:07) *
Контролировать в цикле неправильно.

Не правильно, но работает. Почему прерывание раньше происходит так и не понял, может так задумано.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   Один SPI на два дивайса   Nov 23 2015, 07:17
- - arhiv6   Да, это будет случай Full-Duplex Master.   Nov 23 2015, 07:23
- - Oleg_IT   Спасибо.   Nov 23 2015, 07:39
|- - Oleg_IT   Так не получается. Проект генерю из STM32CubeMx. П...   Dec 11 2015, 08:55
|- - Obam   Цитата(Oleg_IT @ Dec 11 2015, 12:55) SPI ...   Dec 11 2015, 10:50
|- - scifi   Цитата(Oleg_IT @ Dec 11 2015, 11:55) Так ...   Dec 11 2015, 10:58
|- - Oleg_IT   Цитата(scifi @ Dec 11 2015, 14:58) По-мое...   Dec 11 2015, 13:34
- - Obam   "…Как правильно работать с несколькими девайс...   Dec 11 2015, 09:29
|- - Oleg_IT   Цитата(Obam @ Dec 11 2015, 13:29) Каждому...   Dec 11 2015, 09:46
|- - Tarbal   Цитата(Oleg_IT @ Dec 14 2015, 10:41) Не п...   Dec 14 2015, 14:26
|- - Oleg_IT   Цитата(Tarbal @ Dec 14 2015, 18:26) Прене...   Dec 15 2015, 05:42
|- - Tarbal   Цитата(Oleg_IT @ Dec 15 2015, 08:42) Не м...   Dec 15 2015, 12:09
- - Oleg_IT   Заметил особенность, при увеличении BaudRatePresca...   Dec 13 2015, 14:18


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

 


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


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