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

 
 
> SPI1 в STM32F429 считывает 0 в младший бит
Tarbal
сообщение Jun 16 2016, 00:06
Сообщение #1


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

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



Если не давать сброс на периферийное устройство (slave), подключенное к SPI, то у него на выходе MISO стоит твердая единица. Однако если считывать в процессор, то вместо 0xFF читается 0xFE.

Происходит ошибочное чтение нестабильно. Иногда читается правильно. Однако если к выходу SPI CLK присоединить щуп осциллографа, то правильного чтения больше не происходит. Стабильно читается 0xFE.

Я нашел в форуме ST, что такое происходит если читать данные не дожидаясь установки RXNE в единицу. Однако в моем коде я жду установки RXNE в единицу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Jun 18 2016, 20:04
Сообщение #2


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Код отсылки/приёма байта по SPI в студию...
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 19 2016, 08:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Genadi Zawidowski @ Jun 18 2016, 23:04) *
Код отсылки/приёма байта по SPI в студию...

Давно то было. Допускаю, что примерно так было
CODE
//---------------------------------------------------------------------------
// LED & BUTTON
//---------------------------------------------------------------------------
SPI_NSS_bit = 1;
for(i = 0; i < 3; i++) __NOP();
SPI_OE_bit = 0;
SPI_NSS_bit = 0;

SPI2->CR2 =
(0 << SPI_CR2_RXNEIE)
| (0 << SPI_CR2_TXDMAEN)
| (0 << SPI_CR2_RXDMAEN)
| (1 << SPI_CR2_SSOE);

DMA1_Stream4->CR =
(0 << DMA_SCR_PL)
| (0 << DMA_SCR_CHSEL)
| (1 << DMA_SCR_MINC)
| (1 << DMA_SCR_DIR)
| (0 << DMA_SCR_EN);

DMA1_Stream3->CR =
(0 << DMA_SCR_PL)
| (0 << DMA_SCR_CHSEL)
| (1 << DMA_SCR_MINC)
| (0 << DMA_SCR_DIR)
| (0 << DMA_SCR_EN);

DMA1->LIFCR = (0x3D << 22);
DMA1->HIFCR = (0x3D << 0);

for(i = 0; i < 10; i++) __NOP();

DMA1_Stream3->PAR = (DWORD)&SPI2->DR;
DMA1_Stream3->M0AR = (DWORD)spi_rx;
DMA1_Stream3->NDTR = SPI_SIZE;
DMA1_Stream3->CR =
(0 << DMA_SCR_PL)
| (0 << DMA_SCR_CHSEL)
| (1 << DMA_SCR_MINC)
| (0 << DMA_SCR_DIR)
| (1 << DMA_SCR_EN);

DMA1_Stream4->PAR = (DWORD)&SPI2->DR;
DMA1_Stream4->M0AR = (DWORD)spi_tx;
DMA1_Stream4->NDTR = SPI_SIZE;
DMA1_Stream4->CR =
(0 << DMA_SCR_PL)
| (0 << DMA_SCR_CHSEL)
| (1 << DMA_SCR_MINC)
| (1 << DMA_SCR_DIR)
| (1 << DMA_SCR_EN);

for(i = 0; i < 10; i++) __NOP();

SPI2->CR2 =
(0 << SPI_CR2_RXNEIE)
| (1 << SPI_CR2_TXDMAEN)
| (1 << SPI_CR2_RXDMAEN)
| (1 << SPI_CR2_SSOE);

