Я изучаю встраиваемые разработки и пытаюсь установить связь с акселерометром (LIS3DSH) на плате обнаружения, используя протокол SPI.Я использую только заголовки CMSIS, так что я вынужден напрямую взаимодействовать с регистрами.
Согласно схемам, эти контакты используются платой для связи с акселерометром:
- PA5: SPI1_SCK
- PA7: SPI1_MOSI
- PA6: SPI1_MISO
- PE3: CS_I2C / SPI
Из моего теоретического пониманияпротокола SPI, всякий раз, когда я хочу получать или передавать данные между ведущим и ведомым устройствами, мне сначала нужно вытащить контакт CS (PE3) вниз, а затем начать связь.Это подтверждается также руководством пользователя LIS3DSH.
Но теперь я не понимаю, что означает SSM.Согласно руководству пользователя платы, это то, что делает бит управления программным ведомым:
Когда бит SSM установлен, вывод контакта NSS заменяется значением из бита SSI.
Вывод NSS - не что иное, как вывод выбора ведомого, верно?Что означает, что это PE3 в этом случае.
Бит SSI - это бит 8 в регистре SPI_CR1.Означает ли это, что я должен вместо этого переключить этот бит SSI вместо PE3?Это не имеет смысла, потому что как плата узнает, что PE3 является соответствующим выводом CS?
Так как же связаны вывод / линия CS и бит SSM, если вообще связаны?
Если они не связаны, нужно ли настроить вывод PE3 с альтернативным режимом работы и в качестве подтягивания, а затем понижать его каждый раз, когда мне нужно установить связь с помощью SPI с акселерометром?