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

 
 
> Чтение после записи... SPI не принимает байт, STM32F3 Discovery + L3GD20
Сергей Владимиро...
сообщение Aug 10 2017, 21:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 24-05-13
Пользователь №: 76 966



Всем привет! Я только учусь! Пробую работать с акселерометром L3GD20, установленным на плате STM32F3 Discovery. Читаю регистр WHO_AM_I (0Fh)...

CODE

SPI1_CS_Set(LOW);

SPI1_DR = 0x008F;
while (!(SPI1_SR & (1<<1)));

SPI1_CS_Set(HIGH);

USART1_SendByte(SPI1_DR>>8);

...получаю вразумительный ответ 0xD4. Теперь читаю CTRL_REG1 (20h), ответ 0x07. Записываю в него 0x1F...

Код
SPI1_CS_Set(LOW);

SPI1_DR = 0x0F20;
while (!(SPI1_SR & (1<<1)));

SPI1_CS_Set(HIGH);

И заново читаю (20h), чтобы проверить, но SPI1_DR пуст!!!... не смотря на это анализатор показывает что акселерометр ответил верно...

Прикрепленное изображение


Считать регистр акселерометра получается только со второго раза... Почему так??? Что я упускаю???

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Oct 26 2017, 10:32
Сообщение #2


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Сергей Владимирович @ Aug 11 2017, 00:59) *
... не смотря на это анализатор показывает что акселерометр ответил верно...

Если на лог.анализаторе - "то" а в контреллере - нет, значит дело в софте приема.
Для начала - отладьте (проверка) работу по SPI.
- отключите все слейвы от линий SPI контроллера.
- соедините вход и выход SPI (MISO + MOSI). SCK и CS не нужны.
- выполните простой тест софта: выдать на SPI сотню чисел с инкриментом (0,1,2 etc) и принять их в массив.
Убедиться, что принятое соовтетствует переданному.
Дальше - по ситуации, в зависимости от того - "прокатило" или нет sm.gif

ps - А каким анализатором пользуетесь ?

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 26 2017, 10:53
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (k155la3 @ Oct 26 2017, 13:32) *
ps - А каким анализатором пользуетесь ?
На алиэкспрессе искать "8-канальный логический анализатор", стоит 4.5 евро, штука исключительно полезная.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Oct 27 2017, 07:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Сергей Борщ @ Oct 26 2017, 13:53) *
На алиэкспрессе искать "8-канальный логический анализатор", стоит 4.5 евро, штука исключительно полезная.

это который на супрессе?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 15:53
Рейтинг@Mail.ru


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