1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/README.txt Sun Jan 10 00:30:41 2016 +0100
1.3 @@ -0,0 +1,136 @@
1.4 +From the HT16K33 datasheet [1] and EF4058 schematic [2].
1.5 +
1.6 +Addressing
1.7 +----------
1.8 +
1.9 + RAM addresses
1.10 + ROW0..7 ROW8..15
1.11 +COM0 -> digit 1, tube 1 00 01
1.12 +COM1 -> digit 2, tube 1 02 03
1.13 +COM2 -> digit 1, tube 2 04 05
1.14 +COM3 -> digit 2, tube 2 06 07
1.15 +
1.16 +ROW0/A2 |-> connected to both tubes
1.17 +ROW1/A1 |
1.18 +ROW2/A0 |
1.19 +ROW3..14 |
1.20 +
1.21 +Tube and Digit Layout
1.22 +---------------------
1.23 +
1.24 +By observing the behaviour, the tubes and digits have the following layout:
1.25 +
1.26 +tubes
1.27 +2 1
1.28 +digits
1.29 +1 2 1 2
1.30 +
1.31 +Communications
1.32 +--------------
1.33 +
1.34 +I2C commands:
1.35 +
1.36 + D15 D14 D13 D12 D11 D10 D9 D8
1.37 +setup 0 0 1 0 X X X S S=0 => standby; S=1 => operational
1.38 +ROW/INT 1 0 1 0 X X A I I=0 => ROW driver output;
1.39 + I=1 => INT output
1.40 + A=0 => active low
1.41 + A=1 => active high
1.42 +display 1 0 0 0 X B1 B0 D D=0 => display off; D=1 => display on
1.43 + B1..B0 = 0 => blinking off
1.44 + B1..B0 = 2 - log2 (blinking frequency)
1.45 + (1 => 2Hz; 2 => 1Hz; 3 => 0.5Hz)
1.46 +address 0 0 0 0 A3 A2 A1 A0 A3..A0 => set row address pointer
1.47 +dimming 1 1 1 0 P3 P2 P1 P0 P3..P0 = 16 * pulse_width - 1
1.48 + (0 => 1/16; 15 => 1)
1.49 +
1.50 +I2C data format:
1.51 +
1.52 + D7 D6 D5 D4 D3 D2 D1 D0
1.53 +ROW 7 6 5 4 3 2 1 0
1.54 +ROW 15 14 13 12 11 10 9 8
1.55 +
1.56 +When converting values to the I2C format, the most significant byte is sent
1.57 +after the least significant byte. For example, the following hexadecimal
1.58 +representation is converted as follows:
1.59 +
1.60 + 8000400020001000
1.61 +-> 80 00 40 00 20 00 10 00 (bytes in MSB, LSB order)
1.62 +-> 00 80 00 40 00 20 00 10 (bytes in LSB, MSB order)
1.63 +
1.64 +LED Digit Layout
1.65 +----------------
1.66 +
1.67 +The digits each have the following layout:
1.68 +
1.69 +LED ROWx data value remark
1.70 +
1.71 +--- ROW0 1 upper horizontal
1.72 +
1.73 +
1.74 +
1.75 + | ROW1 2 upper-right vertical
1.76 +
1.77 +
1.78 +
1.79 + ROW2 4 lower-right vertical
1.80 +
1.81 + |
1.82 +
1.83 + ROW3 8 lower horizontal
1.84 +
1.85 +---
1.86 +
1.87 + ROW4 10 lower-left vertical
1.88 +
1.89 +|
1.90 +
1.91 +| ROW5 20 upper-left vertical
1.92 +
1.93 +
1.94 +
1.95 + ROW6 40 left-middle horizontal
1.96 +-
1.97 +
1.98 +
1.99 + ROW7 80 right-middle horizontal
1.100 + -
1.101 +
1.102 +
1.103 +\ ROW8 100 top-left diagonal
1.104 +
1.105 +
1.106 +
1.107 + | ROW9 200 upper-middle vertical
1.108 +
1.109 +
1.110 +
1.111 + / ROW10 400 top-right diagonal
1.112 +
1.113 +
1.114 +
1.115 + ROW11 800 lower-right diagonal
1.116 +
1.117 + \
1.118 +
1.119 + ROW12 1000 lower-middle vertical
1.120 +
1.121 + |
1.122 +
1.123 + ROW13 2000 lower-left diagonal
1.124 +
1.125 +/
1.126 +
1.127 + ROW14 4000 decimal point
1.128 +
1.129 + .
1.130 +
1.131 + ROW15 8000 (not connected)
1.132 +
1.133 +
1.134 +
1.135 +References
1.136 +----------
1.137 +
1.138 +[1] EF4058-OCTOPUS_Alphanumeric_V1.0_SCH.pdf
1.139 +[2] EF4058-ht16K33v110.pdf