Предыдущая Следующая

В отличие от передаваемых, принимаемые данные в интерфейсе SPI буфери-зированы. После окончания передачи, принятые данные автоматически перемещаются в отдельный байтовый буфер, который позже может быть прочитан. Чтение регистра данных SPI возвращает значение буфера принятых данных.

Регистр счетчика синхроимпульсов SPI управляет тактовой частотой, когда блок SPI находится в режиме ведущего. Этот регистр должен быть инициализирован до начала передачи через SPI, если SPI является ведущим. В случае, если SPI является ведомым, этот регистр не используется.

В качестве линий ввода/вывода SPI используются стандартные линии ввода/вывода CMOS. Если блок SPI сконфигурирован для режима ведомого, его линии ввода/вывода активны только в том случае, когда внешний сигнал SSEL имеет активный уровень.

13.3.2. Операции ведущего

Для осуществления передачи данных через блок SPI, сконфигурированный в качестве ведущего,'рекомендуется использовать следующую последовательность операций. При этом предполагается, что любая предшествующая передача данных уже завершена.

1. Задать в регистре счетчика синхроимпульсов SPI желаемую тактовую частоту.

2. Задать в регистре управления SPI желаемые параметры настройки.

3. Записать подлежащие передаче данные, в регистр данных SPI. Эта запись инициирует передачу данных через SPI.

4. Ожидать установки бита SPIF в регистре состояния SPI. Бит SPIF будет автоматически установлен после завершения последнего цикла передачи данных через SPI.

5. Прочитать регистр состояния SPI.

6. Прочитать принятые через SPI данные путем чтения регистра данных, если это необходимо, т. е. если требуется произвести не только передачу, но и прием.

7. Вернуться к выполнению пункта 3, если имеются еще данные, подлежащие передаче.

Обратите внимание, что чтение или запись регистра данных SPI требуются, чтобы сбросить бит SPIF в регистре состояния. Поэтому, если нет необходимости читать регистр данных SPI (прием не производится), то бит SPIF сбросится только при записи в регистр новых данных.

13.3.3. Операции ведомого

Для осуществления передачи данных через блок SPI, сконфигурированный в качестве ведомого, рекомендуется использовать приведенную ниже последовательность операций. При этом предполагается, что любая предшествующая передача данных уже завершена. Предполагается также, что системная тактовая частота, используемая в качестве задающей для логических схем SPI ведомого, не меньше, чем частота синхроимпульсов SPI ведущего, умноженная на 8.

1. Задать в регистре управления SPI желаемые параметры настройки.

2. Записать данные, подлежащие передаче, в регистр данных SPI, если это необходимо, т. е. требуется произвести не только прием, но и передачу. Эта запись не означает, что немедленно начнется процесс передачи данных через SPI (передача инициируется ведущим устройством). Необходимо отметить, что запись в регистр данных SPI должна быть произведена до того, как ведущее устройство инициирует передачу.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_156.html on line 126

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_156.html on line 126

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_156.html on line 126