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

 
 
> SPI STM32
Danis
сообщение Oct 28 2010, 15:48
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Привет уважаемые форумчане.

Вот такая задача перед мной. Имеется некое ведомое SPI устройство, со своим протоколом, подключено к STM32F. Неудобство в том, что нужно обеспечить сигнал LE, на N-ном клоке DCLK. Аппаратной возможности у SPI STM32F по моему нет. Частота SPI 4 MHz. Все что в голову приходи сейчас – задействовать таймер/счетчик и считать импульсы DCLK через внешний пин таймера, потом при достижении счетчика генерить прерывание и программно устанавливать LE. Хочу услышат Ваши предложения, может что получше придумать можно? И если есть у кого пример использования таймера подобным образом (счет импульсов на пине), дайте примерчик пожалуйста, буду очень благодарен.

Сообщение отредактировал Danis - Oct 28 2010, 15:50
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Oct 28 2010, 18:40
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Ишшо один p.s. — поизучайте времянки апаратного выхода NSS контроллера SPI и попробуйте фокус с подачей этого NSS на вход запуска таймера, который будет генерировать импульс нужной длины и на нужном расстоянии от спада NSS (One-pulse mode). Может весьма недурственно получиться — и скорость SPI высокая, и строб формируется аппаратно когда нужно.

. . . . . . . . . да, вроде бы должно получиться.
У этих STM32 такие таймера... на них можно такое засобчачить, что ни одной ксюше не снилось.
(все имена вымышленные, все совпадения случайные)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Danis
сообщение Nov 3 2010, 10:51
Сообщение #3


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(ReAl @ Oct 28 2010, 21:40) *
Ишшо один p.s. — поизучайте времянки апаратного выхода NSS контроллера SPI и попробуйте фокус с подачей этого NSS на вход запуска таймера.....
. . . . . . . . . да, вроде бы должно получиться.
У этих STM32 такие таймера... на них можно такое засобчачить, что ни одной ксюше не снилось.


Конечно кривенько, но реализовал. От аппаратной ноги NSS плясать не получилось (и не получиться), ею управляю программно, перед передачей данных по SPI ее низ устанавливаю. К этой ноге подключаю аппаратный пин таймера T4 который по спаду внешнего сигнала генерит одиночный импульс на другой аппаратной ноге (применил режим One-pulse mode) заданной длинны и с заданной начальной задержкой. Так что, можно сказать все , решилось. Был бы NSS аппаратный, я б вообще счастлив был!
Если кому нужны исходники, могу скинуть…

Сообщение отредактировал Danis - Nov 3 2010, 10:56


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Apr 17 2012, 17:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Помогите разобратся с SPI1 в STM32L151.
После того как включаю SPI битом SPE , сбрасывается бит мастера MSTR.
Понимаю что какой-то конфликт сигналов, но не понимаю где.
На картинке ниже нарисовано , что Alternative Functiun 5 порта это одновременно SPI1 и SPI1 . Но как при этом два SPI смогут не конфликтовать,
если мне надо включить оба на разных портах ?


Код
    
GPIOA->MODER &= ~GPIO_MODER_MODER5;
GPIOA->MODER |= GPIO_MODER_MODER5_1;
GPIOA->MODER &= ~GPIO_MODER_MODER6;
GPIOA->MODER |= GPIO_MODER_MODER6_1;
GPIOA->MODER &= ~GPIO_MODER_MODER7;
GPIOA->MODER |= GPIO_MODER_MODER7_1;  //Выбираем на пинах  5 6 7 альтернативную функцию

GPIOA->AFR[0]|=(5<<20);
GPIOA->AFR[0]|=(5<<24);
GPIOA->AFR[0]|=(5<<28);  // Выбираем на пинах 5 6 7альтернативную функцию 5

SPI1->CR1|=SPI_CR1_MSTR; // мастер
SPI1->CR1|=SPI_CR1_SPE; //включаем SPI  //// тут  бит MSTR сбрасывается сам

Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Apr 17 2012, 17:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(MiklPolikov @ Apr 17 2012, 20:47) *
Помогите разобратся с SPI1 в STM32L151.
После того как включаю SPI битом SPE , сбрасывается бит мастера MSTR.

Если бы это был АВР, то можно было бы заключить что SS сконфигурён на вход.
Но тут наверное всё по другому.
Go to the top of the page
 
+Quote Post



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

 


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


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