R2AIV 0 16 ноября, 2018 Опубликовано 16 ноября, 2018 (изменено) · Жалоба Доброго времени! Возникло недопонимание в плане работы SPI в контроллере NRF51822. А именно: в Reference Manual (http://infocenter.nordicsemi.com/pdf/nRF51_RM_v3.0.pdf) написано, что отправка наступает после записи в регистр TXD. Т.е. это можно понимать так: после записи в регистр TXD начинается тактирование SPI, генерируется 8 тактовых импульсов и записанный байт сдвигается в MOSI. Ок, допустим. Мне нужно работать с АЦП ADS1220 (http://www.ti.com/lit/ds/symlink/ads1220.pdf) одиночными запросами. Для этого там есть команда START/SYNC (8 бит). Т.е. по времнной диаграмме на стр 37 даташита имеем следующее: посылаем START/SYNC и, спустя время, генерим 3*8=24 тактовых импульса и забираем свои заветные 24 бита с АЦП. А теперь собственно вопрос: как заставить NRF сгенерировать эти тактовые импульсы? Можно ли писать в регистр TXD просто нули, будет ли SPI на это реагировать и генерировать такт? Каким образом контроллер распознает факт записи в регистр? Может быть, кто сталкивался с подобным? Изменено 16 ноября, 2018 пользователем R2AIV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
АлександрК 0 16 ноября, 2018 Опубликовано 16 ноября, 2018 · Жалоба SPI организован как сдвиговый регистр. Если Master посылает байт, то Slave по тем же тактовым импульсам посылает свой байт в ответ. Может быть особенность в том, что действительные данные от Slave поступят на 1 байт позже, поэтому первый байт будет холостым. При чтении, как правило, значение байт от Master роли не играют, но вначале должна быть какая то команда для Slave. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Integro 0 16 ноября, 2018 Опубликовано 16 ноября, 2018 · Жалоба 1 hour ago, R2AIV said: Можно ли писать в регистр TXD просто нули Нужно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться