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

 
 
> 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
Ответов
RadiatoR
сообщение Jun 16 2016, 05:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901



Попробуйте прочитать по флагу BSY. Вообще есть ли у вас возможность посмотреть оба канала - MISO относительно клока?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jun 16 2016, 12:37
Сообщение #3


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

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



Цитата(RadiatoR @ Jun 16 2016, 09:11) *
Попробуйте прочитать по флагу BSY. Вообще есть ли у вас возможность посмотреть оба канала - MISO относительно клока?


Оба канала в смысле MOSI MISO? Нет как раз спалил логический анализатор. Только двухлучевой осциллограф.

Но у меня на MISO жестко стоит единица -- нет надобности. Должен всефда читать 0xFF.

Цитата(ViKo @ Jun 16 2016, 10:06) *
Смотря, каким фронтом записываете и читаете. Надо внимательно изучить все варианты.


Там всего четыре варианта. Я выбрал то, что надо периферийному устройству:
инвертированный CLK и по читать фронту. Но в моем тесте нет вариантов получить сдвиг или гонки на меняющемся в момент выборки входе даже если неправильная фаза выборки -- у меня всегда единица на входе.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 17 2016, 18:52
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tarbal @ Jun 16 2016, 15:37) *
у меня всегда единица на входе.

Повесьте резистор вместо вашего устройства. Вряд ли будет читаться 0xFE.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 17 2016, 18:56
Сообщение #5


Гуру
******

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



Цитата(ViKo @ Jun 17 2016, 21:52) *
Повесьте резистор вместо вашего устройства. Вряд ли будет читаться 0xFE.

Дык, вам же говорят, что висит резистор. Ноль ом.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 17 2016, 20:12
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Jun 17 2016, 21:56) *
Дык, вам же говорят, что висит резистор. Ноль ом.

И де вы такое прочитали? rolleyes.gif
На ноль омов резисторов не бывает. laughing.gif
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 17 2016, 22:46
Сообщение #7


Гуру
******

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



Цитата(ViKo @ Jun 17 2016, 23:12) *
И де вы такое прочитали? rolleyes.gif
На ноль омов резисторов не бывает. laughing.gif

На выводе MISO лог 1, которая получается подключением к шине 3.3В.
В регистре данных SPI принимаем 0xFE, т.е. младший бит равен нулю. Откуда?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 18 2016, 06:32
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Jun 18 2016, 01:46) *
На выводе MISO лог 1, которая получается подключением к шине 3.3В.

"Подключением" чего? Резистора 0 Ом? Где... вы такое прочитали?
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 18 2016, 08:40
Сообщение #9


Гуру
******

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



Цитата(ViKo @ Jun 18 2016, 09:32) *
"Подключением" чего? Резистора 0 Ом? Где... вы такое прочитали?

На пине микроконтроллера с AF SPI_MISO логическая единица, а приемник стабильно принимает байт с нулем в младшем разряде.
Чего еще не понятно? Нигде этого не читал, сам с этим столкнулся и долго бодался. Было на каком-то SPI, на каком-то пине,
(подробностей не помню, т.к. 2 года прошло) перешел на другие пины и другой номер SPI - чудеса пропали.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 18 2016, 10:45
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Jun 18 2016, 11:40) *
На пине микроконтроллера с AF SPI_MISO логическая единица, а приемник стабильно принимает байт с нулем в младшем разряде.
Чего еще не понятно? Нигде этого не читал, сам с этим столкнулся и долго бодался. Было на каком-то SPI, на каком-то пине,
(подробностей не помню, т.к. 2 года прошло) перешел на другие пины и другой номер SPI - чудеса пропали.

Непонятно того, что из-за неправильного использования SPI (предполагаю, связано с периферийными тактами микроконтроллера), вы вдруг решили мне высказать несказанное, что на этом входе висит резистор. "Где имение, а где вода?" С железным подвешенным резистором можно быстрее докопаться до сути проблемы, чем с неким устройством, висящим в сбросе (может, и не выдающем единицу, а находящимся в высокоимпедансном состоянии).
Желаете дальше дискутировать насчет резистора 0 ом?

Цитата
Prior to changing the CPOL/CPHA bits the SPI must be disabled by resetting the SPE bit.

Цитата
It is recommended to enable the SPI slave before the master sends the clock. If not,
undesired data transmission might occur. The data register of the slave needs to be ready
before the first edge of the communication clock or before the end of the ongoing
communication. It is mandatory to have the polarity of the communication clock set to the
steady state value before the slave and the master are enabled.

Цитата
During discontinuous communications, there is a 2 APB clock period delay between the
write operation to SPI_DR and the BSY bit setting. As a consequence, in transmit-only
mode, it is mandatory to wait first until TXE is set and then until BSY is cleared after writing
the last data.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 18 2016, 11:24
Сообщение #11


Гуру
******

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



Цитата(ViKo @ Jun 18 2016, 13:45) *
С железным подвешенным резистором можно быстрее докопаться до сути проблемы, чем с неким устройством, висящим в сбросе (может, и не выдающем единицу, а находящимся в высокоимпедансном состоянии).

С чего вы вообще взяли некое устройство? В #7 и #15 сообщениях сказано "на MISO жестко стоит единица".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Tarbal   SPI1 в STM32F429 считывает 0 в младший бит   Jun 16 2016, 00:06
|- - scifi   Цитата(RadiatoR @ Jun 16 2016, 08:11) По...   Jun 16 2016, 07:13
|- - 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   Цитата(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
- - Genadi Zawidowski   Код отсылки/приёма байта по SPI в студию...   Jun 18 2016, 20:04
|- - adnega   Цитата(Genadi Zawidowski @ Jun 18 2016, 23...   Jun 19 2016, 08:38
- - 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 - 17:15
Рейтинг@Mail.ru


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