Реализованные конфигурации
На данный момент у Tibbit-модуля #57 есть только одно применение:
Конфигурация контроллера умных светодиодов
В конфигурации для умных светодиодов Tibbit #57 может управлять цепочкой последовательно соединённых светодиодов SK6812RGBW. В SK6812RGBW есть небольшая микросхема, управляющая четырьмя встроенными излучателями красного, зелёного, синего и белого цветов. Яркость каждого из цветов задаётся одним из 256 уровней, то есть на один светодиод нужно четыре байта данных.
Умные светодиоды управляются по специальному однопроводному протоколу. У каждого светодиода есть выводы DIN (вход данных) и DOUT (выход данных). Вывод DIN первого светодиода в цепочке подключён к линии IO1 Tibbit-модуля с ПЛИС. DOUT первого светодиода подключён к DIN второго, DOUT второго - к DIN третьего и так далее.

В конфигурации для умных светодиодов ПЛИС получает данные от процессора по SPI и сохраняет их в буфере данных размером 8,192 байта.
Как и во всех обменах по SPI, транзакция начинается, когда линия -CS переходит в LOW, и заканчивается, когда -CS переходит в HIGH. Установка -CS в LOW очищает буфер памяти ПЛИС и сбрасывает указатель буфера в 0 (первая позиция буфера). Каждый следующий байт данных, отправленный в ходе транзакции SPI, сохраняется в позиции буфера, на которую указывает указатель, после чего указатель увеличивается на единицу. Как только -CS переходит в HIGH, ПЛИС начинает отправлять данные из буфера в цепочку светодиодов.
Сигнал DONE (мультиплексированный с линией MISO) удерживается в LOW на время цикла обновления светодиодов, то есть DONE переходит в LOW, как только -CS переходит в HIGH. Сигнал DONE переходит в HIGH по завершении цикла обновления. Чтобы узнать состояние сигнала DONE, прочитайте линию DONE/MISO, пока линия -CS в HIGH.
Новую транзакцию SPI нельзя начинать, пока сигнал DONE в LOW.
Формат данных для транзакций записи SPI
| Номер байта | MOSI | MISO |
| 1 | Уровень зелёного, светодиод N* | --- |
| 2 | Уровень красного, светодиод N | --- |
| 3 | Уровень синего, светодиод N | --- |
| 4 | Уровень белого, светодиод N | --- |
| 5 | Уровень зелёного, светодиод N-1 | --- |
| 6 | Уровень красного, светодиод N-1 | --- |
| 7 | Уровень синего, светодиод N-1 | --- |
| 8 | Уровень белого, светодиод N-1 | --- |
| --- | --- | --- |
| Уровень зелёного, светодиод 2 | --- | |
| Уровень красного, светодиод 2 | --- | |
| Уровень синего, светодиод 2 | --- | |
| Уровень белого, светодиод 2 | --- | |
| Уровень зелёного, светодиод 1 | --- | |
| Уровень красного, светодиод 1 | --- | |
| Уровень синего, светодиод 1 | --- | |
| Уровень белого, светодиод 1 | --- |
* Номера светодиодов (N, 2, 1) соответствуют номерам на схеме выше.
Формат данных для транзакций чтения SPI
В этой конфигурации транзакции чтения не поддерживаются.
Пример проекта
Использование этого и других Tibbit-модулей «I²C/SPI» показано в группе тестовых проектов на Tibbo BASIC. Их можно найти по адресу http://tibbo.com/basic/resources/i2c_tibbits.html. Проект для умных светодиодов называется test_tibbit_57_sled.