Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

STM32F303 + гироскоп WT901 , не читает с нужного регистра

Пт сен 27, 2019 20:55:56

Пытаюсь подружить STM32F303 и WT901 по I2C шине.
Не хотит читать с нужного регистра.
Читает не известно с какого адреса , но что бы добраться до нужных мне данных, надо прочитать больше 150 байт.
код


Картинка с анализатора
Изображение
В анализаторе стоит 8бит.
Делал для того что бы сравнить с картинкой из даташита.
Вот она.
Изображение
Не могу понять что не хватает.
Гироскоп отзывается, и передает свои данные, но не берет номер регистра, откуда читать.
Вот даташит на гироскоп, нужное на 47 странице документа
1.PDF
(2.69 MiB) Скачиваний: 42

Может кто что подскажет ?
СТМ занялся не давно многое еще не понятно.
И на F3 мало примеров.
А на этот гироскоп, все примеры для уарта, для I2C не нашел.
screenshot.png
(10.13 KiB) Скачиваний: 154

Re: STM32F303 + гироскоп WT901 , не читает с нужного регист

Пт сен 27, 2019 21:18:30

Не могу понять что не хватает.
Гироскоп отзывается, и передает свои данные, но не берет номер регистра, откуда читать.
На Ваших осциллограммах видно, что из фазы записи в фазу чтения Вы переходите выполняя на шине СТОП, затем СТАРТ.
На картинках из даташита (хоть там очень мелко и трудно разобрать), но судя по всему переход там выполняется выполнением на шине ПОВТОРНОГО СТАРТА (или ещё это называют - РЕСТАРТ).
Разные I2C-чипы немного по-разному отрабатывают такие переходы. Некоторым всё равно: и СТОП-СТАРТ-ом переходят в чтение, и ПОВТОРНЫМ СТАРТОМ. Но другие чипы требуют совершенно конкретной операции (или СТОП-СТАРТ или ПОВТОРНЫЙ СТАРТ). Которая обычно явно указывается в даташите. В этом даташите вроде не находится явного указания, но на картинке показан похоже ПОВТОРНЫЙ СТАРТ. Попробуйте выполнить его.

Re: STM32F303 + гироскоп WT901 , не читает с нужного регист

Пт сен 27, 2019 22:22:58

Вроде и через релоад пробовал, не заводилось совсем, повисал при отправке адреса на чтение.
Попробую еще раз помучать.
Так вроде покрупнее.
Изменение размера 11.jpg
(74.09 KiB) Скачиваний: 152

Re: STM32F303 + гироскоп WT901 , не читает с нужного регист

Вс сен 29, 2019 20:19:44

Спасибо за пинок в нужную сторону.
Я чет рестарт с релоадом попутал, поэтому и не получалось
Изменил строку в такой вид
I2C2->CR2 = I2C_CR2_AUTOEND | (NumBytes<<16) |
(HardSlaveAddr<<1) | I2C_CR2_START |
I2C_CR2_RD_WRN |
I2C_CR2_NACK;
И все заработало как надо.
Ответить