Hallo Leute Bei meinen Projekt in der Abendschule benötigten wir einen Bus mit dem wir unsere Taster und Leds am Bedinfeld verwalten können. Zusätzlich schalten wir über eine Triacansteuerung mit Moc3043 230V~ Aktorik. Einfach und kostengünstig I2C. Also etwas im www. gesurft hab ich mich für den Portexpander pcf8574 entschieden. So für die Taster ist die Sache abgeschlossen. Um den Strom der Leds zu schalten hab ich den Treiberbaustein uln2803 zwischen Portexpander und Leds geschalten. µC---PCF8574--ULN2803--Led. Die Platine ist gerade beim ätzen. Laut meiner info sendet der µC ein high für das leuchten der Led. Also geht z.b. der Pin 1 des Portexpander auf high steuert den Treiberbaustein an und die Led leuchtet. So und jetzt kommts: Stimmt das, das ein µC beim hochfahren alle Pins auf high legt???!!!! Hab ich einen Denkfehler oder würden dann alle meine Leds beim hochfahren leuchten bzw. alle meine Triacs die 230V~ Aktorik einschalten. Weiters wenn man sich das Blockschaltbild vom ULN2803 ansieht schaut es aus wie wenn er eine Inventierung zur Freilaufdiode eingebaut hat. Hat wer Erfahrung mit diesen Bausteinen? Bitte um euer Hilfe und Rat wenn das stimmt ist das eine Katastrophe. steve
Also, ob der µC die Portpins alle auf 1 legt, hängt vom Controllertyp ab. AVR schaltet die Portleitungen nach Reset auf Eingang. Und selbst wenn der µC alles auf 1 legt, ist es egal, weil da noch der PCF8574 dazwischenhängt, der muß erst initialisiert werden, bevor sich da was an den Ausgängen tut. Aber genau der PCF8574 ist hier das Problem. Aus dem Datenblatt: > At power-on the I/Os are HIGH. In this mode > only a current source to VDD is active. Das heißt, nach dem Einschalten sind sind alle Transistoren im ULN durchgesteuert bis die Ausgänge über I2C abgeschaltet werden. Das können dann schon einige Millisekunden sein. Zu den Freilaufdioden im ULN: Die Transistoren im ULN2803 schalten gegen Masse. Damit bei induktiven Lasten keine Transistoren sterben, legt man Pin11 auf V+ der angeschlossenen Last. Richtig, der ULN invertiert: Eingang = 1, Ausgang auf Masse; Eingang = 0, Ausgang offen. Persönliche Anmerkung: Den PCF-Krempel für mehr Portleitungen erspare ich mir mittlerweile ganz, ein AVR passend programmiert ist einfacher zu verwenden, flexibler und billiger. Sinn machen eigentlich nur Spezialitäten wie die Uhren und LCD-Treiber. Gruss Jadeclaw.
Hallo Jadeclaw, Danke für deine Antwort. Das du mit mir die Meinung teilst ist für mich nicht gut. Einige Pins sind auch direkt angeschlossen gegen Masse also ohen Protexpander etc. Da muss eine Lösung mit einem Inverterbaustein her. Wir verwenden einen ADUC 832 8051 derivat. Die Ansteuerung über I2C haben wir durchgeführt da wir sonst nicht genügend Ports für die gesamte Steuerung zu Verfügung haben. Ist die Programmierung des AVR nicht kompilzierter als 8051? steve
> Ist die Programmierung des AVR nicht kompilzierter als 8051? Nein, im Grunde genommen nicht. Nur da du auf 8051-Basis arbeitest, ist es natürlich ein höherer Aufwand, weil du dann natürlich eine neue Architektur samt Programmierumgebung erlernen müsstest. Anders ist es bei mir, ich arbeite sowieso mit AVR-Controllern, da ist es natürlich einfach, einen als Portexpander zu verwenden. Auf der 8051-Schiene gibt es ebenfalls kleine billige Flash-Controller, nämlich AT89C2051 und AT89C4051 sowie den AT89S51. Tools und Programmiergeräte finden sich bei Atmel und im Netz. Als weitere und sehr billige Lösung zur Porterweiterung bieten sich Schieberegister(74HC595 / CD4094) und 8-bit-Latches (74HC573) an. Diese verfügen über Freigabeeingänge, damit lassen sich die Ausgänge sperren, bis der Controller erwacht ist. Gruss Jadeclaw.
lese dir das Datenblatt des pcf8574 nochmal durch. der schaltest alle Ports auf high (Eingang) die Ausgänge werden über low geschalten (kann auch LED´s treiben)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.