Hallo zusammen, hab mal eine Frage: Bin an einer Schaltung dran wo ich den OutputCompare von Timer2 beim ATMega8 zur Pumpenansteuerung benutze. Jetzt möchte ich aber auch ein Display über SPI ansprechen. Wenn jetzt Daten über MOSI rausgehen, soll natürlich die Pumpe nicht mit angesteuert werden. Hab mir eine Beschaltung wie im Anhang zu sehen überlegt. Ein Transistor im Gatezweig des Haupttransistors (ich weiß, in der Zeichnung sind Standard Transistoren verwendet...) wird über einen zweiten Ausgang gesteuert. Ist der Ausgang LOW, der Transistor hochohmig, steuern HIGH-Pegel am Ausgang PB3/MOSI/OC2 den Hauptransistor nicht an. Ausgang HIGH, Transistor niederohmig, ein HIGH-Pegel kann den Haupttransistor schalten. Wie kann man sowas sonst lösen ohne großen zusätzlichen Bauteileaufwand? Gruß, Jochen
Gehört zum SPI nicht eigentlich ein Chip-Select-Signal. Damit kannst du doch genau der Pumpe sagen, ob sie gemeint ist oder nicht. Günther
Statt dem Widerstand + Transistor "Pumpe" könntest du auch einen Demultiplexer (74HCT139?) nehmen und mit Hilfe von PD1 die PB3 Leitung entweder SPI oder OC2 zuweisen. Möglicherweise kannst du PD1 sogar durch die /SS Leitung ersetzen - nur wenn SPI gewünscht ist, wird PB3 auf MOSI umgeschaltet. Aber du musst auch noch überlegen, was die Pumpe machen soll, wenn bei der SPI Anwendung durch das Umschalten OC2 LOW oder High-Z wird. Aus diesem Grund würde ich eher prüfen, ob PWM mit Timer1 oder Timer0 gemacht werden kann.
@Günther der OC2 wird per Progi auf den Ausgang PB3 geroutet, wenn die Pumpe was machen soll. Da hängt bis jetzt dierekt ein Transistor zur Pumpensteuerung dran, da nützt mir kein Chip select. @Stefan Mit Demultiplexer oderso ist mir zuviel, ein Vorwiderstand mit Transistor sind da doch Platz sparender. Timer2 hängt an einem Uhrenquarz um einerseits eine Laufzeitkalibrierung der internen 4MHz durch zu führen und andererseits als Frequenzgenerator für besagt Pumpe zu dienen. Die Dauer der Pumpenstösse wird über Timer0 gesteuert. Soll gepumpt werden wird der Timer2 OC2-Ausgang, intern über Software auf den PB3 geroutet und Timer0 hebt dann irgendwann das Routing auf und PB3 hat seine normale Funktion zurück. Timer1 wird als Zähler benutzt. Danke für die Vorschläge, werd´s mal aufbauen und dann weiter sehen, Gruß, Jochen
OK. Ich komme mit dem von hinten durchs Auge ins Knie nicht mehr mit ;-) Ich wollte nur darauf hinweisen, dass du dir den Frequenzgenerator an OC2 abschaltest, wenn du SPI machst. Die Pumpe ist in diesem Zeitraum nicht gesteuert bzw. sie ist abgeschaltet. Ohne freie andere Timer ist der Vorschlag von Peter mit der Software-SPI wohl der beste.
@ Stefan jeep, ist klar. Die Pumpe muß ja nur ganz kurz was machen. Ist ein Kettenöler fürs Moped. So ca. alle 6000m ein Tröpfchen Öl auf die Kette. Die Wegstrecke kann man natürlich einstellen. Timer2 wollte ich nehmen, um ohne groß im Hauptprogramm zu warten, mal zwei od. drei Tropfen bzw. Pumpenpattern zu generieren. Z.B. im Regen, wenn´s so weit ist, im Abstand einer Sekunde einen Tropfen ÖL - für drei Sekunden aktiv. Oder die dauer eines Pumpenstoss zu varieren.... Gruß, Jochen
Jetzt ist klar, warum ich auf dem Schlauch stehe... meine Moppeds haben alle Kardan ;-)
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.