Pinmode im Programm ändern - Schaden möglich?

#3472905
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.
Gast #3472913
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.
Gast #3472940
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.
Gast #3472987
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren