PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 7-Segment Anzeige Treiber



Erzengel
21.04.2013, 19:34
Hallo,

habe vor mir eine Funkuhr (die 1000ste ;) ) zu bauen
daher benötige ich auch einen oder mehrere 7-Segment Anzeige Treiber

Ich habe mir vorerst einmal den SAA1064 und den Max7219 angesehen.

Beide dieser Treiber IC's sind für ganz bestimmte Pins am Mikrocontroller vorgesehen oder kann ich diese an irgendwelche Pins hängen?

Insgesamt sollen 20 Stück an 7-Segment Anzeigen verbaut werden

2x Stunde, 2x Minute, 2x Sekunde
2x Monat, 2x Tag, 4x Jahr
3x Aussentemperatur, 3x Innentemperatur

Danke mal im Voraus auf eine Antwort


mfg Peter

Besserwessi
21.04.2013, 19:54
Der SAA1064 nutzt I2C. Dafür haben die meisten µC 2 spezielle Pins um die TWI Hardware zu nutzen, es geht im Prinzip aber auch über eine Software Version an beliebigen Pins. Es gibt damit allerdings ein kleines Problem: Es lassen sich nur 4 Adressen wählen und damit maximal 16 Stellen an einem Bus anschließen.

Der Max7219 und ähnliche nutzen ein SPI ähnliches Interface. Dafür wäre 2 der ISP Pins etwas besser geeignet, oder auch alternativ die USART. Mit relativ wenig extra Aufwand gingen auch normale IO Pins. Je IC bräuchte es dann noch einen IO Pin dazu.

Erzengel
22.04.2013, 13:09
es geht im Prinzip aber auch über eine Software Version an beliebigen Pins

Nur das ich dies Richtig Verstehe den SAA1064 kann ich wenn ich es Software mäßig Löse auf 2 beliebige Pins hängen.

Wenn dies so Funktioniert dann kann ich auf diesen beiden Pins maximall 4 SAA1064 nutzen.

Wenn ich jetzt weiter Denke kann ich auf zwei weiteren Beliebigen Pins das ganze wiederholen oder Verlaufe ich mich gerade?

mfg Peter

PICture
22.04.2013, 13:17
Hallo!

Das würde schon passen, wenn die interne Adressen für beliebige Anzahl von SAA1064 länger wären und würden nach oberen Bits mit gleichen für 4 IC's Adressen an entsprechende zwei Pins vom µC geleitet.

Erzengel
22.04.2013, 18:51
Das Ganze müsste ja dann so aussehen



' SAA1064 IC 1
Config SCL=PortC.0
Config SDA=PortC.1
I2CINIT
I2START
I2CWBYTE &H70
I2CWBYTE 0
I2CWBYTE &B1110111
I2CSTOP

' SAA1064 IC 2
Config SCL=PortC.2
Config SDA=PortC.3
I2CINIT
I2START
I2CWBYTE &H70
I2CWBYTE 0
I2CWBYTE &B1110111
I2CSTOP



und somit kann ich ja dann mehrere SAA1064 Anschliessen man muss nur aufpassen welcher auf welchem Pin hängt und schon währen es 2x4 SAA1064' er auf einen Microcontroller

oder lieg ich hier Falsch und die SCL/SDA Ports können nicht mitten im Programm neu Konfiguriert werden?

Eine LED kann ich ja zum Leuchten und als Lichtsensor einsetzen. Es wird dabei nur der Pin neu Configuriert und fertig.

müsste Theoretisch so stimmen.

oder Liege ich hier Falsch

mfg Peter

Besserwessi
23.04.2013, 21:06
Es ist gut möglich das der BASCOM Compiler nur eine feste Konfiguration für Software I2C vorsieht. Ob das mit dem Umschalten des Ports zur Laufzeit geht, müsste man im Handbuch nachlesen oder ggf. Probieren. Das ist ggf. eine Einschränkung des Compilers.