Hallo,
ich hatte da noch ein paar Chips rumliegen und wie immer zu wenig Pins an meinem ATtiny45. Wie der Vorgänger wird diese Anzeige auch nur mit 2 Ader in SW-SPI angesteuert.
Bei dieser neuen Version ist es aber nicht mehr notwendig die einzelnen Ziffern vom µC aus zu multiplexen. Die einmalige Ausgabe aller 4 Ziffern wird in den kaskadierten Schieberegistern gespeichert und durch einen externen Takt zb von einem 555, an die Siebensegmentanzeige ausgegeben.
Die Inverter sorgen dafür, daß durch inaktiv schalten von Output Enable am 595 alle Ausgänge hochohmig werden, bis auf die, die gerade zur Segmentansteuerung gebraucht werden.
Jetzt brauch ich nur per SPI entsprechende Daten dann auszugeben, wenn sie wirklich anfallen und kann dadurch Recourcen zum Multiplexen einsparen.
Na gut, sowas könnte man sicher auch einfach haben. Für mich war und ist es eine schöne Übung. Konnte bisher nur 2 Ziffern realisieren, da mir noch zwei 595er fehlen.
Code:
VCC .-----------------.
+ | .---------)-. irgendein
| .------------)-------)---. | | Takt
o------)------------)-----. | .-)-----)-)-------<
| | | | | | | | | | |
Seg A | === | o_o_o_o_o_o_o_o
D1.->|--o-- Q0-------------------------------)--. GND | | 4017 |
| |B __ | | | |1_ _ _ _ _ _ _ |
|->|--)-- Q1---------------o------o|1 |o---o | | o o o o o o o o
| | Q2-------------o-)------o| |o---)--o ---------)--. | | | | | | | |
| Q3-----------o-)-)------o| |o---)--)------' /| | | | | | |
| Q4---------o-)-)-)------o| |o---)--)------o--O< |---)--)------. | | |
| Q5-------o-)-)-)-)------o| |o---)--)------' \| | | | | | |
| Q6-----o-)-)-)-)-)------o| |o---)--)----. Inverter| | | | | | SPI data
| | | | | | | -o| |o---o | | | '------)-)-)-----)-------<
Seg A| | | | | | | o--o|__|o---)--)--. | | | | | |
D2 ->|-o | | | | | | | 595 | | | | | | | | | SPI clock
| | | | | | | | __ | | | o-----------)---------)-)-)-----)-------<
D3 ->|-o | | | | | o---)--o|1 |o---o | | | | | | | |
| | | | | o-)---)--o| |o---)--o | | | | | | |
D4 ->|-' | | | o-)-)---)--o| |o---)--)--' | /| | | | | |
| | o-)-)-)---)--o| |o---)--)----)-o--O< |---)---------)-. | |
| o-)-)-)-)---)--o| |o---)--)----)-' \| | | | | |
4 X 7 Seg o-)-)-)-)-)---)--o| |o---)--)----o | | | | |
mit gem. Anode | | | | | | | -o| |o---o | | | | | | |
| | | | | | o--o|__|o---)--)--. | | | | | |
| | | | | | | 595 | | | | | | | | |
| | | | | | | __ | | | | | | | | |
| | | | | o---)--o|1 |o---| | | | | | | | |
| | | | o-)---)--o| |o---)--o | | | | | | |
| | | o-)-)---)--o| |o---)--)--' | /| | | | | |
| | o-)-)-)---)--o| |o---)--)----)-o--O< |---. | | | |
| o-)-)-)-)---)--o| |o---)--)----)-' \| | | | | |
o-)-)-)-)-)---)--o| |o---)--)----o | | | | |
| | | | | | | -o| |o---' | | | | | | |
| | | | | | o--o|__|o------)--. | | | | | |
| | | | | | | 595 | | | | | | | |
| | | | | === | | | | | | | ===
| | | | GND | | | /| | | | | GND
| | | | | | .--O< |---)---------)-)-.
| | | | | \| | | | |
eventuell Q6 Q0 | | | | | |
Treiber | | | |
/| Digit 1 | | | |
--< |-------------------------------------------------------------)---------' | |
\| D2 -------------------------------------------------------)-----------' |
D3 ---------------------------------------------------------- |
D4 --------------------------------------------------------------------------'
Pin Belegung
74HC595N HEF4017B
__ __
Q1 -o|1 |o- VCC Q5 -o|1 |o- VCC
Q2 -o| |o- Q0 Q1 -o| |o- MR
Q3 -o| |o- Ds Q0 -o| |o- CP0
Q4 -o| |o- OE (low aktiv) Q2 -o| |o- CP1 (low aktiv)
Q5 -o| |o- STcp Q6 -o| |o- Q5-9 (low aktiv)
Q6 -o| |o- SHcp . Q7 -o| |o- Q9
Q7 -o| |o- MR (low aktiv Q3 -o| |o- Q4
GND -o|__|o- Q7' GND -o|__|o- Q8
PS Frisch vom Basteltisch weiß ich noch nicht ob es versteckte Fehler gibt. Bis jetzt funktioniert es perfekt. (Hoffe natürlich auch, das ich die ASCII Art fehlerfrei hinbekommen habe 
Gruß
Searcher
Lesezeichen