Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: I2C STM32L4
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MiklPolikov
Помогите разобраться с I2C в STM32L4
Пытаюсь прочитать slave-микросхему.
Делаю следующее:
NBYTES = 3 (количество байт в транзакции)
SADD = 0x21 (адрес микросхемы)
TXDR = 0x5 (адрес регистра в микросхеме)
START = 1 (запуск передачи)

И передача начинается. Передаётся сначала 0x21 затем 0x03
Что делать дальше - не понимаю. Как после этого заставить I2C выставить ещё клоки и прочитать ответ микросхемы ?

Ставлю бит RD_WRN = 1
TXDR = 0xFF - ещё клоки выставляются , но в RXDR ничего не появляется.

Вообще, почему в RXDR ничего не появляется после каждой передачи ? Было бы логично, если бы там появлялось эхо.

Заранее спасибо !
niXto
Для чтения есть бит RD_WRN
golf2109
эхо может быть в виде бита или в виде байта
MiklPolikov
Разобрался.
Суть в том, что в I2C нельзя в произвольной последовательнсоти передавать адреса / данные / что-то читать, а можно только по определённому, принятому в этой шине алгоритму.
I2C в МК работает, только если следовать этому алгоритму.
Во вложении мои функции для работы с кодеком MAX98090 процессор STM32L4
AleksBak
Цитата(MiklPolikov @ May 11 2016, 09:01) *
Разобрался...

Спасибо большое. Давным-давно, на др. контроллерах, именно так и писал (с использованием прямого программирования регистров и пр.), а тут (у стм-ок) еще не успел
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.