7:B2 8:? (kein GND, unbelegt, aber auch LOW hat keinen Einfluss)
5
9:A 10:B
6
11:C 12:D
7
13:CLK 14:STB
8
15:#OE 16:GND
Die beiden GNDs sind auf dem PCB verbunden.
ICs:
3x DP74HC245
4x TC7258E
24x ICN2028BP
Ich benutze ein STM32F103C "blue pill" board via stm32duino und Arduino
IDE.
Dieses Programm
1
#define R1 PB3
2
#define G1 PB4
3
#define B1 PB5
4
#define R2 PB6
5
#define G2 PB7
6
#define B2 PB8
7
8
#define A PA15
9
#define B PA10
10
#define C PA9
11
#define D PA8
12
13
#define LAT PB14
14
#define CLK PB15
15
#define OE PB13
16
17
18
voidshift(uint32_tdata){
19
20
digitalWrite(LAT,LOW);
21
22
for(uint8_tn=0;n<8;n++){// s.u.
23
digitalWrite(CLK,LOW);
24
if(1L<<n&data)
25
digitalWrite(R1,HIGH);
26
else
27
digitalWrite(R1,LOW);
28
digitalWrite(CLK,HIGH);
29
}
30
31
digitalWrite(OE,HIGH);
32
digitalWrite(LAT,HIGH);
33
//ROW
34
digitalWrite(OE,LOW);
35
}
36
37
38
voidsetup(){
39
40
pinMode(PC13,OUTPUT);
41
42
Serial.begin(115200);
43
while(!Serial);
44
Serial.println("Hello World!");
45
46
pinMode(R1,OUTPUT);
47
pinMode(G1,OUTPUT);
48
pinMode(B1,OUTPUT);
49
50
pinMode(B2,OUTPUT);
51
pinMode(R2,OUTPUT);
52
pinMode(G2,OUTPUT);
53
54
pinMode(A,OUTPUT);
55
pinMode(B,OUTPUT);
56
pinMode(C,OUTPUT);
57
pinMode(D,OUTPUT);
58
59
pinMode(LAT,OUTPUT);
60
pinMode(CLK,OUTPUT);
61
pinMode(OE,OUTPUT);
62
63
64
digitalWrite(CLK,LOW);
65
digitalWrite(LAT,LOW);
66
digitalWrite(OE,LOW);
67
68
digitalWrite(A,LOW);
69
digitalWrite(B,LOW);
70
digitalWrite(C,LOW);
71
digitalWrite(D,LOW);
72
73
digitalWrite(R1,LOW);
74
digitalWrite(G1,LOW);
75
digitalWrite(B1,LOW);
76
digitalWrite(R2,LOW);
77
digitalWrite(G2,LOW);
78
digitalWrite(B2,LOW);
79
80
}
81
82
voidloop(){
83
digitalWrite(PC13,!digitalRead(PC13));
84
85
86
shift(0x0F);
87
delay(100);
88
89
shift(0xF0);
90
delay(100);
91
92
}
Erzeugt z.B. die Signale im Anhang. Alles anderen sind LOW.
Die "Aufnahme" erfolgte über eine zusätzliche Schneid-Klemm-Leiste am
beigelegten Flachbandkabel, 1:1 neben dem Leiterplattenverbinder.
Ja, ich schiebe hier nur 8 Bits, und eigentlich müsste das ein
16-Kanal-Treiber sein, der laut dem unbrauchbaren "Datenblatt" sogar
zwei Schieberegister enthält(?). Aber auch 16 oder 32 Bits haben keine
Anzeige gebracht. Ich mache also etwas falsch - nur was?
Das Panel geht grundsätzlich, beim Flashen des Prozessors zucken einige
LEDs (ziemlich hell, das Ding).
TC7258E
Dieses Datenblatt stimmt überein:
http://www.superchip.
cn/Private/ProductFiles/6364584403048069321406626239.pdf
Damit ist eine Ergänzung erforderlich:
1
12: D -> U2.2 A0 -> B0 -> T2/4.7 & T1/3.10
D schaltet also zwischen den Zeilentreiber-Paaren um.
Hallo,
läuft es bei Dir jetzt stabil? Habe auch eine Weile romprobiert, und
festgestellt, dass der 2. GND Anschluss (der unter der G1, welchen du
nicht genau spezifizieren konntest) der E-Pin ist. Entsprechende
Verbindung hergestellt, und es funktioniert.
Gruß Jan