Forum: Mikrocontroller und Digitale Elektronik Pinmode im Programm ändern - Schaden möglich?


von Friedrich M. (friese_m)


Lesenswert?

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.

von greg (Gast)


Lesenswert?

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.

von greg (Gast)


Lesenswert?

Ganz vergessen: eine andere Möglichkeit ist es, die Verbindung open 
drain auszuführen, wie z.B. bei I2C. Pullup nicht vergessen.

von Friedrich M. (friese_m)


Lesenswert?

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?

von greg (Gast)


Lesenswert?

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.

von Friedrich M. (friese_m)


Lesenswert?

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.

von Michael (Gast)


Lesenswert?

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.

von Icke ®. (49636b65)


Lesenswert?

Der Tiny45 hat doch Hardware-I2C, warum nutzt du das nicht?

von Friedrich M. (friese_m)


Lesenswert?

Die Distanz wird etwa 1-1.5m betragen.. ist das nicht zu groß für 
störfreies I2C?

von greg (Gast)


Lesenswert?

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?

von Icke ®. (49636b65)


Lesenswert?

greg schrieb:
> Aber wie soll I2C hier helfen, wenn OP statt zwei Pins nur einen
> verwenden möchte?

Ah ja, nicht richtig gelesen, sorry.

von Friedrich M. (friese_m)


Lesenswert?

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
Noch kein Account? Hier anmelden.