Задать вопрос
@Kopcheniy

STM32 общается с микросхемой по SPI. Считываем регистр. Почему вместо ведомого снова говорит мастер?

Приветствую.
Микроконтроллер stm32 управляет микросхемой.
6762bbd48659c957820025.jpeg
6762bbe8653d3455936114.jpeg
Пытаюсь считать ID, вроде всё по даташиту делаю:
1 — мастер пишет адрес регистра и команду на чтение.
tx_data[0] = 0хB0;
tx_data[1] = 0xFA;
HAL_SPI_Transmit(&hspi1, tx_data, 2, 1);

Поднимаем DC из 0 в 1. Всё хорошо.
Далее (2) должен ответить ведомый и прислать id.
HAL_SPI_Receive(&hspi1, rx_data, 2, 10); (Пробовал и HAL_SPI_TransmitReceive(&hspi1,tx_data, rx_data, 2, 1); )
Но ведомый молчит, почему-то.
2— Вместо него говорит мастер. Странно.

Может у вас есть мысли какие-то?

Обнуление
tx_data[0] = 0; tx_data[1] = 0; не помогло. Картина та же.
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой 15 комментариев
Решения вопроса 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
STM32 общается с микросхемой по SPI.

Что за микросхема?

Почему вместо ведомого снова говорит мастер?

Интерфейс с двумя сигналами MISO и MOSI дуплексный, мастер всегда может выставлять какие-то данные на MOSI, это не имеет значения для приёма данных с MISO. Т.е. в вашем случае возможно устройство на том конце отвечает нулями.

Может у вас есть мысли какие-то?

Я смотрю на сигналы на картинке и вижу, что они начинаются с младших битов, т.е. 0xB0 передаётся как 0-0-0-0-1-1-0-1. Это нетипичный порядок битов, нужно проверить, что устройство ожидает данные именно в этом порядке. На диаграмме из мануала порядок битов, кстати, противоположный -- от D7 к D0.
Ответ написан
Комментировать
@Kopcheniy Автор вопроса
Попробовал другой вариант SPI, сразу всё заработало.
Потом пытался нарушить работу, чтобы понять, какие предположения были верны и что влияло на первый вариант подключения, ктр не заработал. Мастер может говорить, одновременно с приёмом -- это не мешает.
В даташите и другом месте чётко было написано, что нужно передавать младший бит первым. Как только сделал наоборот (старший первым), сразу заработал и первый вариант.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы