Hallo Forum, ich beschäftige mich gerade mit der Wahl eines Microcontrollers für eines meiner Projekte. Da ich mit Arduino programmiere, kämen für mich die ATtiny45/85 oder ATtiny44/84 in Frage. Der 84er reicht von seiner Pinbelegung locker. Nachdem ich mich jetzt mehr und mehr in Konzepte wie I2C eingelesen habe, kam ich auf die Idee, das Projekt nochmal auszugraben. Ich habe noch einen ATtiny45 über, der aufgrund seiner begrenzten Möglichkeiten im Gegensatz zu den anderen für mich nur für schnelle kleine Projekte in Betracht kam und da mein Code nach Optimierung 3.8kByte groß ist, würde er ziemlich genau auf den passen und ich würde ihn dann permanent einlöten. Problem ist, momentan benötige ich 6 I/O-Pins. Ich fand es hier wichtig, einen Reset-Pin zu lassen, also fällt das raus. Ich nutze zwei Pins, um mit einem anderen Gerät zu kommunizieren - Pin A empfängt ein HIGH-Signal und gibt über Pin B ein Bestätigungssignal nach Ende des Programms aus. Also eine ganz primitive 2-Draht-Kommunikationsleitung. Jetzt kam mir die Idee, das ganze über einen Pin laufen zu lassen. Ist es 'sicher' für den Chip, den Pin grundsätzlich als Eingang zu halten, bei Signaleingang das Programm starten, den Pin zum Ausgang machen, am Ende des Programms eine Bestätigung zu schicken und ihn dann wieder zum Eingang zu machen? Am anderen Ende hängt ebenfalls ein Microcontroller. Das würde den Pin einsparen und ich könnte das Projekt auf den kleinen 8-Pin-Prozessor bringen, statt den 14-Pin-Prozessor nutzen zu müssen.
Das kommt natürlich drauf an, was am anderen Ende hängt. Pack einen Widerstand in Serie dazwischen, damit der maximale Strom durch die beteiligten Pins nicht überschritten werden kann (wenn aus irgendeinem Grund beide gleichzeitig Ausgänge sind), dann sollte das sicher sein.
Ganz vergessen: eine andere Möglichkeit ist es, die Verbindung open drain auszuführen, wie z.B. bei I2C. Pullup nicht vergessen.
Kannst du mir das erklären? Ich verstehe nicht ganz.. Im Falle der Holzhammerlösung von mir - wo im Datenblatt finde ich denn die 'Toleranz' für die Pins?
Du findest das in den "Absolute Maximum Ratings" bei den "Electrical Characteristics". Wenn man über den Wert kommt, riskiert man kaputte Hardware. Open Drain scheint mir hier aber eine viel bessere Lösung zu sein, und es kostet nur einen Pullup-Widerstand mehr Aufwand.
Pullup/Pulldown-Widerstände verstehe ich, ich weiß nur nicht was diese Open-drain-Geschichte ist? Ich habe gerade gegoogled und verstehe es nicht wirklich.
Friedrich Mandel schrieb: > Pullup/Pulldown-Widerstände verstehe ich, ich weiß nur nicht was diese > Open-drain-Geschichte ist? Dann such mal nach "Open-Collektor"/"Open-Kollektor". Das ist vom Prinzip das gleiche, nur für Bipolartransistoren.
Der Tiny45 hat doch Hardware-I2C, warum nutzt du das nicht?
Die Distanz wird etwa 1-1.5m betragen.. ist das nicht zu groß für störfreies I2C?
Manche Leute nehmen I2C für einen Hausbus. Ein paar Meter gehen locker. Man muss ggf. die Geschwindigkeit reduzieren und einen kleineren Pullup wählen, aber bei 1,5m höchstwahrscheinlich nicht. Aber wie soll I2C hier helfen, wenn OP statt zwei Pins nur einen verwenden möchte?
greg schrieb: > Aber wie soll I2C hier helfen, wenn OP statt zwei Pins nur einen > verwenden möchte? Ah ja, nicht richtig gelesen, sorry.
Nein, das wäre ehrlichgesagt ziemlich passend, auf die Idee bin ich (peinlich..) garnicht gekommen. Ich nutze I2C in meinem Chip. sollte also kein problem sein, da noch ne andere Leitung zum nächsten µC zu legen....... Hups. :)
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.