Объект ssi.

Объект ssi. реализует до четырёх каналов последовательного синхронного интерфейса (SSI) на линиях ввода-вывода общего назначения (GPIO) вашего устройства, программируемого на Tibbo BASIC/C. Примеры таких интерфейсов:
- I²C (http://en.wikipedia.org/wiki/I2C) - и ДА, объект ssi. умеет автоматически обрабатывать бит подтверждения. Начиная с TiOS V4.1.0 платы TPP2(G2), TPP3(G2), EM2000 и EM2001 могут использовать объект i2c..
- SPI (http://en.wikipedia.org/wiki/Serial_peripheral_interface).
- Тактирование/данные (пример: откройте http://www.maxim-ic.com и найдите микросхему драйвера дисплея MAX7219).
- Многочисленные вариации перечисленного.
Все необходимые сведения обычно можно получить от производителя микросхемы, с которой вы хотите работать. Учтите, что некоторые интерфейсные решения могут быть несвободны для использования (например, запатентованы).
Общее у этих интерфейсов - линия синхронизации, которая «задаёт темп» передачи данных по линии (линиям) данных: с каждым тактом на линии синхронизации по линии (линиям) данных можно передать один бит. UART (им управляет объект ser.), напротив, асинхронны: линии синхронизации, которая согласовывала бы два устройства, нет, и именно поэтому в слове «UART» есть буква «A» («asynchronous», асинхронный).
В SSI-соединениях есть ведущие и ведомые устройства. Ведущий генерирует тактовые импульсы, по которым синхронизируются ведомые. В каждый момент времени ведущим может быть только одно устройство. Объект ssi. может работать только как ведущий. То есть он генерирует тактовый сигнал для остальных.
Разумеется, с SSI-устройствами можно обмениваться и напрямую, управляя линиями GPIO устройства. Это называется «bit-banging» («bit-blasting»). Преимущество объекта ssi. - в скорости: тот же обмен данными нередко выполняется в сотни раз быстрее, чем при bit-banging.
Нужный канал выбирается свойством ssi.channel. Все остальные свойства и методы относятся к текущему выбранному каналу.
Свойство ssi.enabled определяет, выключен канал или включён. Необходимую настройку канала связи можно выполнять только при ssi.enabled = 0 - NO. Собственно обмен данными возможен только при ssi.enabled = 1 - YES.
Если вы собираетесь работать с устройством I²C, обязательно прочитайте раздел Подробнее об I²C.