Это рабочий код, т.к. использует SPI2 и DMA1.
Нерабочий был, вроде, на SPI4 и DMA2.
Отправка работала корректно, а прием 2 байт давал нулевой младший бит (вроде только в первом принимаемом байте, а не в каждом).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Tarbal   SPI1 в STM32F429 считывает 0 в младший бит   Jun 16 2016, 00:06
- - RadiatoR   Попробуйте прочитать по флагу BSY. Вообще есть ли ...   Jun 16 2016, 05:11
|- - scifi   Цитата(RadiatoR @ Jun 16 2016, 08:11) По...   Jun 16 2016, 07:13
|- - Tarbal   Цитата(RadiatoR @ Jun 16 2016, 09:11) По...   Jun 16 2016, 12:37
|- - RadiatoR   Цитата(Tarbal @ Jun 16 2016, 15:37) Оба к...   Jun 16 2016, 18:56
|- - adnega   Цитата(Tarbal @ Jun 16 2016, 15:37) Но у ...   Jun 16 2016, 19:38
||- - Tarbal   Цитата(adnega @ Jun 16 2016, 23:38) Видел...   Jun 17 2016, 11:59
||- - adnega   Цитата(Tarbal @ Jun 17 2016, 14:59) На фо...   Jun 17 2016, 12:15
|- - ViKo   Цитата(Tarbal @ Jun 16 2016, 15:37) у мен...   Jun 17 2016, 18:52
|- - adnega   Цитата(ViKo @ Jun 17 2016, 21:52) Повесьт...   Jun 17 2016, 18:56
|- - ViKo   Цитата(adnega @ Jun 17 2016, 21:56) Дык, ...   Jun 17 2016, 20:12
|- - adnega   Цитата(ViKo @ Jun 17 2016, 23:12) И де вы...   Jun 17 2016, 22:46
|- - ViKo   Цитата(adnega @ Jun 18 2016, 01:46) На вы...   Jun 18 2016, 06:32
|- - adnega   Цитата(ViKo @ Jun 18 2016, 09:32) "П...   Jun 18 2016, 08:40
|- - ViKo   Цитата(adnega @ Jun 18 2016, 11:40) На пи...   Jun 18 2016, 10:45
|- - adnega   Цитата(ViKo @ Jun 18 2016, 13:45) С желез...   Jun 18 2016, 11:24
|- - ViKo   Цитата(adnega @ Jun 18 2016, 14:24) С чег...   Jun 18 2016, 13:01
|- - adnega   Цитата(ViKo @ Jun 18 2016, 16:01) С перво...   Jun 18 2016, 13:24
- - SasaVitebsk   А какая настройка?   Jun 16 2016, 05:45
- - ViKo   Смотря, каким фронтом записываете и читаете. Надо ...   Jun 16 2016, 06:06
- - RadiatoR   Вообще сам флаг BSY для приема использовать не пра...   Jun 16 2016, 07:34
- - ViKo   Что-то мне подсказывает, что если прочитать руково...   Jun 17 2016, 13:16
|- - Tarbal   Цитата(ViKo @ Jun 17 2016, 17:16) Не дума...   Jun 17 2016, 14:47
- - Alex11   А у Вас что, на клоке вход и нет ни сигнала ни под...   Jun 17 2016, 16:02
|- - Tarbal   Цитата(Alex11 @ Jun 17 2016, 20:02) А у В...   Jun 17 2016, 18:23
- - ViKo   То, что читалось 0xFE, связано с работой не по ман...   Jun 18 2016, 14:07
|- - adnega   Цитата(ViKo @ Jun 18 2016, 17:07) Вы прос...   Jun 18 2016, 19:25
|- - ViKo   Цитата(adnega @ Jun 18 2016, 22:25) Посмо...   Jun 19 2016, 15:28
|- - adnega   Цитата(ViKo @ Jun 19 2016, 18:28) У меня ...   Jun 19 2016, 18:21
|- - adnega   Цитата(adnega @ Jun 19 2016, 21:21) ошибк...   Jun 19 2016, 19:16
|- - ViKo   Цитата(adnega @ Jun 19 2016, 22:16) Вопро...   Jun 19 2016, 19:59
- - Tarbal   Вроде нашел в чем дело. Я поначалу не знал, что ха...   Jun 19 2016, 16:42
|- - ViKo   Цитата(Tarbal @ Jun 19 2016, 19:42) Бываю...   Jun 19 2016, 18:13
|- - Tarbal   Цитата(ViKo @ Jun 19 2016, 22:13) Пе-ре-м...   Jun 19 2016, 18:57
|- - Tarbal   Цитата(ViKo @ Jun 19 2016, 22:13) Пе-ре-м...   Jun 19 2016, 20:58
- - Alex11   http://www.yageo.com/NewPortal/_en/search/search-1...   Jun 19 2016, 20:53
- - ViKo   Ага, нашел, jumper. Он еще и точность имеет, и мощ...   Jun 19 2016, 21:14
|- - Tarbal   Цитата(ViKo @ Jun 20 2016, 01:14) Ага, на...   Jun 19 2016, 22:23
- - Tarbal   А замена на такую функцию (без аппаратной поддержк...   Jun 20 2016, 00:02
- - ViKo   С HAL мучайтесь сами, мне это не интересно. У меня...   Jun 20 2016, 04:52
|- - Tarbal   Цитата(ViKo @ Jun 20 2016, 08:52) С HAL м...   Jun 20 2016, 12:20
|- - ViKo   Цитата(Tarbal @ Jun 20 2016, 15:20) Я уже...   Jun 20 2016, 12:52
|- - Tarbal   Цитата(ViKo @ Jun 20 2016, 16:52) И какие...   Jun 21 2016, 13:47
- - ViKo   Еще бы и программный ногодрыг не работал... Четы...   Jun 21 2016, 14:28
|- - adnega   Цитата(ViKo @ Jun 21 2016, 17:28) Заметьт...   Jun 21 2016, 17:24
|- - Tarbal   Цитата(ViKo @ Jun 21 2016, 18:28) Еще бы ...   Jun 21 2016, 23:31
|- - ViKo   Цитата(Tarbal @ Jun 22 2016, 02:31) Не бу...   Jun 22 2016, 05:04
|- - Tarbal   Цитата(ViKo @ Jun 22 2016, 09:04) И что с...   Jun 22 2016, 21:43
- - ViKo   Ссылку на тему на ST выдайте, please! "чт...   Jun 23 2016, 04:39
|- - Tarbal   Цитата(ViKo @ Jun 23 2016, 08:39) Ссылку ...   Jun 23 2016, 10:32
||- - ViKo   Цитата(Tarbal @ Jun 23 2016, 13:32) Вы ка...   Jun 23 2016, 20:24
|- - Tarbal   Цитата(ViKo @ Jun 23 2016, 07:39) Ссылку ...   Dec 16 2016, 02:42
- - RadiatoR   Извиняюсь, что немного не в тему, но ситуация тоже...   Jun 23 2016, 17:45
|- - Obam   Цитата(RadiatoR @ Jun 23 2016, 21:45) Из...   Jun 24 2016, 06:55
|- - RadiatoR   Цитата(RadiatoR @ Jun 23 2016, 20:45) Ил...   Jun 24 2016, 07:40
|- - Obam   Цитата(RadiatoR @ Jun 24 2016, 11:40) 48...   Jun 24 2016, 07:57
- - RadiatoR   наврал. 24/93   Jun 24 2016, 09:20
|- - Obam   Цитата(RadiatoR @ Jun 24 2016, 13:20) на...   Jun 24 2016, 09:50
- - Tarbal   Я бы провел серию тестов. Вот такую функцию (сами ...   Jun 24 2016, 10:13
- - RadiatoR   Не требуется, я уже все сделал. В системе тока 1 п...   Jun 24 2016, 12:24


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

 


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


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