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

 
 
> STM32F4 странности с SPI
Vichkins
сообщение Jul 13 2012, 17:35
Сообщение #1


Участник
*

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



Пытаюсь наладить обмен данными с трансивером RFM22B, проц stm32f405
до этого работал с spi на f417 таких проблем не было
вот код чтения регистра модуля
CODE

RFM22_SS(ENABLE);
while(!(SPI3->SR&SPI_I2S_FLAG_TXE));
SPI3->DR=reg&(~RFM22_SPI_WRITE_MASK);
while(!(SPI3->SR&SPI_I2S_FLAG_TXE));
SPI3->DR=0x00;
while(!(SPI3->SR&SPI_I2S_FLAG_TXE));
RFM22_SS(DISABLE);

return SPI3->DR;

весь прикол в том, что этот код не работает без отладчика или если поставить брейкпоинт в конце кода, в регистре DR ноль, а если прошагать этот код отладчиком то всё окей wacko.gif
перекидывал модуль на плату с stm32f100 та же фигня, только там вообще непонятно что иногда в регистр приходит, пробовал на трёх SPI на разных пинах контроллера
вместо проверки флага TXE ставил задержки, менял скорость SPI, пробовал запаивать новый модуль, ничего не помогает help.gif
единственное, что ещё приходит на ум, читать SPI с помощью DMA
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Jul 13 2012, 17:43
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



При отправке байта ждать надо не TXE, а RXNE. TXE взводится сразу после опустошения передатчика, передача в это время ещё вовсю идёт.
Получается, что в конце посылки вы сбрасываете чипселект до её окончания.
Если уж быть совсем точным, то и RXNE может взвестись раньше, чем окончится передача, в зависимости от режима SPI. Так что перед отключением чипселекта желательно сделать небольшую паузу.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:31
Рейтинг@Mail.ru


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