Светодиоды

Каждая плата Tibbo Project PCB (TPP) оснащена восемью встроенными светодиодами:

У Linux-платы Tibbo Project PCB размера 3 (LTPP3), Gen. 2 есть ещё четыре светодиода: для каждого из двух портов Ethernet - один жёлтый светодиод соединения и один зелёный светодиод активности. Однако в Linux-корпусе Tibbo Project Box размера 3 (LTPB3) эти светодиоды не видны.

Синяя светодиодная шкала

Пять синих светодиодов образуют светодиодную шкалу. Она предназначена в первую очередь для индикации уровня радиосигнала (то есть сигнала Wi-Fi). Эти светодиоды управляются тремя линиями ввода-вывода общего назначения (GPIO): 46, 47, 48.

GPIO46 - линия сброса светодиодной шкалы. Сброс этой линии устанавливает все пять выходов в LOW и включает все светодиоды. GPIO47 - линия тактового сигнала: положительный фронт (переход из LOW в HIGH) на ней «вдвигает» данные с линии данных. Схема управления светодиодами показана ниже.

Чтобы включить светодиод, установите соответствующую линию данных в LOW. В следующем примере светодиоды устанавливаются так:

Светодиод #5Светодиод #4Светодиод #3Светодиод #2Светодиод #1
ВЫКЛВКЛВЫКЛВКЛВКЛ

Предположим, что все светодиоды изначально были выключены (на схеме они показаны серым). Тогда последовательность шагов такая. Каждый шаг соответствует одному циклу тактовой линии (HIGH-LOW-HIGH):

ТактДанныеСветодиод #5Светодиод #4Светодиод #3Светодиод #2Светодиод #1
1LOWВКЛВЫКЛВЫКЛВЫКЛВЫКЛ
2LOWВКЛВКЛВЫКЛВЫКЛВЫКЛ
3HIGHВЫКЛВКЛВКЛВЫКЛВЫКЛ
4LOWВКЛВЫКЛВКЛВКЛВЫКЛ
5HIGHВЫКЛВКЛВЫКЛВКЛВКЛ

Линия сброса на самом деле не обязательна. Какой рисунок показывают светодиоды, можно знать точно, если при каждой отправке новых данных в эту схему вы формируете пять тактовых циклов.

TPP на базе TiOS

Ниже приведён код из библиотеки Tibbo для управления светодиодной шкалой на TPP2, TPP3, TPP2(G2), TPP3(G2) и TPP2(G3):

sub on_sys_init
...
   'enable the control lines (notice that the use of the RST line is not really necessary)  
   io.num=PL_IO_NUM_46
   io.enabled=YES
   io.num=PL_IO_NUM_47
   io.enabled=YES
   io.num=PL_IO_NUM_48
   io.enabled=YES
   signal_strength_set(0) 'this will turn all 5 LEDs OFF
...
end sub
sub signal_strength_set(strength as byte)
'Bits 0-5 of strength argument correspond to LEDs (bit5 is for the LED #5, bit0 -- for LED #0)  
   dim f,x as byte
   dim s as string(8)
   s=mid(bin(strength),3,8)
   s=strgen(8-len(s),"0")+s  
   'make 5 clocks
   io.num=PL_IO_NUM_47
   for f=0 to 4
      x=1-val(mid(s,f+4,1))
      io.lineset(PL_IO_NUM_48,x)
      io.state=LOW
      io.state=HIGH
   next f
end sub

LTPP3(G2)

Линиями GPIO нужно управлять вручную.

Исходный материал Tibbo обновлён 20 марта 2025Оригинал на docs.tibbo.com · Сообщить об ошибке