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

 
 
> STM32 SPI в HAL прыгает CS, Управление в STM32 сигналом CS аппаратно
Pasa
сообщение Jul 14 2016, 19:56
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 4-03-09
Из: Беларусь, Минск
Пользователь №: 45 665



Всем доброго времени суток.

1.
Недавно решил освоить STM32(STM32F051). Нужно управлять через SPI девайсом CC2500.
Девайс требует одного CS на несколько байт . В библиотеке HAL функции приема передачи после каждого байта снимают CS. Пришлось CS ставить на программное ручное управление.
Можно как-то заставить HAL не дергать CS для передачи паравоза из нескольких байт?

2.
И еще...такой вопрос неопытного....
В IAR прошиваю контроллер через Jetlink, запускаю отладку - программа крутиться.
А если отсоединить Jetlink и просто подать питание на контрлллер, то ничего не запускается....
Как прошить из IAR программу в контроллер чтобы она там сама крутилась после подачи питания без всяких внешних подключений?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
nanorobot
сообщение Jul 15 2016, 09:42
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(Pasa @ Jul 15 2016, 00:56) *
Всем доброго времени суток.

1.
Недавно решил освоить STM32(STM32F051). Нужно управлять через SPI девайсом CC2500.
Девайс требует одного CS на несколько байт . В библиотеке HAL функции приема передачи после каждого байта снимают CS. Пришлось CS ставить на программное ручное управление.
Можно как-то заставить HAL не дергать CS для передачи паравоза из нескольких байт?


регистр SPIx_CR2 битик NSSP взведите
Go to the top of the page
 
+Quote Post
Pasa
сообщение Jul 15 2016, 19:08
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 4-03-09
Из: Беларусь, Минск
Пользователь №: 45 665



Цитата(nanorobot @ Jul 15 2016, 13:12) *
регистр SPIx_CR2 битик NSSP взведите


Так это само в HAL-библиотеке делается.

В СubeMX при ините hspi в файле spi.c :

hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT; //(SPI_NSS_HARD_OUTPUT = 0x0004 0000;)

И уже на нижнем уровне в stm32f0xx_hal_spi.c прописывается в CR2 бит SSOE(ну или вы назвали его NSSP):

hspi->Instance->CR2 = (((hspi->Init.NSS >> 16) & SPI_CR2_SSOE) | hspi->Init.TIMode | hspi->Init.NSSPMode | hspi->Init.DataSize ) | frxth; //(SPI_CR2_SSOE = 4)

...но все равно попробовал руками ставить в CR2 бит 0x04......как и ожидал.....все равно CS скачет


Сообщение отредактировал Pasa - Jul 15 2016, 19:24
Go to the top of the page
 
+Quote Post



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

 


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


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