Inhaltsverzeichnis

Idee

Das 7 Segment Display im HQ wird über die GPIOs eines Raspis gesteuert. Daruch werden viele GPIOs „verbraucht“. Es soll ein Mikrocontroller per SPI mit dem Raspi verbunden werden, der die Ansteurung des Displays übernimmt.

Hardware

Mikrocontroller

Es wird ein Atmega16APU in Standardbeschaltung mit dem internen Takt von 1 MHz verwendet. Das JTAG-Interface ist deaktiviert um PORTC komplett nutzen zu können. Dies kann mit avrdude und folgenden Parametern gemacht werden:

-U lfuse:w:0xc1:m -U hfuse:w:0xd9:m 

Multiplexing

Die Elemente sind „gemultiplext“. Eine schöne Erklärung gibt es hier.

7-Segmentanzeige

Als Anzeige dient eine LED-Holzuhr von getDigital. Die Uhr hat 4 7-Segmentanzeigen mit gemeinsamer Anode, werden die einzelnen Segmente auf 0V gelegt, beginnen sie zu leuchten. Logisch „an“ wird deshalb durch eine '0' dargestellt, logisch „aus“ durch eine '1'.

Die 1000er und 100er (früher Stunden) sind vom Hersteller verkehrt herum eingebaut.

Somit ergeben sich folgende Bitmuster für eine Hexadezimale Anzeige:

10er und 1er Stelle

ZeichenGFEDCBA
00000001
11001111
20100100
30110000
40011001
50010010
60000011
71111000
80000000
90010000
A0001000
B0000011
C1000110
D0100001
E0000110
F0001110

1000er und 100er Stelle

ZeichenGFEDCBA
01000000
11001111
20100100
30000110
40001011
50010010
60011000
71000111
80000000
90000010
A0000001
B0011000
C1110000
D0001100
E0110000
F0110001

Verkabelung

Segment Pin (Atmega)
a PC0
b PC1
c PC2
d PC3
e PC4
f PC5
g PC6

Zur Steuerung der Transistoren für das Multiplexing werden die Pins PB0 bis PB3 verwendet.

Software

Protokoll